| drivers |
|
low level code interfacing directly with the external devices |
| 🔹 |
de0nano_adc |
reads data from the DE0Nano Analog to Digital converter, used for reading PM10 levels (analog) using SPI |
| 🔹 |
dht11 |
drives the humidity sensor using a custom 1-wire interface |
| 🔹 |
eeprom |
drives the internal EEPROM memory of DE0Nano using I²C |
| 🔹 |
gp2y1010 |
drives the PM10 sensor directly |
| 🔹 |
lps331ap |
drives from the pressure and temperature sensor using I²C |
| 🔹 |
rn4020 |
drives the Bluetooth transceiver using UART |
| 🔹 |
sdram |
drives the internal SDRAM memory of DE0Nano |
| 🔹 |
shift_reg |
used by sm410564 driver to control the display using SPI |
| 🔹 |
sm410564 |
drives the display directly |
| ext |
|
external code and modules, usually from Quartus or eewiki |
| 🔹 |
mult, div |
arithmetic multiplication and division modules (signed 24 bit, unsigned 24 bit and unsigned 16 bit) |
| 🔹 |
sdram_clk_pll |
SDRAM clock signal generator (100MHz and 100Mhz + 4us) |
| 🔹 |
i2c_master |
Inter-integrated Circuit Protocol (I²C) implementation |
| 🔹 |
spi master |
Serial Peripheral Interface (SPI) implementation |
| 🔹 |
uart |
UART implementation |
| modules |
|
implement main system operation logic |
| 🔹 |
Sensors |
Interfacing with the sensor drivers, fetching data on request. |
| 🔹 |
DataProcessor |
Aggregating data from the sensors, calculating PM10 readout to norm relation (%). |
| 🔹 |
Scheduler |
Triggering the data collection process at given intervals. |
| 🔹 |
Storage |
Reading and writing data to the SDRAM (data) and EEPROM (settings) memory, as well as managing the "factory defaults" for settings. |
| 🔹 |
Display |
Displaying the most up-to-date data in a one-by-one fashion (on demand). |
| 🔹 |
Communications |
Handling API requests over Bluetooth. |
| simulation |
|
integration tests using ModelSim |
| utils |
|
|
| 🔹 |
clock_divider |
clock divider used by drivers to generate different clock signals from DE0Nano's internal 50MHz |
| 🔹 |
types |
internal data structure definitions and some helper methods for type conversion |