/****************************************************************************** * * @brief header file for SIM utilities. * ******************************************************************************* * * provide APIs for accessing SIM ******************************************************************************/ #ifndef SIM_H_ #define SIM_H_ /****************************************************************************** * Includes ******************************************************************************/ /****************************************************************************** * Constants ******************************************************************************/ /****************************************************************************** * define SIM device ID types * *//*! @addtogroup sim_id_types * @{ *******************************************************************************/ typedef enum { ID_TYPE_FAMID, /*!< device Family ID */ ID_TYPE_SUBFAMID, /*!< device Subfamily ID */ ID_TYPE_REVID, /*!< device Revision ID */ ID_TYPE_PINID /*!< device Pin ID (Pin count) */ } IDType; /*! @} End of sim_id_types */ /****************************************************************************** * Macros ******************************************************************************/ /****************************************************************************** * Types ******************************************************************************/ /* SIM configuration structure */ /****************************************************************************** * define SIM configuration structure * *//*! @addtogroup sim_config_type * @{ *******************************************************************************/ /*! * @brief SIM configuration structure. * */ #if defined(CPU_NV32) typedef struct{ struct{ uint32_t bEnableCLKOUT : 1; /*!< 1: enable , 0: disable */ uint32_t bTXDME : 1; /*!< 1: enable TXDME, 0: disable */ uint32_t bETMSYNC : 1; /*!< 1: enable ETM SYNC, 0: no sync */ uint32_t bRXDFE : 1; /*!< 1: enable RXD filter, 0: no filter */ uint32_t bRXDCE : 1; /*!< 1: enable RXD capture, 0: no capture */ uint32_t bACIC : 1; /*!< 1: ACMP0 to ETM1 channel0 connection, 0: no connection */ uint32_t bRTCC : 1; /*!< 1: RTC overflow connected to ETM1 channel1, 0: no connection */ uint32_t u8ADHWT : 2; /*!< ADC h/w trigger source selection */ uint32_t bDisableSWD : 1; /*!< 1: disable SWD, 0: enable */ uint32_t bDisableRESET : 1; /*!< 1: disable RESET pin, 0: enable */ uint32_t bDisableNMI : 1; /*!< 1: disable NMI pin, 0: enable */ uint32_t bBusDiv : 1; /*!< bus divider BUSDIV value */ } sBits; uint8_t u8Delay; /*!< delay value */ uint8_t u8BusRef; /*!< bus reference */ uint32_t u32PinSel; /*!< pin select reg value */ uint32_t u32SCGC; /*!< clock gating value register */ } SIM_ConfigType, *SIM_ConfigPtr; /*!< sim configuration structure type */ #elif defined(CPU_NV32M3) typedef struct{ struct{ uint32_t bEnableCLKOUT : 1; /*!< 1: enable , 0: disable */ uint32_t bTXDME : 1; /*!< 1: enable TXDME, 0: disable */ uint32_t bETMSYNC : 1; /*!< 1: enable ETM SYNC, 0: no sync */ uint32_t bRXDCE : 1; /*!< 1: enable RXD capture, 0: no capture */ uint32_t bRXDFE : 2; /*!< 1: enable RXD filter, 0: no filter */ uint32_t u8ADHWT : 3; /*!< ADC h/w trigger source selection */ uint32_t bETMIC : 2; /*!< ETM0CH0 input capture source selection */ uint32_t bACTRG : 1; /*!< ACMP Trigger ETM2 selection*/ uint32_t bDisableSWD : 1; /*!< 1: disable SWD, 0: enable */ uint32_t bDisableRESET : 1; /*!< 1: disable RESET pin, 0: enable */ uint32_t bDisableNMI : 1; /*!< 1: disable NMI pin, 0: enable */ } sBits; uint8_t u8Delay; /*!< delay value */ uint8_t u8BusRef; /*!< bus reference */ uint32_t u32PinSel; /*!< pin select reg value */ uint32_t u32SCGC; /*!< clock gating value register */ uint32_t u32CLKDIV; /*!< clock divider CLKDIV value */ } SIM_ConfigType, *SIM_ConfigPtr; /*!< sim configuration structure type */ #elif defined(CPU_NV32M4) typedef struct{ struct{ uint32_t bEnableCLKOUT : 1; /*!< 1: enable , 0: disable */ uint32_t bTXDME : 1; /*!< 1: enable TXDME, 0: disable */ uint32_t bETMSYNC : 1; /*!< 1: enable ETM SYNC, 0: no sync */ uint32_t bRXDCE : 1; /*!< 1: enable RXD capture, 0: no capture */ uint32_t bRXDFE : 2; /*!< 1: enable RXD filter, 0: no filter */ uint32_t u8ADHWT : 3; /*!< ADC h/w trigger source selection */ uint32_t bACTRG : 1; /*!< ACMP Trigger ETM2 selection*/ uint32_t bDisableSWD : 1; /*!< 1: disable SWD, 0: enable */ uint32_t bDisableRESET : 1; /*!< 1: disable RESET pin, 0: enable */ uint32_t bDisableNMI : 1; /*!< 1: disable NMI pin, 0: enable */ } sBits; uint8_t u8Delay; /*!< delay value */ uint8_t u8BusRef; /*!< bus reference */ uint32_t u32PinSel; /*!< pin select reg value */ uint32_t u32SCGC; /*!< clock gating value register */ uint32_t u32CLKDIV; /*!< clock divider CLKDIV value */ } SIM_ConfigType, *SIM_ConfigPtr; /*!< sim configuration structure type */ #endif /*! @} End of sim_config_type */ /****************************************************************************** * Global variables ******************************************************************************/ /****************************************************************************** * Global functions ******************************************************************************/ /****************************************************************************** * define SIM API list * *//*! @addtogroup sim_api_list * @{ *******************************************************************************/ #if defined(CPU_NV32) /*****************************************************************************//*! * * @brief delay ETM2 triggering ADC for u8Delay bus clock output divide. * * @param[in] u8Delay delay value of Bus clock output divide. * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DelayETM2Trig2ADC(uint8_t u8Delay) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_DELAY_MASK)) | SIM_SOPT_DELAY(u8Delay); } /*****************************************************************************//*! * * @brief enable clock output. * * @param none * * @return none * * @ Pass/ Fail criteria: none * @see SIM_DisableClockOutput *****************************************************************************/ __STATIC_INLINE void SIM_EnableClockOutput(void) { SIM->SOPT |= (SIM_SOPT_CLKOE_MASK); } /*****************************************************************************//*! * * @brief disable clock output. * * @param none * * @return none * * @ Pass/ Fail criteria: none * @see SIM_EnableClockOutput *****************************************************************************/ __STATIC_INLINE void SIM_DisableClockOutput(void) { SIM->SOPT &= ~(SIM_SOPT_CLKOE_MASK); } /*****************************************************************************//*! * * @brief set bus clock output divide. * * @param[in] u8Divide divide (3-bits) * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClockOutputDivide(uint8_t u8Divide) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_BUSREF_MASK)) | SIM_SOPT_BUSREF(u8Divide & 0x07); } /*****************************************************************************//*! * * @brief enable UART0 RXD connect with UART0 module and ETM0 channel 1.. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0RXDConnectETMOCH1(void) { SIM->SOPT |= (SIM_SOPT_RXDCE_MASK); } /*****************************************************************************//*! * * @brief enable UART0 TX modulation. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0Modulation(void) { SIM->SOPT |= (SIM_SOPT_TXDME_MASK); } /*****************************************************************************//*! * * @brief disable UART0 TX modulation. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DisableUART0Modulation(void) { SIM->SOPT &= ~(SIM_SOPT_TXDME_MASK); } /*****************************************************************************//*! * * @brief generate a softare sync trigger to ETM2 module (trigger). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_GenerateSoftwareTrig2ETM2(void) { SIM->SOPT |= (SIM_SOPT_ETMSYNC_MASK); } /*****************************************************************************//*! * * @brief remap ETM2CH3 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH3Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM2PS3_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH2 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH2Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM2PS2_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH1 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH1Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM0PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH0Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM0PS0_MASK; } /*****************************************************************************//*! * * @brief remap UART0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART0Pin(void) { SIM->PINSEL |= SIM_PINSEL_UART0PS_MASK; } /*****************************************************************************//*! * * @brief remap SPI0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapSPI0Pin(void) { SIM->PINSEL |= SIM_PINSEL_SPI0PS_MASK; } /*****************************************************************************//*! * * @brief remap I2C pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapI2CPin(void) { SIM->PINSEL |= SIM_PINSEL_IICPS_MASK; } /*****************************************************************************//*! * * @brief enable UART0 RX filter. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0Filter(void) { SIM->SOPT |= (SIM_SOPT_RXDFE_MASK); } /******************************************************************************! * @function name: SIM_DisableUART0Filter * * @brief disable UART0 RX filter. * * @param * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DisableUART0Filter(void) { SIM->SOPT &= ~(SIM_SOPT_RXDFE_MASK); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to RTC overflow. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByRTC(void) { SIM->SOPT &= ~(SIM_SOPT_ADHWT_MASK); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to PIT . * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByPIT(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(1); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ETM2 init trigger with 8-bit programmable delay. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByETM2Init(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(2); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ETM2 match trigger with 8-bit programmable delay. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByETM2Match(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(3); } /*****************************************************************************//*! * * @brief enable RTC capture to ETM1 input channel1. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableRTCCapture(void) { SIM->SOPT |= (SIM_SOPT_RTCC_MASK); } /*****************************************************************************//*! * * @brief disable RTC capture to ETM1 input channel1. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DisableRTCCapture(void) { SIM->SOPT &= ~(SIM_SOPT_RTCC_MASK); } /*****************************************************************************//*! * * @brief enable ACMP0 input capture to ETM1 input channel0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableACMP0InputCapture(void) { SIM->SOPT |= (SIM_SOPT_ACIC_MASK); } /*****************************************************************************//*! * * @brief disable ACMP0 input capture to ETM1 input channel0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DisableACMP0InputCapture(void) { SIM->SOPT &= ~(SIM_SOPT_ACIC_MASK); } /*****************************************************************************//*! * * @brief remap RTC pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapRTCPin(void) { SIM->PINSEL |= SIM_PINSEL_RTCPS_MASK; } /*****************************************************************************//*! * * @brief set bus divide BUSDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetBusDivide(uint8_t u8Divide) { SIM->BUSDIV = u8Divide; } /*****************************************************************************//*! * * @brief remap ETM2CH1 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH1Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM2PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH0Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM2PS0_MASK; } /*****************************************************************************//*! * * @brief remap ETM1CH1 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM1CH1Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM1PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM1CH0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM1CH0Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM1PS0_MASK; } #elif defined(CPU_NV32M3) /*****************************************************************************//*! * * @brief delay ETM2 triggering ADC for u8Delay bus clock output divide. * * @param[in] u8Delay delay value of Bus clock output divide. * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DelayETM2Trig2ADC(uint8_t u8Delay) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_DELAY_MASK)) | SIM_SOPT_DELAY(u8Delay); } /*****************************************************************************//*! * * @brief enable clock output. * * @param none * * @return none * * @ Pass/ Fail criteria: none * @see SIM_DisableClockOutput *****************************************************************************/ __STATIC_INLINE void SIM_EnableClockOutput(void) { SIM->SOPT |= (SIM_SOPT_CLKOE_MASK); } /*****************************************************************************//*! * * @brief disable clock output. * * @param none * * @return none * * @ Pass/ Fail criteria: none * @see SIM_EnableClockOutput *****************************************************************************/ __STATIC_INLINE void SIM_DisableClockOutput(void) { SIM->SOPT &= ~(SIM_SOPT_CLKOE_MASK); } /*****************************************************************************//*! * * @brief set bus clock output divide. * * @param[in] u8Divide divide (3-bits) * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClockOutputDivide(uint8_t u8Divide) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_BUSREF_MASK)) | SIM_SOPT_BUSREF(u8Divide & 0x07); } /*****************************************************************************//*! * * @brief enable UART0 RXD connect with UART0 module and ETM0 channel 1.. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0RXDConnectETMOCH1(void) { SIM->SOPT |= (SIM_SOPT_RXDCE_MASK); } /*****************************************************************************//*! * * @brief enable UART0 TX modulation. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0Modulation(void) { SIM->SOPT |= (SIM_SOPT_TXDME_MASK); } /*****************************************************************************//*! * * @brief disable UART0 TX modulation. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DisableUART0Modulation(void) { SIM->SOPT &= ~(SIM_SOPT_TXDME_MASK); } /*****************************************************************************//*! * * @brief generate a softare sync trigger to ETM2 module (trigger). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_GenerateSoftwareTrig2ETM2(void) { SIM->SOPT |= (SIM_SOPT_ETMSYNC_MASK); } /*****************************************************************************//*! * * @brief remap ETM2CH3 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH3Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM2PS3_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH2 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH2Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM2PS2_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH1 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH1Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM0PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH0Pin(void) { SIM->PINSEL |= SIM_PINSEL_ETM0PS0_MASK; } /*****************************************************************************//*! * * @brief remap UART0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART0Pin(void) { SIM->PINSEL |= SIM_PINSEL_UART0PS_MASK; } /*****************************************************************************//*! * * @brief remap SPI0 pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapSPI0Pin(void) { SIM->PINSEL |= SIM_PINSEL_SPI0PS_MASK; } /*****************************************************************************//*! * * @brief remap I2C pin from default to the other. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapI2CPin(void) { SIM->PINSEL |= SIM_PINSEL_IICPS_MASK; } /*****************************************************************************//*! * * @brief UART0 RXD input signal is connected to UART0 module directly. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0Filter(void) { SIM->SOPT &= ~(SIM_SOPT_RXDFE_MASK); } /*****************************************************************************//*! * * @brief UART0 RXD input signal is filtered by ACMP0, then injected to UART0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0FilterByACMP0(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_RXDFE_MASK)) | SIM_SOPT_RXDFE(1); } /*****************************************************************************//*! * * @brief UART0 RXD input signal is filtered by ACMP1, then injected to UART0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0FilterByACMP1(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_RXDFE_MASK)) | SIM_SOPT_RXDFE(2); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to RTC overflow. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByRTC(void) { SIM->SOPT &= ~(SIM_SOPT_ADHWT_MASK); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ETM0 init trigger . * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByPIT(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(1); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ETM2 init trigger with 8-bit programmable delay. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByETM2Init(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(2); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ETM2 match trigger with 8-bit programmable delay. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByETM2Match(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(3); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to PIT channel0 overflow. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByPITCH0Overflow(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(4); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to PIT channel1 overflow. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByPITChannel1Overflow(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(5); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ACMP0 out. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByACMP0Out(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(6); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ACMP1 out. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByACMP1Out(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(7); } /*****************************************************************************//*! * * @brief Select ETM0CH0 as ETM0CH0 Input Capture Source. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelETM0CH0AsETM0CH0ICS(void) { SIM->SOPT &= ~(SIM_SOPT_ETMIC_MASK); } /*****************************************************************************//*! * * @brief Select ACMP0 OUT as ETM0CH0 Input Capture Source. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelACMP0AsETM0CH0ICS(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ETMIC_MASK)) | SIM_SOPT_ETMIC(1); } /*****************************************************************************//*! * * @brief Select ACMP1 OUT as ETM0CH0 Input Capture Source. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelACMP1AsETM0CH0ICS(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ETMIC_MASK)) | SIM_SOPT_ETMIC(2); } /*****************************************************************************//*! * * @brief Select RTC overflow as ETM0CH0 Input Capture Source. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelRTCOverflowAsETM0CH0ICS(void) { SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ETMIC_MASK)) | SIM_SOPT_ETMIC(3); } /*****************************************************************************//*! * * @brief Select ACMP0 output as the trigger0 input of ETM2. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelACMP0AsETM2Trigger0(void) { SIM->SOPT &= ~(SIM_SOPT_ACTRG_MASK); } /*****************************************************************************//*! * * @brief Select ACMP1 output as the trigger0 input of ETM2. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelACMP1AsETM2Trigger0(void) { SIM->SOPT |= (SIM_SOPT_ACTRG_MASK); } /*****************************************************************************//*! * * @brief set clock3 divide CLKDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClock3Divide(void) { SIM->CLKDIV |= SIM_CLKDIV_OUTDIV3_MASK; } /*****************************************************************************//*! * * @brief set clock2 divide CLKDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClock2Divide(void) { SIM->CLKDIV |= SIM_CLKDIV_OUTDIV2_MASK; } /*****************************************************************************//*! * * @brief set clock1 divide CLKDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClock1Divide(uint8_t u8divide) { SIM->CLKDIV |= SIM_CLKDIV_OUTDIV1(u8divide); } /*****************************************************************************//*! * * @brief select TCLK2 for PWT module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK2ForPWT(void) { SIM->PINSEL |= SIM_PINSEL_PWTCLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK1 for PWT module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK1ForPWT(void) { SIM->PINSEL &= ~SIM_PINSEL_PWTCLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK2 for ETM2 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK2ForETM2(void) { SIM->PINSEL |= SIM_PINSEL_ETM2CLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK1 for ETM2 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK1ForETM2(void) { SIM->PINSEL &= ~SIM_PINSEL_ETM2CLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK2 for ETM0 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK2ForETM0(void) { SIM->PINSEL |= SIM_PINSEL_ETM0CLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK1 for ETM0 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK1ForETM0(void) { SIM->PINSEL &= ~SIM_PINSEL_ETM0CLKPS_MASK; } #elif defined(CPU_NV32M4) /*****************************************************************************//*! * * @brief delay ETM2 triggering ADC for u8Delay bus clock output divide. * * @param[in] u8Delay delay value of Bus clock output divide. * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DelayETM2Trig2ADC(uint8_t u8Delay) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_DELAY_MASK)) | SIM_SOPT0_DELAY(u8Delay); } /*****************************************************************************//*! * * @brief enable clock output. * * @param none * * @return none * * @ Pass/ Fail criteria: none * @see SIM_DisableClockOutput *****************************************************************************/ __STATIC_INLINE void SIM_EnableClockOutput(void) { SIM->SOPT0 |= (SIM_SOPT0_CLKOE_MASK); } /*****************************************************************************//*! * * @brief disable clock output. * * @param none * * @return none * * @ Pass/ Fail criteria: none * @see SIM_EnableClockOutput *****************************************************************************/ __STATIC_INLINE void SIM_DisableClockOutput(void) { SIM->SOPT0 &= ~(SIM_SOPT0_CLKOE_MASK); } /*****************************************************************************//*! * * @brief set bus clock output divide. * * @param[in] u8Divide divide (3-bits) * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClockOutputDivide(uint8_t u8Divide) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_BUSREF_MASK)) | SIM_SOPT0_BUSREF(u8Divide & 0x07); } /*****************************************************************************//*! * * @brief enable UART0 RXD connect with UART0 module and ETM0 channel 1.. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0RXDConnectETMOCH1(void) { SIM->SOPT0 |= (SIM_SOPT0_RXDCE_MASK); } /*****************************************************************************//*! * * @brief enable UART0 TX modulation. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0Modulation(void) { SIM->SOPT0 |= (SIM_SOPT0_TXDME_MASK); } /*****************************************************************************//*! * * @brief disable UART0 TX modulation. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DisableUART0Modulation(void) { SIM->SOPT0 &= ~(SIM_SOPT0_TXDME_MASK); } /*****************************************************************************//*! * * @brief generate a softare sync trigger to ETM2 module (trigger). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_GenerateSoftwareTrig2ETM2(void) { SIM->SOPT0 |= (SIM_SOPT0_ETMSYNC_MASK); } /*****************************************************************************//*! * * @brief select PWTIN3 input signal from UART0RX. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetPWTIN3InputFromUART0Rx(void) { SIM->SOPT1 = (SIM->SOPT1 & (~SIM_SOPT1_UARTPWTS_MASK)) | SIM_SOPT1_UARTPWTS(0); } /*****************************************************************************//*! * * @brief select PWTIN3 input signal from UART1RX. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetPWTIN3InputFromUART1Rx(void) { SIM->SOPT1 = (SIM->SOPT1 & (~SIM_SOPT1_UARTPWTS_MASK)) | SIM_SOPT1_UARTPWTS(1); } /*****************************************************************************//*! * * @brief select PWTIN3 input signal from UART2RX. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetPWTIN3InputFromUART2Rx(void) { SIM->SOPT1 = (SIM->SOPT1 & (~SIM_SOPT1_UARTPWTS_MASK)) | SIM_SOPT1_UARTPWTS(2); } /*****************************************************************************//*! * * @brief select PWTIN2 input signal from ACMP0_OUT. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetPWTIN2InputFromACMP0(void) { SIM->SOPT1 &= (~SIM_SOPT1_ACPWTS_MASK); } /*****************************************************************************//*! * * @brief select PWTIN2 input signal from ACMP1_OUT. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetPWTIN2InputFromACMP1(void) { SIM->SOPT1 |= SIM_SOPT1_ACPWTS_MASK; } /*****************************************************************************//*! * * @brief enable invertion of the I2C output. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableI2C0OuputInvertion(void) { SIM->SOPT1 |= SIM_SOPT1_I2C0OINV_MASK; } /*****************************************************************************//*! * * @brief disable invertion of the I2C output. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_DisableI2C0OuputInvertion(void) { SIM->SOPT1 &= ~SIM_SOPT1_I2C0OINV_MASK; } /*****************************************************************************//*! * * @brief enable 4-wire I2C. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_Enable4WireI2C0(void) { SIM->SOPT1 |= SIM_SOPT1_I2C04WEN_MASK; } /*****************************************************************************//*! * * @brief disable 4-wire I2C.. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_Disable4WireI2C0(void) { SIM->SOPT1 &= ~SIM_SOPT1_I2C04WEN_MASK; } /*****************************************************************************//*! * * @brief UART0 RXD input signal is connected to UART0 module directly. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0Filter(void) { SIM->SOPT0 &= ~(SIM_SOPT0_RXDFE_MASK); } /*****************************************************************************//*! * * @brief UART0 RXD input signal is filtered by ACMP0, then injected to UART0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0FilterByACMP0(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_RXDFE_MASK)) | SIM_SOPT0_RXDFE(1); } /*****************************************************************************//*! * * @brief UART0 RXD input signal is filtered by ACMP1, then injected to UART0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableUART0FilterByACMP1(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_RXDFE_MASK)) | SIM_SOPT0_RXDFE(2); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to RTC overflow. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByRTC(void) { SIM->SOPT0 &= ~(SIM_SOPT0_ADHWT_MASK); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to PIT . * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByPIT(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_ADHWT_MASK)) | SIM_SOPT0_ADHWT(1); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ETM2 init trigger with 8-bit programmable delay. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByETM2Init(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_ADHWT_MASK)) | SIM_SOPT0_ADHWT(2); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ETM2 match trigger with 8-bit programmable delay. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByETM2Match(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_ADHWT_MASK)) | SIM_SOPT0_ADHWT(3); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to PIT channel0 overflow. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByPITCH0Overflow(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_ADHWT_MASK)) | SIM_SOPT0_ADHWT(4); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to PIT channel1 overflow. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByPITChannel1Overflow(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_ADHWT_MASK)) | SIM_SOPT0_ADHWT(5); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ACMP0 out. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByACMP0Out(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_ADHWT_MASK)) | SIM_SOPT0_ADHWT(6); } /*****************************************************************************//*! * * @brief set ADC hardware trigger source to ACMP1 out. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_TriggerADCByACMP1Out(void) { SIM->SOPT0 = (SIM->SOPT0 & ~(SIM_SOPT0_ADHWT_MASK)) | SIM_SOPT0_ADHWT(7); } /*****************************************************************************//*! * * @brief Select ACMP0 output as the trigger0 input of ETM2. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelACMP0AsETM2Trigger0(void) { SIM->SOPT0 &= ~(SIM_SOPT0_ACTRG_MASK); } /*****************************************************************************//*! * * @brief Select ACMP1 output as the trigger0 input of ETM2. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelACMP1AsETM2Trigger0(void) { SIM->SOPT0 |= (SIM_SOPT0_ACTRG_MASK); } /*****************************************************************************//*! * * @brief enable RTC capture to ETM1 input channel1. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableRTCCapture(void) { SIM->SOPT0 |= (SIM_SOPT0_RTCC_MASK); } /*****************************************************************************//*! * * @brief enable ACMP0 input capture to ETM1 input channel0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_EnableACMP0InputCapture(void) { SIM->SOPT0 |= (SIM_SOPT0_ACIC_MASK); } /*****************************************************************************//*! * * @brief select TCLK0 for PWT module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK0ForPWT(void) { SIM->PINSEL &= ~SIM_PINSEL_PWTCLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK1 for PWT module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK1ForPWT(void) { SIM->PINSEL = (SIM->PINSEL&(~SIM_PINSEL_PWTCLKPS_MASK)) | SIM_PINSEL_PWTCLKPS(1) ; } /*****************************************************************************//*! * * @brief select TCLK2 for PWT module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK2ForPWT(void) { SIM->PINSEL = (SIM->PINSEL&(~SIM_PINSEL_PWTCLKPS_MASK)) | SIM_PINSEL_PWTCLKPS(2) ; } /*****************************************************************************//*! * * @brief select TCLK0 for ETM2 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK0ForETM2(void) { SIM->PINSEL &= ~SIM_PINSEL_ETM2CLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK1 for ETM2 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK1ForETM2(void) { SIM->PINSEL = (SIM->PINSEL & (~SIM_PINSEL_ETM2CLKPS_MASK)) | (((uint32_t)0x1)<PINSEL =(SIM->PINSEL & (~SIM_PINSEL_ETM2CLKPS_MASK)) | (((uint32_t)0x2)<PINSEL &= ~SIM_PINSEL_ETM1CLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK1 for ETM1 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK1ForETM1(void) { SIM->PINSEL = (SIM->PINSEL & (~SIM_PINSEL_ETM1CLKPS_MASK)) | (((uint32_t)0x1)<PINSEL = (SIM->PINSEL & (~SIM_PINSEL_ETM1CLKPS_MASK)) | (((uint32_t)0x2)<PINSEL &= ~SIM_PINSEL_ETM0CLKPS_MASK; } /*****************************************************************************//*! * * @brief select TCLK1 for ETM0 module. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SelectTCLK1ForETM0(void) { SIM->PINSEL = (SIM->PINSEL &(~SIM_PINSEL_ETM0CLKPS_MASK)) | (((uint32_t)0x1)<PINSEL = (SIM->PINSEL &(~SIM_PINSEL_ETM0CLKPS_MASK)) | (((uint32_t)0x2)<PINSEL &= ~SIM_PINSEL_ETM1PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM1CH1 to pin PTE7. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM1CH1ToPTE7(void) { SIM->PINSEL |= SIM_PINSEL_ETM1PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM1CH0 to pin PTC4 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM1CH0ToPTC4(void) { SIM->PINSEL &= ~SIM_PINSEL_ETM1PS0_MASK; } /*****************************************************************************//*! * * @brief remap ETM1CH0 to pin PTH2. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM1CH0ToPTH2(void) { SIM->PINSEL |= SIM_PINSEL_ETM1PS0_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH1 to pin PTA1 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH1ToPTA1(void) { SIM->PINSEL |= SIM_PINSEL_ETM0PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH1 to pin PTB3. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH1ToPTB3(void) { SIM->PINSEL &= ~SIM_PINSEL_ETM0PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH0 to pin PTA0 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH0ToPTA1(void) { SIM->PINSEL |= SIM_PINSEL_ETM0PS0_MASK; } /*****************************************************************************//*! * * @brief remap ETM0CH0 to pin PTB2. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM0CH0ToPTB3(void) { SIM->PINSEL &= ~SIM_PINSEL_ETM0PS0_MASK; } /*****************************************************************************//*! * * @brief remap UART0 to pin PTB0/1 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART0ToPTB_0_1(void) { SIM->PINSEL &= ~SIM_PINSEL_UART0PS_MASK; } /*****************************************************************************//*! * * @brief remap UART0 to pin PTA2/3. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART0ToPTA_2_3(void) { SIM->PINSEL |= SIM_PINSEL_UART0PS_MASK; } /*****************************************************************************//*! * * @brief remap SPI0 to pin PTB2/3/4/5 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapSPI0ToPTB_2_3_4_5(void) { SIM->PINSEL &= ~SIM_PINSEL_SPI0PS_MASK; } /*****************************************************************************//*! * * @brief remap SPI0 to pin PTE01/2/3. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapSPI0ToPTE_0_12_3(void) { SIM->PINSEL |= SIM_PINSEL_SPI0PS_MASK; } /*****************************************************************************//*! * * @brief remap I2C to pin PTA2/3 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapI2CToPTA_2_3(void) { SIM->PINSEL &= ~SIM_PINSEL_I2C0PS_MASK; } /*****************************************************************************//*! * * @brief remap I2C to pin PTB6/7 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapI2CToPTB_6_7(void) { SIM->PINSEL |= SIM_PINSEL_I2C0PS_MASK; } /*****************************************************************************//*! * * @brief remap RTC to pin PTC4 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapRTCToPTC4(void) { SIM->PINSEL &= ~SIM_PINSEL_RTCPS_MASK; } /*****************************************************************************//*! * * @brief remap RTC to pin PTC5. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapRTCToPTC5(void) { SIM->PINSEL |= SIM_PINSEL_RTCPS_MASK; } /*****************************************************************************//*! * * @brief remap MSCAN to pin PTC6/7 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapMSCANToPTC_6_7(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_MSCANPS_MASK; } /*****************************************************************************//*! * * @brief remap MSCAN to pin PTH2/7. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapMSCANToPTH_2_7(void) { SIM->PINSEL1 |= SIM_PINSEL1_MSCANPS_MASK; } /*****************************************************************************//*! * * @brief remap PWTIN1 to pin PTB0 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapPWTIN1ToPTB0(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_MSCANPS_MASK; } /*****************************************************************************//*! * * @brief remap PWTIN1 to pin PTH7. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapPWTIN1ToPTH7(void) { SIM->PINSEL1 |= SIM_PINSEL1_MSCANPS_MASK; } /*****************************************************************************//*! * * @brief remap PWTIN0 to pin PTD5 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapPWTIN0ToPTD5(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_MSCANPS_MASK; } /*****************************************************************************//*! * * @brief remap PWTIN0 to pin PTE2. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapPWTIN0ToPTE2(void) { SIM->PINSEL1 |= SIM_PINSEL1_MSCANPS_MASK; } /*****************************************************************************//*! * * @brief remap UART2 to pin PTD6/7 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART2ToPTD_6_7(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_UART2PS_MASK; } /*****************************************************************************//*! * * @brief remap UART2 to pin PTI0/1. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART2ToPTI_0_1(void) { SIM->PINSEL1 |= SIM_PINSEL1_UART2PS_MASK; } /*****************************************************************************//*! * * @brief remap UART1 to pin PTC6/7 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART1ToPTC_6_7(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_UART1PS_MASK; } /*****************************************************************************//*! * * @brief remap UART1 to pin PTF2/3. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapUART1ToPTF_2_3(void) { SIM->PINSEL1 |= SIM_PINSEL1_UART1PS_MASK; } /*****************************************************************************//*! * * @brief remap SPI1 to pin PTD0/1/2/3 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapSPI1ToPTD_0_1_2_3(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_SPI1PS_MASK; } /*****************************************************************************//*! * * @brief remap SPI1 to pin PTG4/5/6/7. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapSPI1ToPTG_4_5_6_7(void) { SIM->PINSEL1 |= SIM_PINSEL1_SPI1PS_MASK; } /*****************************************************************************//*! * * @brief remap I2C1 to pin PTE0/1 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapI2C1ToPTE_0_1(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_I2C1PS_MASK; } /*****************************************************************************//*! * * @brief remap I2C1 to pin PTH3/4. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapI2C1ToPTH_3_4(void) { SIM->PINSEL1 |= SIM_PINSEL1_I2C1PS_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH5 to pin PTB5 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH5ToPTB5(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_ETM2PS5_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH5 to pin PTG7. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH5ToPTG7(void) { SIM->PINSEL1 |= SIM_PINSEL1_ETM2PS5_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH4 to pin PTB4 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH4ToPTB4(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_ETM2PS4_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH4 to pin PTG6. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH4ToPTG6(void) { SIM->PINSEL1 |= SIM_PINSEL1_ETM2PS4_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH3 to pin PTC3 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH3ToPTC3(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_ETM2PS3_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH3 to pin PTD1. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH3ToPTD1(void) { SIM->PINSEL1 = (SIM->PINSEL1 & (~SIM_PINSEL1_ETM2PS3_MASK)) | SIM_PINSEL1_ETM2PS3(1); } /*****************************************************************************//*! * * @brief remap ETM2CH3 to pin PTG5. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH3ToPTG5(void) { SIM->PINSEL1 = (SIM->PINSEL1 & (~SIM_PINSEL1_ETM2PS3_MASK)) | SIM_PINSEL1_ETM2PS3(2); } /*****************************************************************************//*! * * @brief remap ETM2CH2 to pin PTC2 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH2ToPTC2(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_ETM2PS2_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH2 to pin PTD0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH2ToPTD0(void) { SIM->PINSEL1 = (SIM->PINSEL1 & (~SIM_PINSEL1_ETM2PS2_MASK)) | SIM_PINSEL1_ETM2PS2(1); } /*****************************************************************************//*! * * @brief remap ETM2CH2 to pin PTG4. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH2ToPTG4(void) { SIM->PINSEL1 = (SIM->PINSEL1 & (~SIM_PINSEL1_ETM2PS2_MASK)) | SIM_PINSEL1_ETM2PS2(2); } /*****************************************************************************//*! * * @brief remap ETM2CH1 to pin PTC1 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH1ToPTC1(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_ETM2PS1_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH1 to pin PTH1. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH1ToPTH1(void) { SIM->PINSEL1 = (SIM->PINSEL1 & (~SIM_PINSEL1_ETM2PS1_MASK)) | SIM_PINSEL1_ETM2PS1(1); } /*****************************************************************************//*! * * @brief remap ETM2CH1 to pin PTF1. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH1ToPTF1(void) { SIM->PINSEL1 = (SIM->PINSEL1 & (~SIM_PINSEL1_ETM2PS1_MASK)) | SIM_PINSEL1_ETM2PS1(2); } /*****************************************************************************//*! * * @brief remap ETM2CH0 to pin PTC0 (default). * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH0ToPTC0(void) { SIM->PINSEL1 &= ~SIM_PINSEL1_ETM2PS0_MASK; } /*****************************************************************************//*! * * @brief remap ETM2CH0 to pin PTH0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH0ToPTH0(void) { SIM->PINSEL1 = (SIM->PINSEL1 & (~SIM_PINSEL1_ETM2PS0_MASK)) | SIM_PINSEL1_ETM2PS0(1); } /*****************************************************************************//*! * * @brief remap ETM2CH0 to pin PTF0. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_RemapETM2CH0ToPTF0(void) { SIM->PINSEL1 = (SIM->PINSEL1 &(~SIM_PINSEL1_ETM2PS0_MASK)) | SIM_PINSEL1_ETM2PS0(2); } /*****************************************************************************//*! * * @brief set clock3 divide CLKDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClock3Divide(void) { SIM->CLKDIV |= SIM_CLKDIV_OUTDIV3_MASK; } /*****************************************************************************//*! * * @brief set clock2 divide CLKDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClock2Divide(void) { SIM->CLKDIV |= SIM_CLKDIV_OUTDIV2_MASK; } /*****************************************************************************//*! * * @brief set clock1 divide CLKDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetClock1Divide(uint8_t u8divide) { SIM->CLKDIV |= SIM_CLKDIV_OUTDIV1(u8divide); } /*****************************************************************************//*! * * @brief set bus divide BUSDIV. * * @param none * * @return none * * @ Pass/ Fail criteria: none *****************************************************************************/ __STATIC_INLINE void SIM_SetBusDivide(uint8_t u8Divide) { SIM->CLKDIV = u8Divide; } #endif /*! @} End of sim_api_list */ void SIM_Init(SIM_ConfigType *pConfig); void SIM_SetClockGating(uint32_t u32PeripheralMask, uint8_t u8GateOn); uint32_t SIM_GetStatus(uint32_t u32StatusMask); uint8_t SIM_ReadID(IDType sID); #endif /* SIM_H_ */