Other Parts Discussed in Thread: CC2530, RF430CL330H, TRF7960, MSP430G2553, TRF7970A, TRF7960A
Hello all,
I am having some questions regarding using TRF7960ATB with ISO14443B at 106 kbps.
HW:
TRF7960ATB rev B 2010 (according to silk screen) mounted on a custom 4-layer PCB running at 3.3V.
Short tracks and decoupling as suggested in SLOA139A.
The MCU is CC2530. I do not use the SPI HW as both UARTs are occupied.
The tag is a single TI RF430CL330H, but I also have a ISO14443-B smart label SRI4k for testing purposes.
SW:
Written in C, with bit banging SPI using /SS.
Communication and trace takes place using a serial port terminal.
To be honest, the SPI I/F on this device is a mess. The SPI errata SLOA140 is longer than the SPI section in the TRF7960 data sheet.
I THINK I have implemented all the fixes / work arounds...
Question 1:
After power up, I enable the TRF7960ATB, wait 100 ms and then writes
CHIP STATUS = 0x21
ISO CONTROL = 0x0C
Then, I read all the registers for verification, which yields:
MAIN CONTROL REGISTERS
Chip status: 00100001
ISO control: 00001100
PROTOCOL SUB-SETTING REGISTERS
ISO 14443B TX options: 00000000
ISO 14443A high bitrate options: 00000000
TX timer byte, high byte: 11000001
TX timer byte, low byte: 10111011
TX pulse length control: 00000000
RX no response wait: 00001110
RX wait time: 00011111
Modulator and sys clock control: 00010000
RX special setting: 01000000
Regulator and IO control: 10000111
STATUS REGISTERS
IRQ status: 00000000
IRQ mask and collision position: 00111110
Collision position: 00000000
RSSI levels and oscillator: 01000000
FIFO REGISTERS
FIFO status: 00000000
TX length byte 1: 00000000
TX length byte 2: 00000000
FIFO I/O register: 00000000
Can I please have this setup verified by a TI expert?
Question 2:
The datasheet says:
"The main register controlling the digital part of the receiver is the ISO control register (address 01). By writing to this register, the user selects the protocol to be used. With each new write in this register, the default presets are loaded in all related registers, so no further adjustments in other registers are needed for proper operation."
I interpret this as I only need to select the ISO of interest, and all the registers are setup automatically, correct?
I will never use more than one tag simultaneously, so the anti-collision is quite straight forward.
Question 3:
The DS recommends that before beginning a data transmission, the FIFO should be cleared with a reset command.
Can I do this as a separate operation (i e, let /SS go high between the SPI writes), or should the entire sequence be sent within the same /SS start / stop marker?
Best regards,
Andreas N