Hi,
I has ported SimpliciTI 1.2.1-Beta to CC1200 TrxEB. I also integrated CC112x's Infinite Packet Length Mode to it. Following are the conditions I use:
1.2kbps RF data rate
System clock: 25MHz
SPI clock: 8.3MHz
FIFO_THR = 80
2-byte length field of Infinite Packet Length Mode
Application of SimpliciTI: main_AP_Async_Listen_autoack and mainEDs_autoack
Overhead of SimpliciTI protocol header including 2-byte length filed: 13 bytes
Now I have a problem: After Join and Link procedure, when I tried to let ED send 50, 100, 150, 200, 250, 280 bytes packets to AP separately, just the case of sending 250 bytes packet had something wrong. AP always received a incomplete frame. The total payload size of radio frame is 250 + 13 = 263. The first 245 bytes of 263 were correct. The else had the same value and were wrong. However the frame could be correctly received by a Sinffer which was only running a simple Infinite Packet Length Mode ported from CC112x.
(Updated: with advanced test, only transmitting 232 bytes ~ 279 bytes payload has this issue)
The following is the detail:
In AP/Rx side, when reading first 2-byte length field and 81 bytes data in every RxFifoAboveThresholdIsr iterations, the MARCSTATE was normal. Therefore the first 245 bytes were correct. However when the S/W tried to read the remainder data in the packetReceivedIsr ISR, it found MARCSTATE had RX_FIFO_ERROR. When the problem happened, I also observed that the PKT_SYNC_RXTX signal of Rx was shorter than Tx's by an oscilloscope. The Rx's PKT_SYNC_RXTX was deasserted almost at the same time with the end of last RxFifoAboveThresholdIsr ISR process. I am not sure if it is a chance or not.
The following is my conclusion:
1. I am almost sure the RF state wasn't switched by S/W at that time.
2. The Tx seems OK. The frame could be received by a Sniffer correctly.
3. The clock speed of MCU/System and SPI are first enough.
Do you guys have any comment for my problem? Thank!
Best regards,
Simon