Tool/software: TI-RTOS
Dear Support:
When using SPI slave mode there is the following text in the README.html file of the SPI slave driver example:
"Note: The SPI peripheral on CC13x0, CC26x0, and CC26x0R2 devices have a bug which may result in TX data being lost when operating in SPI slave mode (SSI Advisory 04 & 05 in device errata). This bug causes the first SPI frame sent from the slave to be 0 instead of the actual data. When the master prints the received message to the display, the 0 will be interpreted as a NULL termination character & the message will not be printed. When this occurs, halt the master SPI device & check the contents of the receive buffer; the slave message should have been received with the first frame as 0."
and in the Errata of the CC1350 for Advisory 4, there is the following text:
"Details: When the SSI is programmed to operate in slave mode, the data written to the SSI data register (SSIn:DR) in the SYSBUS clock domain can be sampled in the SSPCLK domain or without any synchronization. This sampling condition occurs when all of the following conditions are met: • The SSI Transmit FIFO is empty. • The SSI Data register (SSIn:DR) write access occurs as a new SPI master transfer starts. • The SSI slave-state machine samples data to transmit. This issue causes written data to be lost.
Workaround(s): Use TI's Unified Network Processor Interface (NPI)"
So I am confused. I am seeing a problem when using SPI slave mode that is explained by the above - on random SPI transfers, I am seeing the 1st byte being output to be zero which I think is what the above is describing. But I am confused as to the workaround described above. I assume this is a hardware problem that can't be fixed currently until we get a new silicon revision that fixes this. So how does going to NPI fix this problem? I assume the workaround is to just output 1 more byte when outputting in SPI slave mode and disregard the 1st byte since sometimes it can be zero - hence the fix would be done in software. Is this correct? And if so, can you explain how moving to NPI would be a workaround as well? Please advise.
Thanks,
Tim