Skip to content

Conversation

@ldslaron
Copy link

@ldslaron ldslaron commented Jul 2, 2014

The radio TX FIFO was appending only 4 bytes at a time because the FIFO would sometimes overflow when adding bigger chunks. This change resolves that issue by adding hysteresis to the almost empty bit polling, which gets updated only with the TX clock of the radio.

Disabling the RX interrupt and switching to PLL tune mode was apparently causing intermittent data loss. A ping pong buffer makes it possible to leave the interrupt enabled such that the TDM loop can operate on one buffer while the RX interrupt operates on the other. Since the program does not copy any data, the buffer switching is efficient in terms of performance.

Sometimes after issuing ATZ the radio would fail to initialize properly; a fix is included to check the radio version only after the chip asserts CHIPRDY. The EZRADIOPRO Detailed Register Descriptions (AN440 rev 0.7, page 12) indicate that SPI operations should occur only after this occurs.

@ldslaron ldslaron changed the title Made radio FIFO work with appends greater than 4 bytes Improved Radio Buffering and Initialization Jul 5, 2014
@LorenzMeier
Copy link
Contributor

@tridge It would be great to get this reviewed.

@great9
Copy link

great9 commented Dec 15, 2017

+1 @tridge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants