Index: firmware/App/Controllers/LoadCell.c =================================================================== diff -u -r8f5feed92f41a476d5656038bcdfe884e17bd593 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Controllers/LoadCell.c (.../LoadCell.c) (revision 8f5feed92f41a476d5656038bcdfe884e17bd593) +++ firmware/App/Controllers/LoadCell.c (.../LoadCell.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -31,7 +31,7 @@ #define LOAD_CELL_SAMPLES_TO_AVERAGE LOAD_CELL_REPORT_PERIOD ///< Averaging load cell data over the reporting interval. #define LOAD_CELL_AVERAGE_MULTIPLIER (1.0 / (F32)LOAD_CELL_SAMPLES_TO_AVERAGE) ///< Optimization - multiplying is faster than dividing. // TODO - gain and offset for load cells should be read from NV Data calibration record. -#define ADC2GRAM (0.0894 * 1.1338) ///< Conversion factor from ADC counts to grams. Division for averaging is folded into this value. +#define ADC2GRAM (0.0894 * 1.1338) ///< Conversion factor from ADC counts to grams. #define LOAD_CELL_ZERO_OFFSET -1215.0 ///< Zero offset (in grams). TODO - right now, this is empty reservoir weight. // ********** private data ********** Index: firmware/App/DGCommon.h =================================================================== diff -u -r2db16f950f61815bd8be6d7d300a82eb1f6ee6da -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/DGCommon.h (.../DGCommon.h) (revision 2db16f950f61815bd8be6d7d300a82eb1f6ee6da) +++ firmware/App/DGCommon.h (.../DGCommon.h) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -35,6 +35,7 @@ // #define SIMULATE_UI 1 // #define TASK_TIMING_OUTPUT_ENABLED 1 // re-purposes drain pump enable pin for task timing #define DISABLE_HEATERS_AND_TEMPS 1 +// #define DISABLE_ACCELS 1 // #define ENABLE_DIP_SWITCHES 1 // #define EMC_TEST_BUILD 1 #define ALARMS_DEBUG 1 Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -ra7bf3ca23ea37a61000379facae628a31b3ecc59 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision a7bf3ca23ea37a61000379facae628a31b3ecc59) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -15,6 +15,7 @@ * ***************************************************************************/ +#include "Accel.h" #include "CPLD.h" #include "FPGA.h" #include "OperationModes.h" @@ -86,8 +87,6 @@ { case DG_POST_STATE_START: postState = DG_POST_STATE_FPGA; - // FOR TESTING REMOVE - //postState = POST_STATE_TEMPERATURE_SENSORS; break; case DG_POST_STATE_FPGA: @@ -105,6 +104,15 @@ postState = handlePOSTStatus( testStatus ); break; + case DG_POST_STATE_ACCELEROMETER: +#ifndef DISABLE_ACCELS + testStatus = execAccelTest(); +#else + testStatus = SELF_TEST_STATUS_PASSED; +#endif + postState = handlePOSTStatus( testStatus ); + break; + case DG_POST_STATE_WATCHDOG: testStatus = execWatchdogTest(); handlePOSTStatus( testStatus ); // ignoring return value because last test Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r8f5feed92f41a476d5656038bcdfe884e17bd593 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 8f5feed92f41a476d5656038bcdfe884e17bd593) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -1389,3 +1389,59 @@ { return fpgaSensorReadings.fpgaTrimmerHeaterIntJunctionTemp; } + +/*********************************************************************//** + * @brief + * The getFPGAAccelAxes function gets the accelerometer axis readings. \n + * Axis readings are in ADC counts. 0.004 g per LSB. + * @details + * Inputs : fpgaSensorReadings + * Outputs : none + * @param x : Populate this param with X axis reading + * @param y : Populate this param with Y axis reading + * @param z : Populate this param with Z axis reading + * @return none + *************************************************************************/ +void getFPGAAccelAxes( S16 *x, S16 *y, S16 *z ) +{ + *x = (S16)fpgaSensorReadings.accelX; + *y = (S16)fpgaSensorReadings.accelY; + *z = (S16)fpgaSensorReadings.accelZ; +} + +/*********************************************************************//** + * @brief + * The getFPGAAccelMaxes function gets the maximum accelerometer axis readings. \n + * from last FPGA read (every 10ms). \n + * Axis readings are in ADC counts. 0.004 g per LSB. + * @details + * Inputs : fpgaSensorReadings + * Outputs : none + * @param x : Populate this param with maximum X axis reading + * @param y : Populate this param with maximum Y axis reading + * @param z : Populate this param with maximum Z axis reading + * @return none + *************************************************************************/ +void getFPGAAccelMaxes( S16 *xmax, S16*ymax, S16*zmax ) +{ + *xmax = (S16)fpgaSensorReadings.accelXMax; + *ymax = (S16)fpgaSensorReadings.accelYMax; + *zmax = (S16)fpgaSensorReadings.accelZMax; +} + +/*********************************************************************//** + * @brief + * The getFPGAAccelStatus function gets the accelerometer reading count \n + * and error register values. + * @details + * Inputs : fpgaSensorReadings + * Outputs : none + * @param cnt : Populate this param with latest sample counter value + * @param err : Populate this param with latest error + * @return none + *************************************************************************/ +void getFPGAAccelStatus( U16 *cnt, U16 *err ) +{ + *cnt = fpgaSensorReadings.accelSampleCounter; + *err = fpgaSensorReadings.accelFaultRegister; +} Index: firmware/App/Services/FPGA.h =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Services/FPGA.h (.../FPGA.h) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Services/FPGA.h (.../FPGA.h) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -77,4 +77,8 @@ U16 getFPGAPRimaryColdJunctionTemp ( void ); U16 getFPGATrimmerColdJunctionTemp ( void ); +void getFPGAAccelAxes( S16 *x, S16 *y, S16 *z ); +void getFPGAAccelMaxes( S16 *xm, S16*ym, S16*zm ); +void getFPGAAccelStatus( U16 *cnt, U16 *accelFPGAFaultReg ); + #endif Index: firmware/App/Services/MessagePayloads.h =================================================================== diff -u --- firmware/App/Services/MessagePayloads.h (revision 0) +++ firmware/App/Services/MessagePayloads.h (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -0,0 +1,131 @@ +/************************************************************************** +* +* Copyright (c) 2020-2020 Diality Inc. - All Rights Reserved. +* +* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +* +* @file MessagePayloads.h +* +* @author (last) Sean Nash +* @date (last) 28-Jul-2020 +* +* @author (original) Sean Nash +* @date (original) 28-Jul-2020 +* +***************************************************************************/ + +#ifndef __MESSAGE_PAYLOADS_H__ +#define __MESSAGE_PAYLOADS_H__ + +// ********** public definitions ********** + +#pragma pack(push,1) + +typedef struct +{ + U32 alarmState; // 0 = no alarms, 1 = low priority, 2 = medium priority, 3 = high priority + U32 alarmTop; // ID of top active alarm + U32 escalatesIn; // seconds + U32 silenceExpiresIn; // seconds + U16 alarmsFlags; // bit flags: 1 = true, 0 = false for each bit +} ALARM_COMP_STATUS_PAYLOAD_T; + +typedef struct +{ + U08 major; + U08 minor; + U08 micro; + U16 build; + U08 fpgaId; + U08 fpgaMajor; + U08 fpgaMinor; + U08 fpgaLab; +} DG_VERSIONS_T; + +typedef struct +{ + U32 treatmentTimePrescribedinSec; + U32 treatmentTimeElapsedinSec; + U32 treatmentTimeRemaininginSec; +} TREATMENT_TIME_DATA_T; + +typedef struct +{ + F32 loadCellA1inGram; + F32 loadCellA2inGram; + F32 loadCellB1inGram; + F32 loadCellB2inGram; +} LOAD_CELL_DATA_T; + +typedef struct +{ + U32 setROPumpPressure; + F32 measROFlowRate; + F32 roPumpPWM; +} RO_PUMP_DATA_T; + +typedef struct +{ + U32 setDrainPumpSpeed; + U32 dacValue; +} DRAIN_PUMP_DATA_T; + +typedef struct +{ + F32 roPumpInletPressure; + F32 roPumpOutletPressure; + F32 drainPumpInletPressure; + F32 drainPumpOutletPressure; +} PRESSURES_DATA_T; + +typedef struct +{ + U32 activeReservoir; + U32 fillToVolumeMl; + U32 drainToVolumeMl; +} RESERVOIR_DATA_T; + +typedef struct +{ + F32 targetPrimaryHeaterTemp; + F32 targetTrimmerHeaterTemp; +} TARGET_TEMPS_PAYLOAD_T; + +typedef struct +{ + U32 mainPrimayHeaterDC; + U32 smallPrimaryHeaterDC; + U32 trimmerHeaterDC; +} HEATERS_DATA_T; + +typedef struct +{ + F32 x; + F32 y; + F32 z; + F32 xMax; + F32 yMax; + F32 zMax; + F32 xTilt; + F32 yTilt; + F32 zTilt; +} HD_ACCEL_DATA_PAYLOAD_T; + +typedef struct +{ + F32 gain; + F32 offset; +} LINEAR_F32_CAL_PAYLOAD_T; + +typedef struct +{ + S32 xOffset; + S32 yOffset; + S32 zOffset; +} ACCEL_CAL_PAYLOAD_T; + +#pragma pack(pop) + +#endif + Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -rc5e1315bfeb11335f66f7439e00857f26649e25b -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision c5e1315bfeb11335f66f7439e00857f26649e25b) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -33,7 +33,7 @@ // ********** private definitions ********** #define MIN_RESERVOIR_VOLUME_ML 0 ///< Minimum reservoir volume in mL. -#define MAX_RESERVOIR_VOLUME_ML 1950 ///< Maximum reservoir volume in mL. +#define MAX_RESERVOIR_VOLUME_ML 2000 ///< Maximum reservoir volume in mL. #define DEFAULT_FILL_VOLUME_ML 1700 ///< Default fill volume for treatment in mL. #define DISINFECT_FILL_VOLUME_ML 2400 ///> Fill volume for disinfection in mL. #define MAX_FILL_VOLUME_ML MAX_RESERVOIR_VOLUME_ML ///> Maximum fill volume in mL. Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rea5cb9d5013cc63f0f39d82a6277da3bfd0ae100 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision ea5cb9d5013cc63f0f39d82a6277da3bfd0ae100) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -1122,7 +1122,7 @@ handleTestROPumpDataBroadcastIntervalOverrideRequest( message ); break; - case MSG_ID_DRAIN_PUMP_SET_PT_OVERRIDE: + case MSG_ID_DRAIN_PUMP_SET_RPM_OVERRIDE: handleTestDrainPumpSetPointOverrideRequest( message ); break; @@ -1153,6 +1153,22 @@ handleTestHeatersDataPublishOverrideRequest ( message ); break; + case MSG_ID_DG_ACCEL_OVERRIDE: + handleTestDGAccelOverrideRequest( message ); + break; + + case MSG_ID_DG_ACCEL_MAX_OVERRIDE: + handleTestDGAccelMaxOverrideRequest( message ); + break; + + case MSG_ID_DG_ACCEL_SEND_INTERVAL_OVERRIDE: + handleTestDGAccelBroadcastIntervalOverrideRequest( message ); + break; + + case MSG_ID_DG_ACCEL_SET_CALIBRATION: + handleSetAccelCalibration( message ); + break; + default: // TODO - unrecognized message ID received - ignore break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rc5e1315bfeb11335f66f7439e00857f26649e25b -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c5e1315bfeb11335f66f7439e00857f26649e25b) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -16,14 +16,16 @@ ***************************************************************************/ #include // for memcpy() - + +#include "Accel.h" #include "DrainPump.h" #include "FPGA.h" #include "Heaters.h" #include "LoadCell.h" -#include "MsgQueues.h" +#include "MessagePayloads.h" #include "ModeStandby.h" #include "ModeRecirculate.h" +#include "MsgQueues.h" #include "OperationModes.h" #include "Pressures.h" #include "Reservoirs.h" @@ -45,88 +47,7 @@ #ifdef DEBUG_ENABLED #define DEBUG_EVENT_MAX_TEXT_LEN 40 #endif - -#pragma pack(push,1) -typedef struct -{ - U32 alarmState; // 0 = no alarms, 1 = low priority, 2 = medium priority, 3 = high priority - U32 alarmTop; // ID of top active alarm - U32 escalatesIn; // seconds - U32 silenceExpiresIn; // seconds - U16 alarmsFlags; // bit flags: 1 = true, 0 = false for each bit -} ALARM_COMP_STATUS_PAYLOAD_T; - -typedef struct -{ - U08 major; - U08 minor; - U08 micro; - U16 build; - U08 fpgaId; - U08 fpgaMajor; - U08 fpgaMinor; - U08 fpgaLab; -} DG_VERSIONS_T; - -typedef struct -{ - U32 treatmentTimePrescribedinSec; - U32 treatmentTimeElapsedinSec; - U32 treatmentTimeRemaininginSec; -} TREATMENT_TIME_DATA_T; - -typedef struct -{ - F32 loadCellA1inGram; - F32 loadCellA2inGram; - F32 loadCellB1inGram; - F32 loadCellB2inGram; -} LOAD_CELL_DATA_T; - -typedef struct -{ - U32 setROPumpPressure; - F32 measROFlowRate; - F32 roPumpPWM; -} RO_PUMP_DATA_T; - -typedef struct -{ - U32 setDrainPumpSpeed; - U32 dacValue; -} DRAIN_PUMP_DATA_T; - -typedef struct -{ - F32 roPumpInletPressure; - F32 roPumpOutletPressure; - F32 drainPumpInletPressure; - F32 drainPumpOutletPressure; -} PRESSURES_DATA_T; - -typedef struct -{ - U32 activeReservoir; - U32 fillToVolumeMl; - U32 drainToVolumeMl; -} RESERVOIR_DATA_T; - -typedef struct -{ - F32 targetPrimaryHeaterTemp; - F32 targetTrimmerHeaterTemp; -} TARGET_TEMPS_PAYLOAD_T; - -typedef struct -{ - U32 mainPrimayHeaterDC; - U32 smallPrimaryHeaterDC; - U32 trimmerHeaterDC; -} HEATERS_DATA_T; - -#pragma pack(pop) - // ********** private data ********** static BOOL testerLoggedIn = FALSE; @@ -349,6 +270,53 @@ return result; } +/************************************************************************* + * @brief + * The broadcastAccelData function constructs an accelerometer data msg to \n + * be broadcast and queues the msg for transmit on the appropriate CAN channel. + * @details + * Inputs : none + * Outputs : accelerometer data broadcast msg constructed and queued. + * @param x : X axis vector magnitude (in g) + * @param y : Y axis vector magnitude (in g) + * @param z : Z axis vector magnitude (in g) + * @param xm : max X axis vector magnitude (in g) + * @param ym : max Y axis vector magnitude (in g) + * @param zm : max Z axis vector magnitude (in g) + * @param xt : X axis tilt (in degrees) + * @param yt : Y axis tilt (in degrees) + * @param zt : Z axis tilt (in degrees) + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastAccelData( F32 x, F32 y, F32 z, F32 xm, F32 ym, F32 zm, F32 xt, F32 yt, F32 zt ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + HD_ACCEL_DATA_PAYLOAD_T payload; + + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_HD_ACCELEROMETER_DATA; + msg.hdr.payloadLen = sizeof( HD_ACCEL_DATA_PAYLOAD_T ); + payload.x = x; + payload.y = y; + payload.z = z; + payload.xMax = xm; + payload.yMax = ym; + payload.zMax = zm; + payload.xTilt = xt; + payload.yTilt = yt; + payload.zTilt = zt; + + memcpy( payloadPtr, &payload, sizeof( MSG_ID_DG_ACCELEROMETER_DATA ) ); + + // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_BROADCAST, ACK_NOT_REQUIRED ); + + return result; +} + /************************************************************************* * @brief broadcastRTCEpoch * The broadcastRTCEpoch function constructs an epoch msg to \n @@ -1314,3 +1282,65 @@ * @return none *************************************************************************/ DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDGSafetyShutdownOverrideRequest, testSetSafetyShutdownOverride, testResetSafetyShutdownOverride ) + +/************************************************************************* + * @brief + * The handleTestDGAccelOverrideRequest function handles a request to \n + * override the measured accelerometer sensor readings. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_ARRAY_OVERRIDE_HANDLER_FUNC_F32( F32, handleTestDGAccelOverrideRequest, testSetAccelAxisOverride, testResetAccelAxisOverride ) + +/************************************************************************* + * @brief + * The handleTestDGAccelMaxOverrideRequest function handles a request to \n + * override the measured accelerometer sensor maximum readings. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_ARRAY_OVERRIDE_HANDLER_FUNC_F32( F32, handleTestDGAccelMaxOverrideRequest, testSetAccelMaxOverride, testResetAccelMaxOverride ) + +/************************************************************************* + * @brief + * The handleTestDGAccelBroadcastIntervalOverrideRequest function handles a \n + * request to override the broadcast interval for accelerometer data messages. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDGAccelBroadcastIntervalOverrideRequest, testSetAccelDataPublishIntervalOverride, testResetAccelDataPublishIntervalOverride ) + +/************************************************************************* + * @brief + * The handleSetAccelCalibration function handles a request to set + * accelerometer calibration factors. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +void handleSetAccelCalibration( MESSAGE_T *message ) +{ + BOOL result; + + if ( message->hdr.payloadLen == sizeof(ACCEL_CAL_PAYLOAD_T) ) + { + ACCEL_CAL_PAYLOAD_T payload; + + memcpy( &payload, message->payload, sizeof(ACCEL_CAL_PAYLOAD_T) ); + result = setAccelCalibration( payload.xOffset, payload.yOffset, payload.zOffset ); + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -34,6 +34,9 @@ // MSG_ID_ALARM_CLEARED BOOL broadcastAlarmCleared( U16 alarm ); +// MSG_ID_DG_ACCELEROMETER_DATA +BOOL broadcastAccelData( F32 x, F32 y, F32 z, F32 xm, F32 ym, F32 zm, F32 xt, F32 yt, F32 zt ); + // MSG_ID_RTC_EPOCH BOOL broadcastRTCEpoch( U32 epoch ); // TODO - probably don't want DG to broadcast these @@ -162,4 +165,16 @@ // MSG_ID_START_STOP_PRIMARY_HEATER BOOL handleStartStopPrimaryHeater( MESSAGE_T * message ); +// MSG_ID_DG_ACCEL_OVERRIDE: +void handleTestDGAccelOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DG_ACCEL_MAX_OVERRIDE: +void handleTestDGAccelMaxOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DG_ACCEL_SEND_INTERVAL_OVERRIDE: +void handleTestDGAccelBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DG_ACCEL_SET_CALIBRATION: +void handleSetAccelCalibration( MESSAGE_T *message ); + #endif Index: firmware/App/Tasks/TaskPriority.c =================================================================== diff -u -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) +++ firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -17,6 +17,7 @@ #include "gio.h" +#include "Accel.h" #include "DrainPump.h" #include "FPGA.h" #include "InternalADC.h" @@ -70,7 +71,12 @@ // control valves execValves(); - + +#ifndef DISABLE_ACCELS + // monitor accelerometer + execAccel(); +#endif + // monitor RO pump execROPumpMonitor(); Index: firmware/DG.dil =================================================================== diff -u -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/DG.dil (.../DG.dil) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) +++ firmware/DG.dil (.../DG.dil) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -1,4 +1,4 @@ -# RM46L852PGE 07/17/20 13:56:32 +# RM46L852PGE 07/27/20 12:39:13 # ARCH=RM46L852PGE # @@ -9435,7 +9435,7 @@ DRIVER.ETPWM.VAR.ETPWM5_PWMA_ENA.VALUE=1 DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_PERIOD_REG.VALUE=0 DRIVER.ETPWM.VAR.ETPWM3_PWMA_DEADBAND_INVERT.VALUE=0 -DRIVER.ETPWM.VAR.ETPWM6_PWMB_PERIOD_REG.VALUE=25833 +DRIVER.ETPWM.VAR.ETPWM6_PWMB_PERIOD_REG.VALUE=4132 DRIVER.ETPWM.VAR.ETPWM5_DCBEVT1.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM1_OSHT_WIDTH_REG.VALUE=0 DRIVER.ETPWM.VAR.ETPWM1_PWMA_DUTY.VALUE=0 @@ -9523,11 +9523,11 @@ DRIVER.ETPWM.VAR.ETPWM1_PWMA_ENA.VALUE=1 DRIVER.ETPWM.VAR.ETPWM7_OSHT1.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM6_PWMB_DUTY.VALUE=0 -DRIVER.ETPWM.VAR.ETPWM6_PWMA_PERIOD_REG.VALUE=25833 +DRIVER.ETPWM.VAR.ETPWM6_PWMA_PERIOD_REG.VALUE=4132 DRIVER.ETPWM.VAR.ETPWM6_HSPCLKDIV_REG.VALUE=0 DRIVER.ETPWM.VAR.ETPWM4_PWMB_RISING_EDGE_DELAY_REG.VALUE=1 DRIVER.ETPWM.VAR.ETPWM7_OSHT2.VALUE=0x0000 -DRIVER.ETPWM.VAR.ETPWM6_PWMB_PERIOD.VALUE=250000 +DRIVER.ETPWM.VAR.ETPWM6_PWMB_PERIOD.VALUE=40000 DRIVER.ETPWM.VAR.ETPWM7_CBC.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM7_OSHT3.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM2_CBC1.VALUE=0x0000 @@ -9579,7 +9579,7 @@ DRIVER.ETPWM.VAR.ETPWM3_ENABLE_SOCB.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM7_PWMA_POLARITY.VALUE=0 DRIVER.ETPWM.VAR.ETPWM2_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1 -DRIVER.ETPWM.VAR.ETPWM6_PWMA_ACTUALPERIOD.VALUE=250002.419 +DRIVER.ETPWM.VAR.ETPWM6_PWMA_ACTUALPERIOD.VALUE=39996.129 DRIVER.ETPWM.VAR.ETPWM5_RDELAY_SOURCE.VALUE=0 DRIVER.ETPWM.VAR.ETPWM5_PWMB_FALLING_EDGE_DELAY.VALUE=9.091 DRIVER.ETPWM.VAR.ETPWM5_PWMA_DUTYTIME.VALUE=503.218 @@ -9751,7 +9751,7 @@ DRIVER.ETPWM.VAR.ETPWM5_ENABLE_SOCA.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM5_ENABLE_SOCB.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM5_HSPCLKDIV_REG.VALUE=0 -DRIVER.ETPWM.VAR.ETPWM6_PWMB_ACTUALPERIOD.VALUE=250002.419 +DRIVER.ETPWM.VAR.ETPWM6_PWMB_ACTUALPERIOD.VALUE=39996.129 DRIVER.ETPWM.VAR.ETPWM2_PWMB_PERIOD.VALUE=500000 DRIVER.ETPWM.VAR.ETPWM3_PWMA_ENA.VALUE=1 DRIVER.ETPWM.VAR.ETPWM1_PWMA_POLARITY.VALUE=0 @@ -9855,7 +9855,7 @@ DRIVER.ETPWM.VAR.ETPWM6_PWMB_ENA.VALUE=1 DRIVER.ETPWM.VAR.ETPWM5_OSHT1.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM3_PWMB_RISING_EDGE_DELAY_REG.VALUE=1 -DRIVER.ETPWM.VAR.ETPWM6_PWMA_PERIOD.VALUE=250000 +DRIVER.ETPWM.VAR.ETPWM6_PWMA_PERIOD.VALUE=40000 DRIVER.ETPWM.VAR.ETPWM5_OSHT2.VALUE=0x0000 DRIVER.ETPWM.VAR.ETPWM5_DEADBAND_INPUT.VALUE=PWMA_RED_FED DRIVER.ETPWM.VAR.ETPWM5_PWMB_ACTUALPERIOD.VALUE=996.758 Index: firmware/include/etpwm.h =================================================================== diff -u -re66245baae86e539e8470aa9739a99a2146d5f17 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/include/etpwm.h (.../etpwm.h) (revision e66245baae86e539e8470aa9739a99a2146d5f17) +++ firmware/include/etpwm.h (.../etpwm.h) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -598,7 +598,7 @@ #define ETPWM6_TBCTL_CONFIGVALUE ((uint16)((uint16)0U << 7U) | (uint16)((uint16)0U << 10U)) #define ETPWM6_TBPHS_CONFIGVALUE 0x00000000U -#define ETPWM6_TBPRD_CONFIGVALUE 25833U +#define ETPWM6_TBPRD_CONFIGVALUE 4132U #define ETPWM6_CMPCTL_CONFIGVALUE 0x00000000U #define ETPWM6_CMPA_CONFIGVALUE 0U #define ETPWM6_CMPB_CONFIGVALUE 0U Index: firmware/source/etpwm.c =================================================================== diff -u -re66245baae86e539e8470aa9739a99a2146d5f17 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/source/etpwm.c (.../etpwm.c) (revision e66245baae86e539e8470aa9739a99a2146d5f17) +++ firmware/source/etpwm.c (.../etpwm.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -368,7 +368,7 @@ etpwmREG6->TBCTL |= (uint16)((uint16)0U << 10U); /** - Sets time period or frequency for ETPWM block both PWMA and PWMB*/ - etpwmREG6->TBPRD = 25833U; + etpwmREG6->TBPRD = 4132U; /** - Setup the duty cycle for PWMA */ etpwmREG6->CMPA = 0U; Index: firmware/source/sys_main.c =================================================================== diff -u -r8f5feed92f41a476d5656038bcdfe884e17bd593 -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e --- firmware/source/sys_main.c (.../sys_main.c) (revision 8f5feed92f41a476d5656038bcdfe884e17bd593) +++ firmware/source/sys_main.c (.../sys_main.c) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) @@ -61,6 +61,7 @@ #include "rti.h" #include "DGCommon.h" +#include "Accel.h" #include "AlarmMgmt.h" #include "CommBuffers.h" #include "CPLD.h" @@ -175,6 +176,7 @@ initTemperatureSensors(); initROPump(); initDrainPump(); + initAccel(); initRTC(); initCommBuffers(); initMsgQueues();