Index: firmware/App/Drivers/CPLD.c =================================================================== diff -u -r025612ad77fe630889a364586de54bffe5262d56 -r53110a8d810e392e8f75cf0bf85a3ec07927e846 --- firmware/App/Drivers/CPLD.c (.../CPLD.c) (revision 025612ad77fe630889a364586de54bffe5262d56) +++ firmware/App/Drivers/CPLD.c (.../CPLD.c) (revision 53110a8d810e392e8f75cf0bf85a3ec07927e846) @@ -16,7 +16,8 @@ ***************************************************************************/ #include "gio.h" -#include "mibspi.h" +#include "mibspi.h" +#include "het.h" #include "WatchdogMgmt.h" #include "CPLD.h" @@ -29,22 +30,31 @@ // ********** private definitions ********** #define WD_PET_GIO_PORT_PIN 1U ///< Watchdog pet GPIO pin number. -#define WD_EXP_GIO_PORT_PIN 0U ///< Watchdog expired GPIO pin number. -#define LAMP_GRN_SPI5_PORT_MASK 0x00000200 ///< Lamp green GPIO port mask (CLK(100) - re-purposed as output GPIO). -#define LAMP_BLU_SPI5_PORT_MASK 0x00010000 ///< Lamp blue GPIO port mask (SIMO[0](99) - re-purposed as output GPIO). -#define LAMP_RED_SPI5_PORT_MASK 0x01000000 ///< Lamp red GPIO port mask (SOMI[0](98) - re-purposed as output GPIO). +#define WD_EXP_GIO_PORT_PIN 0U ///< Watchdog expired GPIO pin number. + +#define LED_CLEAN_RGB_1_SPI5_PORT_MASK (uint32)((uint32)1U << PIN_CLK) ///< Lamp Clean_LED1 GPIO port mask (SPI5/CLK(100) - re-purposed as output GPIO). +#define LED_CLEAN_RGB_2_SPI5_PORT_MASK (uint32)((uint32)1U << PIN_SIMO) ///< Lamp Clean_LED2 GPIO port mask (SPI5/SIMO(99) - re-purposed as output GPIO). +#define LED_FAULT_ALARM_SPI5_PORT_MASK (uint32)((uint32)1U << PIN_SOMI) ///< Fault Alarm Red LED GPIO port mask (SPI5/SOMI(98) - re-purposed as output GPIO). +#define AUDIO_ALARM_HET_PORT_MASK (uint32)((uint32)1U << PIN_HET_8) ///< Alarm Audio GPIO port mask (HET[8](106) - re-purposed as output GPIO). + +#define CLR_CLEAN_LED() {mibspiREG5->PC3 &= ~LED_CLEAN_RGB_1_SPI5_PORT_MASK \ + & ~LED_CLEAN_RGB_2_SPI5_PORT_MASK;} ///< Clean LED off. +#define CLEAN_LED_ORANGE() {mibspiREG5->PC3 |= LED_CLEAN_RGB_1_SPI5_PORT_MASK; \ + mibspiREG5->PC3 &= ~LED_CLEAN_RGB_2_SPI5_PORT_MASK;} ///< Clean LED Orange. +#define CLEAN_LED_YELLOW() {mibspiREG5->PC3 &= ~LED_CLEAN_RGB_1_SPI5_PORT_MASK; \ + mibspiREG5->PC3 |= LED_CLEAN_RGB_2_SPI5_PORT_MASK;} ///< Clean LED Yellow. +#define CLEAN_LED_BLUE() {mibspiREG5->PC3 |= LED_CLEAN_RGB_1_SPI5_PORT_MASK \ + | LED_CLEAN_RGB_2_SPI5_PORT_MASK;} ///< Clean LED Blue. +#define CLR_FAULT_LED() {mibspiREG5->PC3 &= ~LED_FAULT_ALARM_SPI5_PORT_MASK;} ///< Fault LED Off +#define SET_FAULT_LED() {mibspiREG5->PC3 |= LED_FAULT_ALARM_SPI5_PORT_MASK;} ///< Fault LED On (CPLD will do flashing) + +#define SET_AUDIO_ALARM() {hetREG1->DOUT |= AUDIO_ALARM_HET_PORT_MASK;} ///< Set CPLD Audio Alarm. +#define CLR_AUDIO_ALARM() {hetREG1->DOUT &= ~AUDIO_ALARM_HET_PORT_MASK;} ///< Clear CPLD Audio Alarm. #define GET_WD_EXP() ( PIN_SIGNAL_STATE_T )( gioGetBit( gioPORTB, WD_EXP_GIO_PORT_PIN ) ) ///< Get watchdog expired pin state macro. #define TGL_WD_PET() gioToggleBit( gioPORTB, WD_PET_GIO_PORT_PIN ) ///< Toggle watchdog GPIO macro. #define SET_WD_PET() gioSetBit( gioPORTB, WD_PET_GIO_PORT_PIN, PIN_SIGNAL_HIGH ) ///< Set watchdog GPIO macro. #define CLR_WD_PET() gioSetBit( gioPORTB, WD_PET_GIO_PORT_PIN, PIN_SIGNAL_LOW ) ///< Clear watchdog GPIO macro. - -#define SET_GREEN() {mibspiREG5->PC3 |= LAMP_GRN_SPI5_PORT_MASK;} ///< Set alarm lamp green signal. -#define CLR_GREEN() {mibspiREG5->PC3 &= ~LAMP_GRN_SPI5_PORT_MASK;} ///< Clear alarm lamp green signal. -#define SET_BLUE() {mibspiREG5->PC3 |= LAMP_BLU_SPI5_PORT_MASK;} ///< Set alarm lamp blue signal. -#define CLR_BLUE() {mibspiREG5->PC3 &= ~LAMP_BLU_SPI5_PORT_MASK;} ///< Clear alarm lamp blue signal. -#define SET_RED() {mibspiREG5->PC3 |= LAMP_RED_SPI5_PORT_MASK;} ///< Set alarm lamp red signal. -#define CLR_RED() {mibspiREG5->PC3 &= ~LAMP_RED_SPI5_PORT_MASK;} ///< Clear alarm lamp red signal. /*********************************************************************//** * @brief @@ -58,10 +68,10 @@ // initialize watchdog pet output low (inactive) CLR_WD_PET(); - // initialize alarm lamp color LED outputs low (off) - CLR_GREEN(); - CLR_RED(); - CLR_BLUE(); + // initialize alarm lamp color LED outputs low (off) + CLR_CLEAN_LED(); + CLR_FAULT_LED(); + CLR_AUDIO_ALARM(); } /*********************************************************************//** @@ -70,7 +80,7 @@ * @details Inputs: none * @details Outputs: watchdog pet signal toggled. * @return none - *************************************************************************/ + *************************************************************************/ void toggleCPLDWatchdog( void ) { TGL_WD_PET(); @@ -85,70 +95,79 @@ * @return level (LOW or HIGH) *************************************************************************/ PIN_SIGNAL_STATE_T getCPLDWatchdogExpired( void ) -{ +{ PIN_SIGNAL_STATE_T level = GET_WD_EXP(); return level; } -/*********************************************************************//** - * @brief - * The setCPLDLampGreen function sets the alarm lamp green signal to CPLD to given level. - * @details Inputs: none - * @details Outputs: alarm lamp green signal set to given level. - * @param level LOW or HIGH - * @return none - *************************************************************************/ -void setCPLDLampGreen( PIN_SIGNAL_STATE_T level ) -{ - if ( level == PIN_SIGNAL_HIGH ) - { - SET_GREEN(); - } - else - { - CLR_GREEN(); - } -} +/*********************************************************************//** + * @brief + * The setCPLDCleanLEDColor function sets the Clean LED color to CPLD defined value. + * @details Inputs: none + * @details Outputs: Clean LED signal set to given level. + * @param color enum CPLD_CLEAN_LED_COLORS#if 0 + * _T + * @return none + *************************************************************************/ +void setCPLDCleanLEDColor( CPLD_CLEAN_LED_COLORS_T color ) +{ + switch (color) + { + case CPLD_CLEAN_LED_ORANGE: + CLEAN_LED_ORANGE(); + break; + case CPLD_CLEAN_LED_YELLOW: + CLEAN_LED_YELLOW(); + break; + case CPLD_CLEAN_LED_BLUE: + CLEAN_LED_BLUE(); + break; + case CPLD_CLEAN_LED_OFF: + default: + CLR_CLEAN_LED(); + break; + } +} -/*********************************************************************//** - * @brief - * The setCPLDLampBlue function sets the alarm lamp blue signal to CPLD to given level. - * @details Inputs: none - * @details Outputs: alarm lamp blue signal set to given level. - * @param level LOW or HIGH - * @return none - *************************************************************************/ -void setCPLDLampBlue( PIN_SIGNAL_STATE_T level ) -{ - if ( level == PIN_SIGNAL_HIGH ) - { - SET_BLUE(); - } - else - { - CLR_BLUE(); - } -} +/*********************************************************************//** + * @brief + * The setCPLDFaultLED function sets the alarm LED signal on CPLD to given level. + * @details Inputs: none + * @details Outputs: alarm LED signal set to given level. + * @param level LOW or HIGH + * @return none + *************************************************************************/ +void setCPLDFaultLED( PIN_SIGNAL_STATE_T level ) +{ + if ( level == PIN_SIGNAL_HIGH ) + { + SET_FAULT_LED(); + } + else + { + CLR_FAULT_LED(); + } +} -/*********************************************************************//** - * @brief - * The setCPLDLampRed function sets the alarm lamp red signal to CPLD to given level. - * @details Inputs: none - * @details Outputs: alarm lamp red signal set to given level. - * @param level LOW or HIGH - * @return none - *************************************************************************/ -void setCPLDLampRed( PIN_SIGNAL_STATE_T level ) -{ - if ( level == PIN_SIGNAL_HIGH ) - { - SET_RED(); - } - else - { - CLR_RED(); - } +/*********************************************************************//** + * @brief + * The setCPLDFaultAudio function sets the alarm audio signal on CPLD to given level. + * @details Inputs: none + * @details Outputs: alarm audio signal set to given level. + * @param level LOW or HIGH + * @return none + *************************************************************************/ +void setCPLDFaultAudio( PIN_SIGNAL_STATE_T level ) +{ + if ( level == PIN_SIGNAL_HIGH ) + { + SET_AUDIO_ALARM(); + } + else + { + CLR_AUDIO_ALARM(); + } } /**@}*/ Index: firmware/App/Drivers/CPLD.h =================================================================== diff -u -r025612ad77fe630889a364586de54bffe5262d56 -r53110a8d810e392e8f75cf0bf85a3ec07927e846 --- firmware/App/Drivers/CPLD.h (.../CPLD.h) (revision 025612ad77fe630889a364586de54bffe5262d56) +++ firmware/App/Drivers/CPLD.h (.../CPLD.h) (revision 53110a8d810e392e8f75cf0bf85a3ec07927e846) @@ -27,18 +27,32 @@ * @addtogroup CPLD * @{ */ + +// ********** public definitions ********** + +// **** Types **** + +/// List of pin signal states. +typedef enum Cpld_Clean_LED_Colors +{ + CPLD_CLEAN_LED_OFF = 0, ///< OFF + CPLD_CLEAN_LED_ORANGE, ///< Orange + CPLD_CLEAN_LED_YELLOW, ///< Yellow + CPLD_CLEAN_LED_BLUE, ///< Blue + NUM_OF_CPLD_CLEAN_LED_COLORS ///< Number of CPLD Clean LED colors +} CPLD_CLEAN_LED_COLORS_T; // ********** public function prototypes ********** void initCPLD( void ); void toggleCPLDWatchdog( void ); -PIN_SIGNAL_STATE_T getCPLDWatchdogExpired( void ); - -void setCPLDLampGreen( PIN_SIGNAL_STATE_T level ); -void setCPLDLampBlue( PIN_SIGNAL_STATE_T level ); -void setCPLDLampRed( PIN_SIGNAL_STATE_T level ); +PIN_SIGNAL_STATE_T getCPLDWatchdogExpired( void ); +void setCPLDCleanLEDColor( CPLD_CLEAN_LED_COLORS_T color ); +void setCPLDFaultLED( PIN_SIGNAL_STATE_T level ); +void setCPLDFaultAudio( PIN_SIGNAL_STATE_T level ); + /**@}*/ #endif Index: firmware/DG.dil =================================================================== diff -u -rb7c30522ec6cde3ca515f36a053a1fff4e14159c -r53110a8d810e392e8f75cf0bf85a3ec07927e846 --- firmware/DG.dil (.../DG.dil) (revision b7c30522ec6cde3ca515f36a053a1fff4e14159c) +++ firmware/DG.dil (.../DG.dil) (revision 53110a8d810e392e8f75cf0bf85a3ec07927e846) @@ -1,4 +1,4 @@ -# RM46L852PGE 07/31/21 13:58:42 +# RM46L852PGE 07/27/22 16:12:46 # ARCH=RM46L852PGE # @@ -6243,7 +6243,7 @@ DRIVER.HET.VAR.HET1_PWM1_PERIOD_LVL.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT27_PULL.VALUE=1 DRIVER.HET.VAR.HET1_BIT19_PULL.VALUE=2 -DRIVER.HET.VAR.HET1_BIT8_DIR.VALUE=0x00000000 +DRIVER.HET.VAR.HET1_BIT8_DIR.VALUE=0x00000100 DRIVER.HET.VAR.HET2_BIT14_XORSHARE.VALUE=0x00000000 DRIVER.HET.VAR.HET2_CAP6_PIN_SELECT.VALUE=4 DRIVER.HET.VAR.HET1_PWM2_PIN_SELECT.VALUE=12 Index: firmware/include/het.h =================================================================== diff -u -rba0335ef18c7859109251f130178acc785c1d39e -r53110a8d810e392e8f75cf0bf85a3ec07927e846 --- firmware/include/het.h (.../het.h) (revision ba0335ef18c7859109251f130178acc785c1d39e) +++ firmware/include/het.h (.../het.h) (revision 53110a8d810e392e8f75cf0bf85a3ec07927e846) @@ -355,11 +355,11 @@ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ + | (uint32)0x00000100U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ - | (uint32)0x00000000U \ | (uint32)0x00000008U \ | (uint32)0x00000000U \ | (uint32)0x00000002U \ Index: firmware/source/het.c =================================================================== diff -u -rf3aae110ab3efde68897d0224f799dc039ac84f5 -r53110a8d810e392e8f75cf0bf85a3ec07927e846 --- firmware/source/het.c (.../het.c) (revision f3aae110ab3efde68897d0224f799dc039ac84f5) +++ firmware/source/het.c (.../het.c) (revision 53110a8d810e392e8f75cf0bf85a3ec07927e846) @@ -1134,11 +1134,11 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00000100U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x00000000U | (uint32) 0x00000008U | (uint32) 0x00000000U | (uint32) 0x00000002U Index: firmware/source/sys_link.cmd =================================================================== diff -u -rd86bd06f11b6840d16722938202bed6bf1a6b6bd -r53110a8d810e392e8f75cf0bf85a3ec07927e846 --- firmware/source/sys_link.cmd (.../sys_link.cmd) (revision d86bd06f11b6840d16722938202bed6bf1a6b6bd) +++ firmware/source/sys_link.cmd (.../sys_link.cmd) (revision 53110a8d810e392e8f75cf0bf85a3ec07927e846) @@ -88,15 +88,15 @@ SECTIONS { .intvecs : {} > VECTORS - .text : {} > FLASH0 - .const : {} > FLASH0 - .cinit : {} > FLASH0 - .pinit : {} > FLASH0 + .text : {} > FLASH0 + .const : {} > FLASH0 + .cinit : {} > FLASH0 + .pinit : {} > FLASH0 .bss : {} > RAM .data : {} > RAM .sysmem : {} > RAM + - /* USER CODE BEGIN (4) */ #endif /* Override Sections with CRCs here */