This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TRF7970A: Initialization sequence on SPI.

Other Parts Discussed in Thread: TRF7970A

Hello,
Could you advise the initialization sequence from EN=High to osc_ok=1, on SPI bus ?
- Start: EN=High. That is an exit from power down or sleep mode.
- end: osc_ok=1. That is the settling of the REG and OSC.

I thought the sequence would be:
(1) EN=high.
(2) To make sure SPI is ready.
(3-1) To issue command 03: SOFT_INIT or software initialization.
(3-2) To make sure the command 03 was successful.
(4-1) To issue command 00: IDLE.
(4-2) To make sure the command 00 was successful.
(5) To make sure osc_ok=1.


Then my questions are:
Q1. Please point out if any steps we can skip.
Q2. How to do the step(4-2) ?

-n

  • Hello Nambu-san,

    After pulling EN high, we recommend waiting 5-10 ms to let the oscillator and the chip start up.

    You would want to check the OSC_OK = 1 after that delay, and then after that send out the SOFT_INIT and IDLE commands.

  • Ralph, I appreciate your reply.

    Please let me add your input and update my question. We are requested to explain how to see the results of the  SOFT_INIT and IDLE commands.

    So, could you please advise the initialization sequence from EN=High, osc_ok=1, then cmd03(IDLE) ?

    I think the sequence would be:

    (1) EN=high.

    (2) Wait for 5-10ms, then make sure osc_ok=1.

    (3) Make sure SPI is ready.

    (4-1) Issue command 03: SOFT_INIT or software initialization.

    (4-2) To make sure the command 03 was successful.

    (5-1) To issue command 00: IDLE.

    (5-2) To make sure the command 00 was successful.


    Then my questions is:

    Q2. How to do the step (5-2) or how to make sure the IDLE command was successful ?  Is it good to see all the IRQ flags are cleared ?

  • Hi Nambu-san,

    After doing the Soft_Init and Idle commands, you can check registers for their expected values after the Soft_Init command.

    Page 12 of this document lists all registers and their values after the commands: www.ti.com/.../sloa227.pdf

    Usually we check registers which we know are modified at some point in the code, or any which may deviate from the default TRF7970A settings in the datasheet. ISO Control (Register 0x01) might be a good one to check.

  • Ralph,
    I appreciate your response.

    I'd like you to focus on the single command 'IDLE'. How to make sure the IDLE command was successful ?

    Please exclude the previous command SOFT_INIT.
    Your point sloa227.pdf - p12 - is the result of the previous operation SOFT_INIT. Please find the table is the same as the DS p52 Table 6-21.
    Starting from the SOFT_INIT successful completion, how to evaluate the result of the command IDLE ?
  • Hello Nambu-san,

    There is no established method to verify the IDLE command success. After executing an 0x83 (SOFT_INIT Direct Command) and 0x80 (IDLE Direct Command), if you are able to read out TRF7970A registers and verify they are as described in the app note posted, then you are good to go. There is no bit or register which is set when an IDLE command is successful, so really all that needs to be done is verify the Register reads are accurate.

    Our recommendation is to always follow a SOFT_INIT directly with an IDLE command, and then check the registers.

  • Ralph,

    In the case, do you require users to evaluate all the 28 registers ?

     

    Or, Could you please advise a simple way to evaluate the success of the direct command SOFT_INIT (0x03 maybe) ?

    For example, Do you agree to test just a single register like Reg#0x08: RX wait time ?

  • Nambu-san,

    As mentioned on my prior post, I recommend any register which are known to be modified in firmware, or that differ from the default POR value. RX Wait Time (0x08) is certainly an option. So is ISO Control (0x01) which often meets both criteria.

    There should never be a need to evaluate all 28 registers, we only use one register typically.
  • Ralph,
    Thank you very much. Very clear.