top of page

Firmware

Firmware development was completed by using C programming with AVR libraries. The goal of the firmware design was to connect the hardware and its peripherals to the larger system. This was completed by using SPI between peripherals and the AT90CAN128 microcontroller, and sending data over CAN to the ECU.


Development and testing of the firmware on prototyping hardware was critical to proving the design. A development board, the Olimex AVR-CAN, had the AT90CAN128 as the microcontroller [1]. The board has a CAN transceiver, enabling CAN communication. It also has a 16MHz oscillator circuit, matching the schematic designed for the CANDAQ. To program the AVR-CAN board, a JTAG programmer was required. The JTAGICE mkII was used to complete this [2].

 

The figure on the right shows the system used to test and develop the SPI and CAN interface. This system was used to prototype the firmware specification while the hardware was being developed. This setup also enabled a proof-of-concept of the design, integrating the SPI protocol and CAN protocol.

​

38731200_227187434608109_417470757605684

Figure 1: CANDAQ firmware schematic

[1] Olimex, “AT90CAN128 Development Board AVR-CAN User Manual”, AVR-CAN. Available https://www.olimex.com/Products/AVR/Development/AVR-CAN/.


[2] Microchip, “AVR JTAGICE mkII User Manual”, ATJTAGICE2. Available: https://www.microchip.com/developmenttools/ProductDetails/atjtagice2

bottom of page