...
mcp3427_adc - driver for the MCP3427 analog-digital converter. Reportedly already exists in the MSXII codebase (project
solar_slave
) and can be reused.spv1020_mppt - driver for the SPV1020 maximum power point tracker and DC-DC converter. Communicates over SPI with the SPV1020s and issues commands (a list can be found in the SPV1020 datasheet). Should provide a separate function for calling each command.
mc74lvx_demux - driver for the MC74LVX138 3:8 demultiplexer (decoder).
drv120_relay or similar - driver for the DRV120PWR relay driver, also used in BMS Carrier.
Comments
We will have three types of events.
Action events will cause something to physically happen - like opening the relay or shutting down an MPPT. They have
EVENT_PRIORITY_HIGHEST
.Fault events are raised when a fault is detected. They have
EVENT_PRIORITY_HIGH
.Data ready events are raised by data_store when new data is available. They have
EVENT_PRIORITY_NORMAL
.
ICs we don’t need drivers for include:
ACS722 current sense: nothing configurable, hidden behind an MCP3427
From a separation-of-concerns standpoint it might make sense to move the MPPT fault detection logic out of sense_mppt to its own module since it isn’t strictly related to data collection, but that would be more complex and would require duplicating the soft timer logic (though that could be desired if we wanted to check faults more or less frequently). We could do it either way.
...