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: Writing to TX Length Byte 2 Register (0x1E) fails

Other Parts Discussed in Thread: TRF7970A

Hello,

I am currently trying to setup the TRF7970A for active peer to peer communication. While initializing the NFC Initiator for transmission I recognized that values written into the TX Length Register Byte 2 (0x1E) are not stored. This register seems to be 0x00 all the time. I also was able to reproduce it with the original TRF7970A EVM Firmware in conjunction with TRF7970A_EVM_GUI:

Write - Read Log:

14:23:05.907    --> 010C000304101DFF1EFF0000
14:23:06.016    <-- 010C000304101DFF1EFF0000
Register write request.

14:17:40.941    --> 010A0003041317000000
14:17:41.066    <-- 010A0003041317000000
Continous read request
[01][02][00][00][C1][C1][00][14][1F][21][40][87][00][3E][00][40][00][00][00][00][00][00][00]

14:17:41.066    --> 010A000304130C170000
14:17:41.176    <-- 010A000304130C170000
Continous read request
[00][04][00][00][00][00][FF][00][06][06][06][06]

The verification of 0x1E returns 0x00 instead of 0xFF, as you can see.

A second try with another EVM Board delivered the same result, thus it can not be a hardware failure.

Whats the reason for this strange behaviour ot the TRF7970A?

Am I overlooking something in the TRF7970A documentation?

Kind Regards

Marco

  • Hi Marco, 

    I've just tried to create your same issue, and infact the register 0x1E always return 0x00 after each single write. So it is something connected with the TRF.

    Personally I've never tried to write these registers and read them back, It's my first time now.

    Usually I've always write them in continous mode before writing data to the fifo.

    For example the WUPA (0x52) request on ISO14443A cards is 7bit long, so I had to set the TXlengthByte1(0x1D) to 0x00 and the TXlengthByte1(0x1E) to 0x0F before filling the FIFO with the command byte 0x52.

    In that situation everything worked perfectly so I've never mind to read back the registers.

     

    By the way I think that something is happening and it reset the register 0x1E.

     

    Let me know if you will find some good news about it.

     

    Regards

    Alberto

  • Marco -

    please have a look here at the source code we have done for NFC BSL which uses the Peer to Peer between two TRF7970As.

    http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=sloa160

  • Hello Alberto,

    I received following answer directly from TI:

    "The TX Length Byte 2 (0x1E) register has a separated read and write part, so you can not read back the data that you have written in with the microcontroler.In read mode it will only show the number of broken RX bits. This information is only displayed after the RX frame is completely received."

    It would be nice from TI to add this information to the register description in the TRF7970A datasheet.

    Kind regards

    Marco

  • Hi Marco, 

    thanks for sharing your experience! Yes, it would be nice to update the datasheet.

    May I ask you to check my last topic? -> http://e2e.ti.com/support/low_power_rf/f/667/t/163772.aspx 

    I wish to know if you have the same issue.

    Let me know!

    Regards, 

    Alberto

  • Marco/Axxe -

    in the datasheet we indicate that this register is reset at end of TX. The way this register is used during the TX operation, i don't see any logical reason to read it back, ever -

    So - my question to you is: what is your thought on what should be in the DS to indicate what you think is missing or not clear?

  • Hello Josh,

    "The TX Length Byte 2 (0x1E) register has a separated read and write part, so you can not read back the data that you have written in with the microcontroler.In read mode it will only show the number of broken RX bits. This information is only displayed after the RX frame is completely received."

    If I understand this correctly, 0x1E can be read to get the number of broken bits received if the datapart of a received frame is not a multible of 8 bits.

    This would indicate that it is possible to receive the last byte not completly (e.g. 5Bits only). And indeed, the transmitter is allowed to send such broken bytes as last byte.

    This is non-obvious (not clear) when reading the register description of 6.3.5.2 - TX Length Byte Register in the datasheet (SLOS743 - August 2011-  Page 75) as it only refers to the Keyword "TX".

    I am not sure if this information is located somewhere else in the datasheet, i will have a look.

    Kind Regards

    Marco