MIPIRFDEV freq_y argument

Hello.

We're planning on using a MIPI Antenna Tuner in our upcoming design and I'm referencing the documentation here for the PHASE ON (1) portion

https://docs.nordicsemi.com/bundle/ref_at_commands_nrf91x1/page/REF/at_commands/sip_pin_configuration/use_case_on.html 

The documentation for <phase_y> is confusing, it reads:

<freq_y>
Integer. The frequency in MHz to which the current RF frequency is compared. If current RF frequency is smaller than or equal to <freq_y>, then <data_0_y> is written to <addr_0> and <data_1_y> is written to <addr_1>. If the RF frequency is greater than <freq_k−1> (the last given frequency), then neither <addr_0> nor <addr_1> is written.

This seems to imply that freq_y should be entered in either ascending order or descending order.  Ascending order seems like it won't work.  For instance, if freq_0 = 800MHz, freq_1 = 900MHz and freq_2 = 1000MHz.  Then, if freq = 850MHz, it is less than freq_1 but greater than freq_0, so nothing is written.  If it is in decending order, it seems like addr_0 and addr_1 may be written multiple times.  Is this correct?  

It would help if you could give a specific example with some made up frequencies for freq_y and then say for different RF frequencies, which data_0_y is written.

EDIT: Additionally, could you clarify whether triggers are used at any time?  There is a diagram (Figure 1 in MIPIRFDEV Set Command reference) that shows that triggers should be disabled during initial config.  Can you clarify, should they always stay disabled?

Thank you!

Parents Reply Children
  • Hi Michal, thanks for checking, if you can get an answer by end of week it would be very beneficial, we may be able to start testing by early next week and this information would gate the start of testing.  Thanks.

  • I understand, I'll see what I can do.

    Best regards,

    Michal

  • Hello,

    I found out that there are much better examples here:

    https://docs.nordicsemi.com/bundle/nwp_034/page/WP/nwp_034/on.html

    And some more explanation:

    So let’s say they have a MIPI tuner that has registers at addresses 0x1 and 0x2, that should be written with values depending on the RF frequency, like in this table:

    RF frequency / Value to write

    Mipi slave register address 0x1

    Mipi slave register address 0x2

    0–800 MHz

    7

    8

    801–1600 MHz

    9

    10

    1601–2200 MHz

    11

    12

    The MIPIRFFE commands that they could give for controlling the tuner according to the above table:

    AT%XMIPIRFFEDEV=1,6,41,52,56

    AT%XMIPIRFFECTRL=1,1,1,28,56,3,1,2,7,8,800,9,10,1600,11,12,2200

     

    Also please note that this sentence:
    If the RF frequency is greater than <freq_k−1> (the last given frequency), then neither <addr_0> nor <addr_1> is written.
    means, with reference to above table, that if RF frequency was e.g. 2205 MHz, then no value is written to 0x1 nor 0x2 registers. It’s purpose is just to describe what happens if configuration does not cover the whole useable RF range.

    Also about triggers:

    Regarding triggers: Triggers are generally recommended to be disabled (and examples assume that). I think you could enable triggers. For example, you could write some value to e.g. register 0x1 and 0x2 in INIT phase with triggers enabled. And then in ON phase only write the 0x1C register’s triggers, which latches then the values to registers. But I don’t think that would provide any frequency dependent functionality. So better to disable triggers.

    Best regards,

    Michal

Related