FPGA Weather Station
A full RTL weather station design targeting a 32.768 kHz clock on an FPGA. The system integrates multiple sensors and peripherals, all coordinated through a custom memory controller with a 4-way round-robin arbiter.
The SPI interface drives an MS5803-02BA pressure and temperature sensor. Raw ADC readings from the barometer are compensated using a sequence of PROM coefficients (C1–C6) following the MS5803 datasheet calibration procedure. A separate ADC-based wind vane module reads wind direction.
An LCD controller formats and displays live pressure, temperature, wind direction, and elapsed time. The memory controller manages read/write arbitration between all subsystems with no bus contention.
Verified using Cadence Xcelium with a behavioural testbench that models the SPI MISO responses of the MS5803, including PROM read and D1/D2 conversion phases.