Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved Radio Buffering and Initialization #19

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

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