Skip to content

Navigation Menu

Sign in
Sign up

Improved Radio Buffering and Initialization - #19

Open
ldslaron wants to merge 5 commits into
ArduPilot:master from
ldslaron:master
Open

Improved Radio Buffering and Initialization #19
ldslaron wants to merge 5 commits into
ArduPilot:master from
ldslaron:master

Conversation

@ldslaron

@ldslaron ldslaron commented Jul 2, 2014

Copy link
Copy Markdown

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

Copy link
Copy Markdown
Contributor

@tridge It would be great to get this reviewed.

great9 commented Dec 15, 2017

Copy link
Copy Markdown

+1 @tridge

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

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /