-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Adding the main structured list for implementing the firmware for the PSLab Mini Project:
PSLab Mini Framework Structure
—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---
We are planning to implement the firmware as a multi-layer structure as follows:
We aim to construct a hierarchical structure in the Firmware where each low-level driver handles a single high-level driver and provides it with structured access to the Registers and hardware it requires.
We also plan to split the firmware into two parts:
-Library Part
This part is compiled and stored as a Static library, which has all the registers, Low-level drivers, as well as high-level drivers definitions
This part exposes high-level drivers (or the instruments) and buses (for the communication protocol from low-level drivers) to the application Layer
-Application Part
This will be built on top of the library part and will be able to handle external inputs, such as data and commands, from the SD card, Serial, USB, and Wi-Fi.
The structures that we will require to implement are:
Registers
—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---
Implementing basic register control in the firmware
(This will probably be implemented along with low-level drivers on a need-to-define basis as we go along the way)
-
System control
-
Timer control
-
Comparator control(input and output)
-
Converters(ADC) (Basic HAL-based ADC driver #49
ADC driver #68
Timer driver #69
ADC external conversion trigger #70
ADC DMA output #71
ADC simultaneous sampling #72) -
Memory Control (DMA)
Instruments
(Here we will add the low-level drivers that get implemented along with the instruments later, as we work on the instruments.)
—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---
-
1. Implementing Oscillocope
-
2. Implementing Logic analyser
-
3. Implementing Multimeter
Low-level drivers
Helper, Buses, and utility functions will come under low-level drivers
—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---
-
Implementing SPI bus
-
Implementing I2C bus
-
Implementing the UART bus (HAL-based UART driver #37)
-
Implementing USB Bus (Add USB communication #43)
-
Buffer functions
-
LED control
-
Delay functionality
-
RTC functionality
Device Connection
—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---
-
Implementing Wifi capabilities
-
Implementing the ability to flash firmware directly to ESP via STM32 peripheral gateways(this was a missing feature mentioned in one of the meetings)
Other Important Implementations of the PSLab-Mini-firmware structure
—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---—---
- Hardware dependent layer as a static library (Build hardware dependent layer as static library #48)