Spektrum satellite Rx driver

The "Spektrum" receiver connects via a serial interface, 115.2kBaud. The driver handles the data frames (non-blocking) and returns the individual channels.

/media/uploads/offroad/img_2195.jpg

Library: http://mbed.org/users/offroad/libraries/spektRx/lzmwp4

I got some protocol information from this page: http://diydrones.ning.com/profiles/blog/show?id=705844%3ABlogPost%3A64228

The programming model is as follows:

  • initialize
  • Loop:
  • (A) call driver on serial interface
  • (B) query, whether a new frame was received
  • if yes, get channel information
  • invalidate the current frame
  • do other tasks
  • continue the loop

(A) and (B) essentially boil down to a Serial.readable() call if no data is available, so they may be called frequently without causing significant CPU load.

If this isn't acceptable, attach an interrupt to the serial interface and process the received bytes with spektRx_runChar().


Report

Please login to post comments.