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.

WUPA

Other Parts Discussed in Thread: TRF7970A, MSP430F5529

I am sending the following as a WUPA sequence:

0x8F, 0x90, 0x3D, 0x00, 0x0F, 0x52

Should this cause an interrupt?

Thanks,

jh

  • Should I perform any reads afterwards?
  • Hello John,

    You should be getting a TX complete interrupt after you send that command. Are you getting an interrupt after you send that command ?

    The P2P application note supports initiator mode for 106kbps. Currently it uses the polling command 0x26 (REQA), however you can modify the code to send a WUPA (change the  NFC_A_send_SENS_REQ() in the nfc_a file)  to compare the TRF7970A configuration and command flow to send the polling command successfully (www.ti.com/lit/pdf/sloa192).

    Hope this helps!

    Best regards,

    Erick

     

  • Hello John,

    You need to modify the ISO Control Register( 0x01) to 0x88 to receive witthout CRC after you send that command. The WUPA response does not have CRC.

    Best regards,

    Erick

  • HI Erick,

    I am not getting an interrupt. Not sure about sloa192 as it is peer to peer. I want to use the trf7970 only as a reader.

    Thanks,
    jh

  • Hello John,

    For NFC-A the anticollision flow to activate either a Peer to Peer @ 106kbps (target) or a ISO14443-A (T2T or T4TA) tag the commands used are the same. Therefore, the Peer to Peer Initiator (@106kbps) will send the same commands as you would for a reader application. What registers did you configure before sending the WUPA command?

    Best regards,

    Erick

  • It is initialized to 0x88 before the WUPA sequence. Does it need to be set again afterwards?

    jh
  • Hello John,

    It needs to be set to 0x88 before sending the WUPA sequence, It doesnt need to be mdofieid to 0x08 (receive with CRC) until the SEL_REQ command is sent select the tag. (0x93 0x70 UID BCC CRC_A)

    Please make sure that the follwing registers have been written:

    - Chip Status Control Register (0x00) ==> 0x20 (3V) or 0x21 (5V) depending on your power supply.
    - Modulator and SYS_CLK control (0x09) ==> 0x00 (when the transceiver boots up it needs to be written to since BIT7 is set by default and needs to be cleared.
    -  ISO Control (0x01) ==> 0x88 (ISO14443-A @ 106kbps, receiving without CRC)
    - NFC Target Detection Level (0x18) ==> 0x00 (ensure that is cleared at boot up)

    Best regards,

    Erick

  • Register 0 = 0x20 for 3V
    Register 9 = 0x39 for 13.56 MHz oscillator and 100%
    Register 1 = 0x88
    Register 0x18 = 0
  • Hello John,

    Those values look correct. Are you running your MCU from the 13.56MHz (SYS_CLK) output from the TRF7970A? If not, you can write a 0x00 to register 0x09 because the modulation depth applies to load modulation for target mode.

    Would you be able to send me a logic screenshot of the communication between the TRF7970A and the MCU (including MOSI, MISO, SPI Clock, Slave Select, and IRQ)?

    What hardware (i.e. MSP430F5529LP+DLP7970 BoosterPack)  are you currently using to test the NFC functionality ?

    Best regards,

    Erick

  • Things are moving forward a bit now. Turns out I needed to put in a 10 mSec delay after issuing software init 0x83 and idle 0x80 commands before writing to the registers.

    Now when I send WUPA I get an interrupt but the status register reads 0x20 instead of 0x80. I re-enable the interrupt but it won't clear.  Next step is read and clear the FIFO, I reckon.

    14443-3 states that a PICC should respond with ATQA so I presume that is what is in the FIFO. So when first communicating with the PICC via the TRF7970 should I use WUPA and REQA or just REQA?

    jh

  • Should have added that register 0x14 had zeroes in it.
  • Hello John,

    I'm glad to hear that the command is being sent successfully.

    You are correct the response in the FIFO should be the ATQA (SENS_RES).

    When polling for tags I recommend to use REQA (this is what NFC enabled smartphones use to poll for NFC-A technology). WUPA is typically used when a tag has been put to sleep and we want to wake it. Nevertheless, tags will reply to both REQA and WUPA with the same response. The anticollision process can be initiated with either command.

    Best regards,

    Erick

  • Thanks.

    Any idea why I get the FIFO interrupt? I have register 0x0D set to 0x1E but the IRQ status register reads 0x20 after the WUPA msg. The interrupt lines stays high. The fifo status register is empty.

    jh

  • Hello John,

    When the IRQ register is read the IRQ line should be cleared. If it is not, then you can send another 0x83 (Soft. Init Direct Command) & 0x80 (Idle Direct Command) reconfigure the TRF7970A and try sending the polling command again. Are you able to send other polling commands (SENSB_REQ for NFC-B or SENSF_REQ for NFC-F)? This would require to ISO Control Register to be modified to match the NFC technology.

    Make sure the start-up sequence follows the timing guidlines shown in Figure 6-3 from the TRF7970A datasheet (http://www.ti.com/lit/gpn/trf7970a).

    Do you have a MSP430F5529 Experimenter + TRF7970ATB or MSP430F5529 Launch Pad + DLP7970 ? We can use one of those two hardware setups in sniffer mode to check if your hardware is sending the command correctly.

    Best regards,

    Erick

  • EN2 is always high, EN is well after power up. Turns out I needed a longer delay after the reset-idle pair before trying to write the registers. Is there a spec for that delay? Now getting interrupt value of 0x80. Waiting for Sparky to return with my antenna so we can see about an RX irq.

    Thanks for all the patient help.

    jh

  • Hello John,

    In our NFC driver we delay 10 mS after the EN line is set high. For the reset-idle pair I delay 1 mS to allow the transceiver to be ready for commands. Before you added the delay, how much time was there between the reset pair and the folllowing command?

    Best regards,

    Erick

  • Very little, writing to registers came immediately after and I am running my PIC32 at 80MHz. I tried a  1 millisecond delay which didn't work so I just bumped it to 10. Getting back UID messages now. Just have to get SELECT sorted out....

    jh