SWCU195A December 2024 – May 2025 CC2744R7-Q1 , CC2745P10-Q1 , CC2745R10-Q1 , CC2745R7-Q1 , CC2755R10
When SPI is to be used within a transceiver setting with strict timing requirements in peripheral mode response, the software overhead associated with loading/transmitting data can, in some cases, be limiting.
In order to ensure that the latest data (for example, FIFO level, RSSI value, event flags, and so on) is contained in the peripheral header, a mechanism to atomically update the FIFO with header data several times before the external controller starts a SPI transmission is included.
In transceiver applications, commonly the peripheral header will contain some type of status data which needs to be kept as updated as possible, as the utility of the data might decay in usefulness when stale; for example, signal strength and FIFO levels, and so on. In such cases, every time a newer update to the data is available, the old values would need to be flushed from the FIFO and the newer values updated. This would take several write and poll operations when run by the CPU. The header update feature combines a lot of these steps and provides an atomic operation that can be triggered from the CPU to increase throughput.
SPI.TXFHDR32, SPI.TXFHDR24, SPI.TXFHDR16, and SPI.TXFHDR8 registers are included within the SPI module. When any of these registers are written:
The SPI.TXFHDRC register is included to control this feature. The SPI.TXFHDRC register contains these fields:
SPI.CTL0[17] IDLEPOCI register bit is included to drive a configurable high/low value of the POCI pin to ease signaling to the controller about a change in the peripheral readiness. If the MSB of the header data written into the FIFO is opposite to the IDLEPOCI, the external controller can detect the same by polling the POCI pin.