Index: firmware/App/Drivers/InternalADC.c =================================================================== diff -u -ra9c88c428c6ab7e9bdaa273826c1fde1b0a8a1f5 -r6029b4ee6c8482d6109597a4de6073e539697d51 --- firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision a9c88c428c6ab7e9bdaa273826c1fde1b0a8a1f5) +++ firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision 6029b4ee6c8482d6109597a4de6073e539697d51) @@ -152,29 +152,29 @@ *************************************************************************/ void execInternalADC( void ) { -// U32 i; -// -// if ( adcRawReadingsCount < NUM_OF_INT_ADC_CHANNELS ) -// { -// // Process readings from last conversion -// for ( i = 0; i < adcRawReadingsCount; i++ ) -// { -// U32 ch = ADC_CHANNEL_NUM_TO_CHANNEL_ID[ adcRawReadings[ i ].id ]; -// -// adcReadingsTotals[ ch ] -= adcReadings[ ch ][ adcReadingsIdx[ ch ] ]; -// adcReadings[ ch ][ adcReadingsIdx[ ch ] ] = adcRawReadings[i].value; -// adcReadingsTotals[ ch ] += adcRawReadings[ i ].value; -// adcReadingsAvgs[ ch ] = adcReadingsTotals[ ch ] >> ROLLING_AVG_SHIFT_DIVIDER; -// adcReadingsIdx[ ch ] = INC_WRAP( adcReadingsIdx[ ch ], 0, SIZE_OF_ROLLING_AVG - 1 ); -// } -// } -// else -// { -// SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_INT_ADC_DATA_OVERRUN, adcRawReadingsCount ) -// } -// -// // Start an adc channel group conversion -// adcStartConversion( adcREG1, adcGROUP1 ); + U32 i; + + if ( adcRawReadingsCount < NUM_OF_INT_ADC_CHANNELS ) + { + // Process readings from last conversion + for ( i = 0; i < adcRawReadingsCount; i++ ) + { + U32 ch = ADC_CHANNEL_NUM_TO_CHANNEL_ID[ adcRawReadings[ i ].id ]; + + adcReadingsTotals[ ch ] -= adcReadings[ ch ][ adcReadingsIdx[ ch ] ]; + adcReadings[ ch ][ adcReadingsIdx[ ch ] ] = adcRawReadings[i].value; + adcReadingsTotals[ ch ] += adcRawReadings[ i ].value; + adcReadingsAvgs[ ch ] = adcReadingsTotals[ ch ] >> ROLLING_AVG_SHIFT_DIVIDER; + adcReadingsIdx[ ch ] = INC_WRAP( adcReadingsIdx[ ch ], 0, SIZE_OF_ROLLING_AVG - 1 ); + } + } + else + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_INT_ADC_DATA_OVERRUN, adcRawReadingsCount ) + } + + // Start an adc channel group conversion + adcStartConversion( adcREG1, adcGROUP1 ); } /*********************************************************************//** Index: firmware/App/Drivers/InternalADC.h =================================================================== diff -u -r8cbddbe34a4ffed5a4d9fac07a065799c5862611 -r6029b4ee6c8482d6109597a4de6073e539697d51 --- firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision 8cbddbe34a4ffed5a4d9fac07a065799c5862611) +++ firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision 6029b4ee6c8482d6109597a4de6073e539697d51) @@ -55,7 +55,7 @@ INT_ADC_PRIMARY_ALARM_CURRENT_LG, ///< Internal ADC channel for primary alarm audio current low gain INT_ADC_24V_ACTUATORS, ///< Internal ADC channel for 24V to actuators INT_ADC_BACKUP_V, ///< Internal ADC channel for VBackup - INT_ADC_DUMMY, ///< Internal ADC channel - not used, needed to get even number of channels +// INT_ADC_DUMMY, ///< Internal ADC channel - not used, needed to get even number of channels NUM_OF_INT_ADC_CHANNELS ///< Number of used internal ADC channels. } INT_ADC_CHANNEL_T; Index: firmware/TD.dil =================================================================== diff -u -re69e6a8293508b050a1e039a2182d6a044b5f7d5 -r6029b4ee6c8482d6109597a4de6073e539697d51 --- firmware/TD.dil (.../TD.dil) (revision e69e6a8293508b050a1e039a2182d6a044b5f7d5) +++ firmware/TD.dil (.../TD.dil) (revision 6029b4ee6c8482d6109597a4de6073e539697d51) @@ -1,4 +1,4 @@ -# RM46L852PGE 11/30/24 09:02:47 +# RM46L852PGE 12/02/24 16:30:42 # ARCH=RM46L852PGE # @@ -5553,7 +5553,7 @@ DRIVER.ADC.VAR.ADC2_GROUP2_RAM_PARITY_ENA.VALUE=0 DRIVER.ADC.VAR.ADC1_GROUP1_PIN3_ENABLE.VALUE=0x00000008 DRIVER.ADC.VAR.ADC1_GROUP0_CHANNEL_TOTAL_TIME.VALUE=0.000000 -DRIVER.ADC.VAR.ADC1_GROUP1_FIFO_SIZE.VALUE=20 +DRIVER.ADC.VAR.ADC1_GROUP1_FIFO_SIZE.VALUE=16 DRIVER.ADC.VAR.ADC1_GROUP2_DISCHARGE_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_GROUP2_SAMPLE_PRESCALER.VALUE=0 DRIVER.ADC.VAR.ADC1_GROUP1_LENGTH.VALUE=20 @@ -5588,8 +5588,8 @@ DRIVER.ADC.VAR.ADC2_GROUP2_PIN5_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_GROUP1_PIN8_ENABLE.VALUE=0x00000100 DRIVER.ADC.VAR.ADC1_GROUP1_ID_ENABLE.VALUE=0x00000020 -DRIVER.ADC.VAR.ADC1_GROUP1_EXTENDED_SAMPLE_TIME.VALUE=503.22 -DRIVER.ADC.VAR.ADC1_GROUP0_CONVERSION_TIME.VALUE=3.271 +DRIVER.ADC.VAR.ADC1_GROUP1_EXTENDED_SAMPLE_TIME.VALUE=500.00 +DRIVER.ADC.VAR.ADC1_GROUP0_CONVERSION_TIME.VALUE=3.250 DRIVER.ADC.VAR.ADC2_GROUP0_RESOLUTION.VALUE=12_BIT DRIVER.ADC.VAR.ADC1_GROUP1_PIN1_ENABLE.VALUE=0x00000002 DRIVER.ADC.VAR.ADC1_GROUP1_RESOLUTION.VALUE=12_BIT @@ -5638,11 +5638,11 @@ DRIVER.ADC.VAR.ADC2_GROUP0_SAMPLE_PRESCALER.VALUE=2 DRIVER.ADC.VAR.ADC1_GROUP0_DISCHARGE_PRESCALER.VALUE=0 DRIVER.ADC.VAR.ADC2_GROUP2_PIN3_ENABLE.VALUE=0x00000000 -DRIVER.ADC.VAR.ADC1_GROUP1_PIN6_ENABLE.VALUE=0x00000040 +DRIVER.ADC.VAR.ADC1_GROUP1_PIN6_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC2_RAMBASE.VALUE=0xFF3A0000 DRIVER.ADC.VAR.ADC2_GROUP0_BND.VALUE=8 DRIVER.ADC.VAR.ADC1_PORT_BIT0_DOUT.VALUE=0 -DRIVER.ADC.VAR.ADC1_GROUP1_SCAN_TIME.VALUE=919.340 +DRIVER.ADC.VAR.ADC1_GROUP1_SCAN_TIME.VALUE=721.154 DRIVER.ADC.VAR.ADC1_GROUP0_RESOLUTION.VALUE=12_BIT DRIVER.ADC.VAR.ADC2_GROUP2_FIFO_SIZE.VALUE=16 DRIVER.ADC.VAR.ADC2_GROUP1_PIN7_ENABLE.VALUE=0x00000000 @@ -5703,7 +5703,7 @@ DRIVER.ADC.VAR.ADC1_GROUP0_PIN15_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_GROUP1_BND.VALUE=10 DRIVER.ADC.VAR.ADC2_GROUP2_PIN13_ENABLE.VALUE=0x00000000 -DRIVER.ADC.VAR.ADC1_GROUP1_PIN19_ENABLE.VALUE=0x00080000 +DRIVER.ADC.VAR.ADC1_GROUP1_PIN19_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC2_PORT_BIT0_DOUT.VALUE=0 DRIVER.ADC.VAR.ADC2_CYCLE_TIME.VALUE=100.00 DRIVER.ADC.VAR.ADC1_GROUP1_HW_TRIGGER_SOURCE.VALUE=EVENT @@ -5726,7 +5726,7 @@ DRIVER.ADC.VAR.ADC1_PORT_BIT0_PDR.VALUE=0 DRIVER.ADC.VAR.ADC1_GROUP1_SAMPLE_TIME.VALUE=300.00 DRIVER.ADC.VAR.ADC1_GROUP1_PIN2_ENABLE.VALUE=0x00000004 -DRIVER.ADC.VAR.ADC1_GROUP1_CONVERSION_TIME.VALUE=3.271 +DRIVER.ADC.VAR.ADC1_GROUP1_CONVERSION_TIME.VALUE=3.250 DRIVER.ADC.VAR.ADC1_GROUP0_FIFO_SIZE.VALUE=0 DRIVER.ADC.VAR.ADC1_PORT_BIT0_PULL.VALUE=2 DRIVER.ADC.VAR.ADC1_GROUP0_LENGTH.VALUE=0 @@ -5739,8 +5739,8 @@ DRIVER.ADC.VAR.ADC1_GROUP0_PIN6_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC2_GROUP2_SCAN_TIME.VALUE=0.000 DRIVER.ADC.VAR.ADC2_GROUP1_HW_TRIGGER_SOURCE.VALUE=EVENT -DRIVER.ADC.VAR.ADC1_GROUP1_CHANNEL_TOTAL_TIME.VALUE=76.403740 -DRIVER.ADC.VAR.ADC1_GROUP0_EXTENDED_SAMPLE_TIME.VALUE=503.22 +DRIVER.ADC.VAR.ADC1_GROUP1_CHANNEL_TOTAL_TIME.VALUE=60.721154 +DRIVER.ADC.VAR.ADC1_GROUP0_EXTENDED_SAMPLE_TIME.VALUE=500.00 DRIVER.ADC.VAR.ADC1_GROUP0_HW_TRIGGER_SOURCE_ALT.VALUE=EVENT DRIVER.ADC.VAR.ADC2_GROUP1_PIN14_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_PORT_BIT0_PSL.VALUE=1 @@ -5765,14 +5765,14 @@ DRIVER.ADC.VAR.ADC1_CYCLE_TIME.VALUE=250 DRIVER.ADC.VAR.ADC2_GROUP0_DISCHARGE_PRESCALER.VALUE=0 DRIVER.ADC.VAR.ADC2_GROUP2_PIN4_ENABLE.VALUE=0x00000000 -DRIVER.ADC.VAR.ADC1_GROUP1_PIN7_ENABLE.VALUE=0x00000080 +DRIVER.ADC.VAR.ADC1_GROUP1_PIN7_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_GROUP2_DISCHARGE_TIME.VALUE=0.00 DRIVER.ADC.VAR.ADC1_GROUP0_HW_TRIGGER_SOURCE.VALUE=EVENT DRIVER.ADC.VAR.ADC1_GROUP1_PIN0_ENABLE.VALUE=0x00000001 DRIVER.ADC.VAR.ADC1_GROUP0_ID_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC2_GROUP2_DISCHARGE_TIME.VALUE=0.00 DRIVER.ADC.VAR.ADC1_GROUP2_SCAN_TIME.VALUE=0.000 -DRIVER.ADC.VAR.ADC1_GROUP1_PINS.VALUE=20 +DRIVER.ADC.VAR.ADC1_GROUP1_PINS.VALUE=16 DRIVER.ADC.VAR.ADC1_GROUP1_TRIGGER_EDGE_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_ALT_TRIG_COMP.VALUE=1 DRIVER.ADC.VAR.ADC1_GROUP0_CONTINUOUS_ENABLE.VALUE=0x00000000 @@ -5791,7 +5791,7 @@ DRIVER.ADC.VAR.ADC1_GROUP2_PIN1_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_GROUP0_PIN11_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC2_GROUP0_SCAN_TIME.VALUE=0.000 -DRIVER.ADC.VAR.ADC1_GROUP1_PIN23_ENABLE.VALUE=0x00800000 +DRIVER.ADC.VAR.ADC1_GROUP1_PIN23_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC1_GROUP1_PIN15_ENABLE.VALUE=0x00000000 DRIVER.ADC.VAR.ADC2_GROUP0_HW_TRIGGER_SOURCE.VALUE=EVENT DRIVER.ADC.VAR.ADC2_GROUP0_PIN5_ENABLE.VALUE=0x00000000 Index: firmware/source/adc.c =================================================================== diff -u -r73d8423edc56daed591bc0b3f7baee5540aea423 -r6029b4ee6c8482d6109597a4de6073e539697d51 --- firmware/source/adc.c (.../adc.c) (revision 73d8423edc56daed591bc0b3f7baee5540aea423) +++ firmware/source/adc.c (.../adc.c) (revision 6029b4ee6c8482d6109597a4de6073e539697d51) @@ -238,8 +238,8 @@ 0x00000008U | 0x00000010U | 0x00000020U | - 0x00000040U | - 0x00000080U | + 0x00000000U | + 0x00000000U | 0x00000100U | 0x00000000U | 0x00000400U | @@ -251,11 +251,11 @@ 0x00010000U | 0x00020000U | 0x00040000U | - 0x00080000U | 0x00000000U | 0x00000000U | + 0x00000000U | 0x00400000U | - 0x00800000U, + 0x00000000U, 0x00000000U | 0x00000000U | 0x00000000U | @@ -334,7 +334,7 @@ static const uint32 s_adcFiFoSize[2U][3U] = { {0U, - 20U, + 16U, 32U}, {16U, 16U,