Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

Task Structure

SD Card Logging Task - 500ms (Maybe more, depending on how much data we are logging) with priority 3

Will write the entire RX struct onto the SD card.

Considerations: We CURRENTLY (September 8, 2024) have 17 messages on CAN. For an overestimate and to include undeveloped systems like MPPTs and IMUs, let’s assume we have 30 messages in total. Assuming each message is the full 64 bits, we will have 1920 bits in total. This gives us 3840 bits/sec. This is a relatively slow data rate.

Needs more research but good resources:
https://www.eevblog.com/forum/microcontrollers/sd-card-writing-speed/
http://elm-chan.org/docs/mmc/mmc_e.html

XBee UART Task:

Update the can_receive function in can.c so every successful queue_pop will trigger a UART data transmission. The XBee UART Task will continuously call can_rx_all() so our rx_struct updates while sending data live.

PROS: Easy to implement and accounts for our mono-repo projects. It will support all data transmission regardless of the rate of transmission.

How to use XBEE

image-20240908-174508.png

https://www.printed-droid.com/kb/programming-the-xbee/
https://maker.pro/arduino/tutorial/interfacing-xbee-module-with-arduino

TX: Send UART to the XBee. It will handle the RF communication for us.
RX: Receive UART from the XBee.

To configure the radio channel, scanning periods, XBee ID, master/slave configurations use XCTU
https://www.digi.com/products/embedded-systems/digi-xbee/digi-xbee-tools/xctu

image-20240908-175421.png

Things Other Teams Do

UBC: Runs a bare-metal application that runs off ISRs. Warned us about packet linkage occurring, where adjacent packets have no distinction on the receiver's side. Seems to be a transceiver issue and is likely not a FW issue. However, we can include software checks to prevent this.

  • No labels