Index: firmware/App/Monitors/Voltages.c =================================================================== diff -u -r54f47e88c2aac4b18b089e52fd030888ad6ce916 -ra3d5d8c92362ba61398b819c8b79a7f788c66f50 --- firmware/App/Monitors/Voltages.c (.../Voltages.c) (revision 54f47e88c2aac4b18b089e52fd030888ad6ce916) +++ firmware/App/Monitors/Voltages.c (.../Voltages.c) (revision a3d5d8c92362ba61398b819c8b79a7f788c66f50) @@ -7,8 +7,8 @@ * * @file Voltages.c * -* @author (last) Sean Nash -* @date (last) 11-Sep-2025 +* @author (last) Michael Garthwaite +* @date (last) 09-Jul-2026 * * @author (original) Sean Nash * @date (original) 11-Sep-2025 @@ -33,10 +33,13 @@ // ********** private definitions ********** -#define VOLTAGES_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the voltages data is published on the CAN bus. -#define VOLTAGES_ALARM_PERSISTENCE_MS ( 1 * MS_PER_SECOND ) ///< Alarm persistence period for voltage monitor alarms in milliseconds. -#define POWER_LOSS_VOLTAGE_PERSISTENCE_MS 500 ///< Power supply voltage out of range persistence in milliseconds. -#define DATA_PUBLISH_COUNTER_START_COUNT 14 ///< Data publish counter start count. +#define VOLTAGES_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the voltages data is published on the CAN bus. +#define VOLTAGES_ALARM_PERSISTENCE_MS ( 1 * MS_PER_SECOND ) ///< Alarm persistence period for voltage monitor alarms in milliseconds. +#define POWER_LOSS_VOLTAGE_PERSISTENCE_MS 500 ///< Power supply voltage out of range persistence in milliseconds. +#define DATA_PUBLISH_COUNTER_START_COUNT 14 ///< Data publish counter start count. +#define MAX_COUNT_AC_MONITORS 55000.0F ///< Max count value for power monitors. The valid range is 0 to 55,000 counts, which equates to 0 to 30A. +#define COUNT_TO_CURRENT( count ) ( ( (F32)count / MAX_COUNT_AC_MONITORS ) * 30.0F ) ///< FPGA power monitor count to current conversion +#define COUNT_TO_VOLTAGE( count ) ( ( ( (F32)count / MAX_COUNT_AC_MONITORS ) / 4.0F ) * 1534.0F ) ///< FPGA power monitor count to voltage conversion /// Defined states for the voltage monitor state machine. typedef enum Voltages_States @@ -273,14 +276,18 @@ { VOLTAGES_DATA_PAYLOAD_T data; - data.adc1_2VProc = getMonitoredLineLevel( MONITORED_VOLTAGE_1_2V ); - data.adc3_3V = getMonitoredLineLevel( MONITORED_VOLTAGE_3_3V ); - data.adc5VLogic = getMonitoredLineLevel( MONITORED_VOLTAGE_5V_LOGIC ); - data.adc24V_1 = getMonitoredLineLevel( MONITORED_VOLTAGE_24V_1 ); - data.adc24V_2 = getMonitoredLineLevel( MONITORED_VOLTAGE_24V_2 ); - data.fpgaVcc = getMonitoredLineLevel( MONITORED_VOLTAGE_FPGA_VCC_V ); - data.fpgaVaux = getMonitoredLineLevel( MONITORED_VOLTAGE_FPGA_AUX_V ); - data.fpgaVpvn = getMonitoredLineLevel( MONITORED_VOLTAGE_FPGA_PVN_V ); + data.adc1_2VProc = getMonitoredLineLevel( MONITORED_VOLTAGE_1_2V ); + data.adc3_3V = getMonitoredLineLevel( MONITORED_VOLTAGE_3_3V ); + data.adc5VLogic = getMonitoredLineLevel( MONITORED_VOLTAGE_5V_LOGIC ); + data.adc24V_1 = getMonitoredLineLevel( MONITORED_VOLTAGE_24V_1 ); + data.adc24V_2 = getMonitoredLineLevel( MONITORED_VOLTAGE_24V_2 ); + data.fpgaVcc = getMonitoredLineLevel( MONITORED_VOLTAGE_FPGA_VCC_V ); + data.fpgaVaux = getMonitoredLineLevel( MONITORED_VOLTAGE_FPGA_AUX_V ); + data.fpgaVpvn = getMonitoredLineLevel( MONITORED_VOLTAGE_FPGA_PVN_V ); + data.fpgaACDCVoltage = COUNT_TO_VOLTAGE(getFPGAACToDCPowerSupplyVoltage()); + data.fpgaACDCCurrent = COUNT_TO_CURRENT(getFPGAACToDCPowerSupplyCurrent()); + data.fpgaACHeaterVoltage = COUNT_TO_VOLTAGE(getFPGAACHeaterVoltage()); + data.fpgaACHeaterCurrent = COUNT_TO_CURRENT(getFPGAACHeaterCurrent()); broadcastData( MSG_ID_DD_VOLTAGES_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( VOLTAGES_DATA_PAYLOAD_T ) ); voltagesDataPublicationTimerCounter = 0; Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -r3b84fc79b2fd6c7a447e54e4fe821447f613af59 -ra3d5d8c92362ba61398b819c8b79a7f788c66f50 --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 3b84fc79b2fd6c7a447e54e4fe821447f613af59) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision a3d5d8c92362ba61398b819c8b79a7f788c66f50) @@ -7,8 +7,8 @@ * * @file TaskGeneral.c * -* @author (last) Sameer Kalliadan Poyil -* @date (last) 24-Jun-2026 +* @author (last) Michael Garthwaite +* @date (last) 14-Jul-2026 * * @author (original) Vinayakam Mani * @date (original) 07-Aug-2024 @@ -35,6 +35,7 @@ #include "SystemCommDD.h" #include "TaskGeneral.h" #include "WatchdogMgmt.h" +#include "Voltages.h" /** * @addtogroup TaskGeneral @@ -83,7 +84,7 @@ execConcentratePumpMonitor(); // Monitor DD voltages - ///execVoltagesMonitor(); + execVoltagesMonitor(); // run DD operation mode state machine execDDOperationModes();