From ccf2d029feb19c5c976807d29cc78fcb9d06e981 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 13 Oct 2025 13:37:27 -0400 Subject: midterm report: firmware --- midterm_report/midterm_report.tex | 16 +++++++++++++++- midterm_report/references.bib | 6 ++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'midterm_report') diff --git a/midterm_report/midterm_report.tex b/midterm_report/midterm_report.tex index 8c7e3f0..1e358f1 100644 --- a/midterm_report/midterm_report.tex +++ b/midterm_report/midterm_report.tex @@ -203,7 +203,21 @@ TODO \section{Firmware} -TODO +Firmware is the program that runs on the PIC microcontroller. +It is responsible for interacting with the peripherals and transforming data from the CAN bus into output signals for the gauges. + +The firmware is written in C for Microchip's XC8 compiler. + +Each peripheral---MCP2515, 25LC160C, and MCP4912---has a corresponding translation unit. +So far, I have written and tested the MCP4912 DAC unit. +The 25LC160C and MCP2515 units are mostly written but still require more testing. + +The firmware must also communicate with a PC via USB. +The Microchip MLA USB library is employed for this purpose \cite{mla_usb}. +However, the USB code uses a lot of the PIC's flash memory. +Some system test builds already fail to link due to lack of space. +As a result, USB may have to be dropped from the project, and another method will have to be devised for programming the user configuration into the EEPROM. +This is a major disappointment, but I will have to work around it seeing as the hardware has already been finalized. \section{Software} diff --git a/midterm_report/references.bib b/midterm_report/references.bib index 6a019a9..04defbe 100644 --- a/midterm_report/references.bib +++ b/midterm_report/references.bib @@ -57,3 +57,9 @@ author = {Sam Anthony}, url = {power_supply.ods}, }, +@online{mla_usb, + title = {MLA USB}, + organization = {Microchip Inc.}, + publisher = {Github}, + url = {https://github.com/MicrochipTech/mla_usb}, +}, -- cgit v1.2.3