Other Parts Discussed in Thread: MSPM0G3507,
Tool/software:
I've been able to successfully get the TRF7970A started up and can set the initial registers/read all of the expected values, but I seem to be having troubles when attempting to read RFIDs, where the bytes received on the MSPM0G3507 does not appear to always match what is seen on a logic analyzer - in particular when trying to check for an external RF field - I keep getting values back in the 0x0F read where the oscillator bit is not set, and some where it is indicating an RF field where one should not be present. I'm trying to find examples of the mismatches, but I'll have to poke around a bit more to get screenshots of those.
Initial setup/response:
TX:83 RX:00 TX:80 RX:00 TX:8F RX:00 TX:40 TX:80 RX:00 RX:01 TRF79XXA_CHIP_STATUS_CONTROL (0x00): 01 TX:41 TX:80 RX:00 RX:21 TRF79XXA_ISO_CONTROL (0x01): 21 TX:42 TX:80 RX:00 RX:00 TRF79XXA_ISO14443B_TX_OPTIONS (0x02): 00 TX:43 TX:80 RX:00 RX:00 TRF79XXA_ISO14443A_BITRATE_OPTIONS (0x03): 00 TX:44 TX:80 RX:00 RX:C1 TRF79XXA_TX_TIMER_EPC_HIGH (0x04): C1 TX:45 TX:80 RX:FF RX:C1 TRF79XXA_TX_TIMER_EPC_LOW (0x05): C1 TX:46 TX:80 RX:FF RX:00 TRF79XXA_TX_PULSE_LENGTH_CONTROL (0x06): 00 TX:47 TX:80 RX:00 RX:0E TRF79XXA_RX_NO_RESPONSE_WAIT_TIME (0x07): 0E TX:48 TX:80 RX:00 RX:07 TRF79XXA_RX_WAIT_TIME (0x08): 07 TX:49 TX:80 RX:00 RX:91 TRF79XXA_MODULATOR_CONTROL (0x09): 91 TX:4A TX:80 RX:00 RX:10 TRF79XXA_RX_SPECIAL_SETTINGS (0x0A): 10 TX:4B TX:80 RX:00 RX:87 TRF79XXA_REGULATOR_CONTROL (0x0B): 87 TX:4C TX:80 RX:00 RX:00 TRF79XXA_IRQ_STATUS (0x0C): 00 TX:4D TX:80 RX:00 RX:3E TRF79XXA_IRQ_MASK (0x0D): 3E TX:4E TX:80 RX:00 RX:00 TRF79XXA_COLLISION_POSITION (0x0E): 00 TX:4F TX:80 RX:00 RX:40 TRF79XXA_RSSI_LEVELS (0x0F): 40 TX:50 TX:80 RX:FF RX:00 TRF79XXA_SPECIAL_FUNCTION_1 (0x10): 00 TX:09 TX:01 TX:0B TX:01 TX:18 TX:00 TX:40 TX:80 RX:00 RX:00 TRF79XXA_CHIP_STATUS_CONTROL (0x00): 00 TX:41 TX:80 RX:00 RX:00 TRF79XXA_ISO_CONTROL (0x01): 00 TX:42 TX:80 RX:00 RX:21 TRF79XXA_ISO14443B_TX_OPTIONS (0x02): 21 TX:43 TX:80 RX:00 RX:00 TRF79XXA_ISO14443A_BITRATE_OPTIONS (0x03): 00 TX:44 TX:80 RX:00 RX:00 TRF79XXA_TX_TIMER_EPC_HIGH (0x04): 00 TX:45 TX:80 RX:00 RX:C1 TRF79XXA_TX_TIMER_EPC_LOW (0x05): C1 TX:46 TX:80 RX:FF RX:C1 TRF79XXA_TX_PULSE_LENGTH_CONTROL (0x06): C1 TX:47 TX:80 RX:FF RX:00 TRF79XXA_RX_NO_RESPONSE_WAIT_TIME (0x07): 00 TX:48 TX:80 RX:00 RX:0E TRF79XXA_RX_WAIT_TIME (0x08): 0E TX:49 TX:80 RX:00 RX:07 TRF79XXA_MODULATOR_CONTROL (0x09): 07 TX:4A TX:80 RX:00 RX:01 TRF79XXA_RX_SPECIAL_SETTINGS (0x0A): 01 TX:4B TX:80 RX:00 RX:10 TRF79XXA_REGULATOR_CONTROL (0x0B): 10 TX:4C TX:80 RX:00 RX:01 TRF79XXA_IRQ_STATUS (0x0C): 01 TX:4D TX:80 RX:00 RX:00 TRF79XXA_IRQ_MASK (0x0D): 00 TX:4E TX:80 RX:00 RX:3E TRF79XXA_COLLISION_POSITION (0x0E): 3E TX:4F TX:80 RX:00 RX:00 TRF79XXA_RSSI_LEVELS (0x0F): 00 TX:50 TX:80 RX:00 RX:40 TRF79XXA_SPECIAL_FUNCTION_1 (0x10): 40 Booted! Addr: 00
I've tried to verify the signals themselves against the timing diagram from the datasheet:
Looking at t_ste_lead, clock and duty cycle, lag time, and CS pulse duration between operations - they appear to be within the timing constraints - the connections to ground are rather long in the test setup, however. (CH4: CS, CH3:CLK, CH2: MOSI CH1: MISO)
SPI setup (1MHz):