/**
******************************************************************************
* @file xl_sim.h
* @author software group
* @brief This file contains all the functions prototypes for the SIM
* firmware library.
******************************************************************************
* @attention
*
* 2019 by Chipways Communications,Inc. All Rights Reserved.
* This software is supplied under the terms of a license
* agreement or non-disclosure agreement with Chipways.
* Passing on and copying of this document,and communication
* of its contents is not permitted without prior written
* authorization.
*
*
© COPYRIGHT 2019 Chipways
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __XL_SIM_H_
#define __XL_SIM_H_
#ifdef __cplusplus
extern "C"{
#endif
/* Includes ---------------------------------------------------------------*/
#include "xl6600.h"
/* Register define ------------------------------------------------------------*/
/* SRSID Bit Fields */
#define SIM_SRSID_ECCERR_MASK 0x00000001u
#define SIM_SRSID_ECCERR_SHIFT 0
#define SIM_SRSID_LVD_MASK 0x00000002u
#define SIM_SRSID_LVD_SHIFT 1
#define SIM_SRSID_WDOG_MASK 0x00000020u
#define SIM_SRSID_WDOG_SHIFT 5
#define SIM_SRSID_PIN_MASK 0x00000040u
#define SIM_SRSID_PIN_SHIFT 6
#define SIM_SRSID_POR_MASK 0x00000080u
#define SIM_SRSID_POR_SHIFT 7
#define SIM_SRSID_SW_MASK 0x00000400u
#define SIM_SRSID_SW_SHIFT 10
#define SIM_SRSID_PINID_MASK 0x000F0000u
#define SIM_SRSID_PINID_SHIFT 16
/* SOPT0 Bit Fields */
#define SIM_SOPT0_NMIE_MASK 0x00000002u
#define SIM_SOPT0_NMIE_SHIFT 1
#define SIM_SOPT0_RSTPE_MASK 0x00000004u
#define SIM_SOPT0_RSTPE_SHIFT 2
#define SIM_SOPT0_SWDE_MASK 0x00000008u
#define SIM_SOPT0_SWDE_SHIFT 3
#define SIM_SOPT0_ACTRG_MASK 0x00000020u
#define SIM_SOPT0_ACTRG_SHIFT 5
#define SIM_SOPT0_RXDFE_MASK 0x00000300u
#define SIM_SOPT0_RXDFE_SHIFT 8
#define SIM_SOPT0_RTCC_MASK 0x00000400u
#define SIM_SOPT0_RTCC_SHIFT 10
#define SIM_SOPT0_ACIC_MASK 0x00000800u
#define SIM_SOPT0_ACIC_SHIFT 11
#define SIM_SOPT0_RXDCE_MASK 0x00001000u
#define SIM_SOPT0_RXDCE_SHIFT 12
#define SIM_SOPT0_FTMSYNC_MASK 0x00004000u
#define SIM_SOPT0_FTMSYNC_SHIFT 14
#define SIM_SOPT0_TXDME_MASK 0x00008000u
#define SIM_SOPT0_TXDME_SHIFT 15
#define SIM_SOPT0_BUSREF_MASK 0x00070000u
#define SIM_SOPT0_BUSREF_SHIFT 16
#define SIM_SOPT0_CLKOE_MASK 0x00080000u
#define SIM_SOPT0_CLKOE_SHIFT 19
#define SIM_SOPT0_DLYACT_MASK 0x00800000u
#define SIM_SOPT0_DLYACT_SHIFT 23
#define SIM_SOPT0_DELAY_MASK 0xFF000000u
#define SIM_SOPT0_DELAY_SHIFT 24
/* SOPT1 Bit Fields */
#define SIM_SOPT1_ACPWTS_MASK 0x8u
#define SIM_SOPT1_ACPWTS_SHIFT 3
#define SIM_SOPT1_UARTPWTS_MASK 0x60u
#define SIM_SOPT1_UARTPWTS_SHIFT 5
#define SIM_SOPT1_ADHWT_MASK 0xF00u
#define SIM_SOPT1_ADHWT_SHIFT 8
/* PINSEL0 Bit Fields */
#define SIM_PINSEL0_UART0PS_MASK 0x0000000Cu
#define SIM_PINSEL0_UART0PS_SHIFT 2
#define SIM_PINSEL0_FTM0PS0_MASK 0x00000030u
#define SIM_PINSEL0_FTM0PS0_SHIFT 4
#define SIM_PINSEL0_FTM0PS1_MASK 0x000000C0u
#define SIM_PINSEL0_FTM0PS1_SHIFT 6
#define SIM_PINSEL0_FTM1PS0_MASK 0x00000300u
#define SIM_PINSEL0_FTM1PS0_SHIFT 8
#define SIM_PINSEL0_FTM1PS1_MASK 0x00000C00u
#define SIM_PINSEL0_FTM1PS1_SHIFT 10
#define SIM_PINSEL0_FTMFLT2PS_MASK 0x00003000u
#define SIM_PINSEL0_FTMFLT2PS_SHIFT 12
#define SIM_PINSEL0_FTMFLT1PS_MASK 0x0000C000u
#define SIM_PINSEL0_FTMFLT1PS_SHIFT 14
#define SIM_PINSEL0_BUSOUTPS_MASK 0x00030000u
#define SIM_PINSEL0_BUSOUTPS_SHIFT 16
#define SIM_PINSEL0_TCLK2PS_MASK 0x000C0000u
#define SIM_PINSEL0_TCLK2PS_SHIFT 18
#define SIM_PINSEL0_TCLK1PS_MASK 0x00300000u
#define SIM_PINSEL0_TCLK1PS_SHIFT 20
#define SIM_PINSEL0_TCLK0PS_MASK 0x00C00000u
#define SIM_PINSEL0_TCLK0PS_SHIFT 22
#define SIM_PINSEL0_FTM0CLKPS_MASK 0x03000000u
#define SIM_PINSEL0_FTM0CLKPS_SHIFT 24
#define SIM_PINSEL0_FTM1CLKPS_MASK 0x0C000000u
#define SIM_PINSEL0_FTM1CLKPS_SHIFT 26
#define SIM_PINSEL0_FTM2CLKPS_MASK 0x30000000u
#define SIM_PINSEL0_FTM2CLKPS_SHIFT 28
#define SIM_PINSEL0_PWTCLKPS_MASK 0xC0000000u
#define SIM_PINSEL0_PWTCLKPS_SHIFT 30
/* PINSEL1 Bit Fields */
#define SIM_PINSEL1_FTM2PS0_MASK 0x00000003u
#define SIM_PINSEL1_FTM2PS0_SHIFT 0
#define SIM_PINSEL1_FTM2PS1_MASK 0x0000000Cu
#define SIM_PINSEL1_FTM2PS1_SHIFT 2
#define SIM_PINSEL1_FTM2PS2_MASK 0x00000030u
#define SIM_PINSEL1_FTM2PS2_SHIFT 4
#define SIM_PINSEL1_FTM2PS3_MASK 0x000000C0u
#define SIM_PINSEL1_FTM2PS3_SHIFT 6
#define SIM_PINSEL1_FTM2PS4_MASK 0x00000100u
#define SIM_PINSEL1_FTM2PS4_SHIFT 8
#define SIM_PINSEL1_FTM2PS5_MASK 0x00000200u
#define SIM_PINSEL1_FTM2PS5_SHIFT 9
#define SIM_PINSEL1_I2C1PS_MASK 0x00000400u
#define SIM_PINSEL1_I2C1PS_SHIFT 10
#define SIM_PINSEL1_SPI1PS_MASK 0x00000800u
#define SIM_PINSEL1_SPI1PS_SHIFT 11
#define SIM_PINSEL1_UART1PS_MASK 0x00001000u
#define SIM_PINSEL1_UART1PS_SHIFT 12
#define SIM_PINSEL1_UART2PS_MASK 0x00002000u
#define SIM_PINSEL1_UART2PS_SHIFT 13
#define SIM_PINSEL1_PWTIN0PS_MASK 0x00004000u
#define SIM_PINSEL1_PWTIN0PS_SHIFT 14
#define SIM_PINSEL1_PWTIN1PS_MASK 0x00008000u
#define SIM_PINSEL1_PWTIN1PS_SHIFT 15
#define SIM_PINSEL1_SPI0PS_MASK 0x00010000u
#define SIM_PINSEL1_SPI0PS_SHIFT 16
#define SIM_PINSEL1_EWMPS_MASK 0x00060000u
#define SIM_PINSEL1_EWMPS_SHIFT 17
#define SIM_PINSEL1_IRQPS_MASK 0x00380000u
#define SIM_PINSEL1_IRQPS_SHIFT 19
#define SIM_PINSEL1_ACMP1PS_MASK 0x00400000u
#define SIM_PINSEL1_ACMP1PS_SHIFT 22
#define SIM_PINSEL1_RTCPS_MASK 0x00800000u
#define SIM_PINSEL1_RTCPS_SHIFT 23
#define SIM_PINSEL1_I2C0PS_MASK 0x01000000u
#define SIM_PINSEL1_I2C0PS_SHIFT 24
#define SIM_PINSEL1_FTM0PS2_MASK 0x02000000u
#define SIM_PINSEL1_FTM0PS2_SHIFT 25
#define SIM_PINSEL1_FTM0PS3_MASK 0x04000000u
#define SIM_PINSEL1_FTM0PS3_SHIFT 26
#define SIM_PINSEL1_FTM1PS2_MASK 0x08000000u
#define SIM_PINSEL1_FTM1PS2_SHIFT 27
#define SIM_PINSEL1_FTM1PS3_MASK 0x10000000u
#define SIM_PINSEL1_FTM1PS3_SHIFT 28
#define SIM_PINSEL1_FTM2PS6_MASK 0x20000000u
#define SIM_PINSEL1_FTM2PS6_SHIFT 29
#define SIM_PINSEL1_FTM2PS7_MASK 0x40000000u
#define SIM_PINSEL1_FTM2PS7_SHIFT 30
/* SCGC Bit Fields */
#define SIM_SCGC_RTC_MASK 0x00000001u
#define SIM_SCGC_RTC_SHIFT 0
#define SIM_SCGC_PIT_MASK 0x00000002u
#define SIM_SCGC_PIT_SHIFT 1
#define SIM_SCGC_EWM_MASK 0x00000004u
#define SIM_SCGC_EWM_SHIFT 2
#define SIM_SCGC_PWT_MASK 0x00000010u
#define SIM_SCGC_PWT_SHIFT 4
#define SIM_SCGC_FTM0_MASK 0x00000020u
#define SIM_SCGC_FTM0_SHIFT 5
#define SIM_SCGC_FTM1_MASK 0x00000040u
#define SIM_SCGC_FTM1_SHIFT 6
#define SIM_SCGC_FTM2_MASK 0x00000080u
#define SIM_SCGC_FTM2_SHIFT 7
#define SIM_SCGC_CLMA_MASK 0x00000100u
#define SIM_SCGC_CLMA_SHIFT 8
#define SIM_SCGC_CLMB_MASK 0x00000200u
#define SIM_SCGC_CLMB_SHIFT 9
#define SIM_SCGC_CRC_MASK 0x00000400u
#define SIM_SCGC_CRC_SHIFT 10
#define SIM_SCGC_WDG_MASK 0x00000800u
#define SIM_SCGC_WDG_SHIFT 11
#define SIM_SCGC_MCAN_MASK 0x00004000u
#define SIM_SCGC_MCAN_SHIFT 14
#define SIM_SCGC_I2C0_MASK 0x00010000u
#define SIM_SCGC_I2C0_SHIFT 16
#define SIM_SCGC_I2C1_MASK 0x00020000u
#define SIM_SCGC_I2C1_SHIFT 17
#define SIM_SCGC_SPI0_MASK 0x00040000u
#define SIM_SCGC_SPI0_SHIFT 18
#define SIM_SCGC_SPI1_MASK 0x00080000u
#define SIM_SCGC_SPI1_SHIFT 19
#define SIM_SCGC_UART0_MASK 0x00100000u
#define SIM_SCGC_UART0_SHIFT 20
#define SIM_SCGC_UART1_MASK 0x00200000u
#define SIM_SCGC_UART1_SHIFT 21
#define SIM_SCGC_UART2_MASK 0x00400000u
#define SIM_SCGC_UART2_SHIFT 22
#define SIM_SCGC_KBI0_MASK 0x01000000u
#define SIM_SCGC_KBI0_SHIFT 24
#define SIM_SCGC_KBI1_MASK 0x02000000u
#define SIM_SCGC_KBI1_SHIFT 25
#define SIM_SCGC_IRQ_MASK 0x08000000u
#define SIM_SCGC_IRQ_SHIFT 27
#define SIM_SCGC_DMA_MASK 0x10000000u
#define SIM_SCGC_DMA_SHIFT 28
#define SIM_SCGC_ADC_MASK 0x20000000u
#define SIM_SCGC_ADC_SHIFT 29
#define SIM_SCGC_ACMP0_MASK 0x40000000u
#define SIM_SCGC_ACMP0_SHIFT 30
#define SIM_SCGC_ACMP1_MASK 0x80000000u
#define SIM_SCGC_ACMP1_SHIFT 31
/* UUIDL Bit Fields */
#define SIM_UUIDL_ID_MASK 0xFFFFFFFFu
#define SIM_UUIDL_ID_SHIFT 0
/* UUIDML Bit Fields */
#define SIM_UUIDML_ID_MASK 0xFFFFFFFFu
#define SIM_UUIDML_ID_SHIFT 0
/* UUIDMH Bit Fields */
#define SIM_UUIDMH_SS_MASK 0x0000000Fu
#define SIM_UUIDMH_SS_SHIFT 0
#define SIM_UUIDMH_FS_MASK 0x000000F0u
#define SIM_UUIDMH_FS_SHIFT 4
#define SIM_UUIDMH_VER_MASK 0x0000FF00u
#define SIM_UUIDMH_VER_SHIFT 8
#define SIM_UUIDMH_DEVID_MASK 0xFFFF0000u
#define SIM_UUIDMH_DEVID_SHIFT 16
/* CLKDIV Bit Fields */
#define SIM_CLKDIV_OUTDIV1_MASK 0x000000FFu
#define SIM_CLKDIV_OUTDIV1_SHIFT 0
#define SIM_CLKDIV_OUTDIV2_MASK 0x0000FF00u
#define SIM_CLKDIV_OUTDIV2_SHIFT 8
#define SIM_CLKDIV_OUTDIV3_MASK 0x00FF0000u
#define SIM_CLKDIV_OUTDIV3_SHIFT 16
#define SIM_CLKDIV_OUTDIV4_MASK 0xFF000000u
#define SIM_CLKDIV_OUTDIV4_SHIFT 24
/* SCGC1 Bit Fields */
#define SIM_SCGC1_FTM0F_MASK 0x00000001u
#define SIM_SCGC1_FTM0F_SHIFT 0
#define SIM_SCGC1_FTM1F_MASK 0x00000002u
#define SIM_SCGC1_FTM1F_SHIFT 1
#define SIM_SCGC1_FTM2F_MASK 0x00000004u
#define SIM_SCGC1_FTM2F_SHIFT 2
#define SIM_SCGC1_RTCOEC_MASK 0x00000020u
#define SIM_SCGC1_RTCOEC_SHIFT 5
#define SIM_SCGC1_ADCALTC_MASK 0x00000040u
#define SIM_SCGC1_ADCALTC_SHIFT 6
#define SIM_SCGC1_FTM0T_MASK 0x01000000u
#define SIM_SCGC1_FTM0T_SHIFT 24
#define SIM_SCGC1_FTM1T_MASK 0x02000000u
#define SIM_SCGC1_FTM1T_SHIFT 25
#define SIM_SCGC1_FTM2T_MASK 0x04000000u
#define SIM_SCGC1_FTM2T_SHIFT 26
#define SIM_SCGC1_WDOGLPO_MASK 0x8000000u
#define SIM_SCGC1_WDOGLPO_SHIFT 27
#define SIM_SCGC1_RTCLPOC_MASK 0x10000000u
#define SIM_SCGC1_RTCLPOC_SHIFT 28
#define SIM_SCGC1_FTM0FF_MASK 0x20000000u
#define SIM_SCGC1_FTM0FF_SHIFT 29
#define SIM_SCGC1_FTM1FF_MASK 0x40000000u
#define SIM_SCGC1_FTM1FF_SHIFT 30
#define SIM_SCGC1_FTM2FF_MASK 0x80000000u
#define SIM_SCGC1_FTM2FF_SHIFT 31
/* LP Bit Fields */
#define SIM_LP_FLASHPOFF_MASK 0x00000004u
#define SIM_LP_FLASHPOFF_SHIFT 2
#define SIM_LP_FLASHPOFFST_MASK 0x00000008u
#define SIM_LP_FLASHPOFFST_SHIFT 3
#define SIM_LP_SRAM1POFF_MASK 0x00000020u
#define SIM_LP_SRAM1POFF_SHIFT 5
#define SIM_LP_SRAM2POFF_MASK 0x00000040u
#define SIM_LP_SRAM2POFF_SHIFT 6
#define SIM_LP_SRAM3POFF_MASK 0x00000080u
#define SIM_LP_SRAM3POFF_SHIFT 7
#define SIM_LP_SRAM1POFFST_MASK 0x00000200u
#define SIM_LP_SRAM1POFFST_SHIFT 9
#define SIM_LP_SRAM2POFFST_MASK 0x00000400u
#define SIM_LP_SRAM2POFFST_SHIFT 10
#define SIM_LP_SRAM3POFFST_MASK 0x00000800u
#define SIM_LP_SRAM3POFFST_SHIFT 11
#define SIM_LP_FLASHPON_MASK 0x00001000u
#define SIM_LP_FLASHPON_SHIFT 12
#define SIM_LP_SRAMPON_MASK 0x00002000u
#define SIM_LP_SRAMPON_SHIFT 13
#define SIM_LP_WEN_MASK 0xFFFF0000u
#define SIM_LP_WEN_SHIFT 16
/* WAIT Bit Fields */
#define SIM_WAIT_CLKWAIT_MASK 0x0000FFFFu
#define SIM_WAIT_CLKWAIT_SHIFT 0
#define SIM_WAIT_DIV1US_MASK 0x00FF0000u
#define SIM_WAIT_DIV1US_SHIFT 16
/** SIM - Register Layout Typedef */
typedef struct {
__IO uint32_t SRSID; /**< ϵͳ¸´Î»×´Ì¬ºÍID¼Ä´æÆ÷, offset: 0x0 */
__IO uint32_t SOPT0; /**< ϵͳѡÏî¼Ä´æÆ÷0, offset: 0x4 */
__IO uint32_t SOPT1; /**< ϵͳѡÏî¼Ä´æÆ÷, offset: 0x8 */
__IO uint32_t PINSEL0; /**< Òý½ÅÑ¡Ôñ¼Ä´æÆ÷0, offset: 0xC */
__IO uint32_t PINSEL1; /**< Òý½ÅÑ¡Ôñ¼Ä´æÆ÷1, offset: 0x10 */
__IO uint32_t SCGC; /**< ϵͳʱÖÓѡͨ¿ØÖƼĴæÆ÷, offset: 0x14 */
__I uint32_t UUIDL; /**< ͨÓÃΨһ±êʶ·ûµÍλ¼Ä´æÆ÷, offset: 0x18 */
__I uint32_t UUIDML; /**< ͨÓÃΨһ±êʶ·ûÖеÍλ¼Ä´æÆ÷, offset: 0x1C */
__I uint32_t UUIDMH; /**< ͨÓÃΨһ±êʶ·ûÖиßλ¼Ä´æÆ÷, offset: 0x20 */
__IO uint32_t CLKDIV; /**< ʱÖÓ·ÖÆµÆ÷¼Ä´æÆ÷, offset: 0x24 */
__IO uint32_t SCGC1; /**< ϵͳʱÖÓѡͨ¿ØÖƼĴæÆ÷1, offset: 0x28 */
uint32_t RESERVED_0[1];
__IO uint32_t LP; /**< ϵͳ¹¦ºÄ¿ØÖƼĴæÆ÷, offset: 0x30 */
__IO uint32_t WAIT; /**< ϵͳʱÖÓÎȶ¨µÈ´ý¼Ä´æÆ÷, offset: 0x34 */
} SIM_Type;
extern SIM_Type* SIM;
/** @addtogroup XL6600_StdPeriph_Driver
* @{
*/
/** @addtogroup SIM
* @{
*/
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup SIM_Exported_Constants SIMÄ£¿éʹÓòÎÊý¶¨Òå
* @{
*/
/**
* @defgroup System_Reset ϵͳ¸´Î»±êÖ¾
* @{
*/
#define SIM_ECCERR_RESET SIM_SRSID_ECCERR_SHIFT
#define SIM_LVD_RESET SIM_SRSID_LVD_SHIFT
#define SIM_WDOG_RESET SIM_SRSID_WDOG_SHIFT
#define SIM_PIN_RESET SIM_SRSID_PIN_SHIFT
#define SIM_POR_RESET SIM_SRSID_POR_SHIFT
#define SIM_SW_RESET SIM_SRSID_SW_SHIFT
/**
* @}
*/
/**
* @defgroup FTM2_Delay_Trigger FTM2´¥·¢ÑÓ³Ù
* @{
*/
#define ACMP0_OUTPUT_TRIGGER_FTM2 ((uint8_t)0x00)
#define ACMP1_OUTPUT_TRIGGER_FTM2 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup UART0_RxD_Filter UART_RxDÂ˲¨Æ÷Æ÷Ñ¡Ôñ
* @{
*/
#define UART0_RXD0_FILTER_NONE ((uint8_t)0x00)
#define UART0_RXD0_FILTER_ACMP0 ((uint8_t)0x01)
#define UART0_RXD0_FILTER_ACMP1 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup BUSCLK_Output_Div BUSCLKʱÖÓÊä³ö·ÖƵÆ÷
* @{
*/
#define BUSCLOCK_OUTPUT_DIVIDE_1 ((uint8_t)0x00)
#define BUSCLOCK_OUTPUT_DIVIDE_2 ((uint8_t)0x01)
#define BUSCLOCK_OUTPUT_DIVIDE_4 ((uint8_t)0x02)
#define BUSCLOCK_OUTPUT_DIVIDE_8 ((uint8_t)0x03)
#define BUSCLOCK_OUTPUT_DIVIDE_16 ((uint8_t)0x04)
#define BUSCLOCK_OUTPUT_DIVIDE_32 ((uint8_t)0x05)
#define BUSCLOCK_OUTPUT_DIVIDE_64 ((uint8_t)0x06)
#define BUSCLOCK_OUTPUT_DIVIDE_128 ((uint8_t)0x07)
/**
* @}
*/
/**
* @defgroup PWTIN2_To_ACMP PWTÊäÈëÁ¬½Óµ½ACMPÊä³ö
* @{
*/
#define PWTIN2_INPUT_ACMP1OUT ((uint8_t)0x00)
#define PWTIN2_INPUT_ACMP0OUT ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup PWTIN3_To_UART PWTÊäÈëÁ¬½Óµ½UARTÊä³ö
* @{
*/
#define PWTIN3_INPUT_UART0RX ((uint8_t)0x00)
#define PWTIN3_INPUT_UART1RX ((uint8_t)0x01)
#define PWTIN3_INPUT_UART2RX ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup ADC_Hardware_Trigger_Source ADCÓ²¼þ´¥·¢Ô´
* @{
*/
#define ADC_HT_RTCOVERFLOW ((uint8_t)0x00)
#define ADC_HT_FTM0CH0MAP ((uint8_t)0x01)
#define ADC_HT_FTM2UPDATE ((uint8_t)0x02)
#define ADC_HT_FTM2CH0MAP ((uint8_t)0x03)
#define ADC_HT_PITCH0OVERFLOW ((uint8_t)0x04)
#define ADC_HT_PITCH1OVERFLOW ((uint8_t)0x05)
#define ADC_HT_ACMP0OUTPUT ((uint8_t)0x06)
#define ADC_HT_ACMP1OUTPUT ((uint8_t)0x07)
#define ADC_HT_FTM2CH1MAP ((uint8_t)0x08)
#define ADC_HT_FTM2CH2MAP ((uint8_t)0x09)
#define ADC_HT_FTM2CH3MAP ((uint8_t)0x0A)
#define ADC_HT_FTM2CH4MAP ((uint8_t)0x0B)
#define ADC_HT_FTM2CH5MAP ((uint8_t)0x0C)
#define ADC_HT_FTM1CH0MAP ((uint8_t)0x0D)
#define ADC_HT_FTM1CH1MAP ((uint8_t)0x0E)
#define ADC_HT_FTM0CH1MAP ((uint8_t)0x0F)
/**
* @}
*/
/**
* @defgroup UART0_PIN_SEL UART0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define UART0_PS_PTB0_PTB1 ((uint8_t)0x00)
#define UART0_PS_PTA2_PTA3 ((uint8_t)0x01)
#define UART0_PS_PTC2_PTC3 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM0PS0_PIN_SEL FTM0ͨµÀ0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM0CH0_PS_PTA0 ((uint8_t)0x00)
#define FTM0CH0_PS_PTB2 ((uint8_t)0x01)
#define FTM0CH0_PS_PTE5 ((uint8_t)0x02)
#define FTM0CH0_PS_PTF4 ((uint8_t)0x03)
/**
* @}
*/
/**
* @defgroup FTM0PS1_PIN_SEL FTM0ͨµÀ1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM0CH1_PS_PTA1 ((uint8_t)0x00)
#define FTM0CH1_PS_PTB3 ((uint8_t)0x01)
#define FTM0CH1_PS_PTE6 ((uint8_t)0x02)
#define FTM0CH1_PS_PTF5 ((uint8_t)0x03)
/**
* @}
*/
/**
* @defgroup FTM1PS0_PIN_SEL FTM1ͨµÀ0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM1CH0_PS_PTC4 ((uint8_t)0x00)
#define FTM1CH0_PS_PTH2 ((uint8_t)0x01)
#define FTM1CH0_PS_PTE5 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM1PS1_PIN_SEL FTM1ͨµÀ1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM1CH1_PS_PTC5 ((uint8_t)0x00)
#define FTM1CH1_PS_PTE7 ((uint8_t)0x01)
#define FTM1CH1_PS_PTE6 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM_FLT2_PIN_SEL FTM_FLT2¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM_FLT2_PS_PTA7 ((uint8_t)0x00)
#define FTM_FLT2_PS_PTI1 ((uint8_t)0x01)
#define FTM_FLT2_PS_PTF7 ((uint8_t)0x02)
#define FTM_FLT2_PS_PTF6 ((uint8_t)0x03)
/**
* @}
*/
/**
* @defgroup FTM_FLT1_PIN_SEL FTM_FLT1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM_FLT1_PS_PTA6 ((uint8_t)0x00)
#define FTM_FLT1_PS_PTI1 ((uint8_t)0x01)
#define FTM_FLT1_PS_PTF7 ((uint8_t)0x02)
#define FTM_FLT1_PS_PTF6 ((uint8_t)0x03)
/**
* @}
*/
/**
* @defgroup BUSOUT_PIN_SEL BUSCLKÊä³ö¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define BUSOUT_PS_PTH2 ((uint8_t)0x00)
#define BUSOUT_PS_PTH6 ((uint8_t)0x01)
#define BUSOUT_PS_PTB5 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup TCLK2_PIN_SEL TCLK2¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define TCLK2_PS_PTE7 ((uint8_t)0x00)
#define TCLK2_PS_PTH7 ((uint8_t)0x01)
#define TCLK2_PS_PTD5 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup TCLK1_PIN_SEL TCLK1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define TCLK1_PS_PTE0 ((uint8_t)0x00)
#define TCLK1_PS_PTH7 ((uint8_t)0x01)
#define TCLK1_PS_PTD5 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup TCLK0_PIN_SEL TCLK0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define TCLK0_PS_PTH7 ((uint8_t)0x01)
#define TCLK0_PS_PTD5 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM0CLK_PIN_SEL FTM0ÍⲿʱÖÓÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM0CLK_PS_TCLK0 ((uint8_t)0x00)
#define FTM0CLK_PS_TCLK1 ((uint8_t)0x01)
#define FTM0CLK_PS_TCLK2 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM1CLK_PIN_SEL FTM1ÍⲿʱÖÓÒý½ÅÑ¡Ôñ
* @{
*/
#define FTM1CLK_PS_TCLK0 ((uint8_t)0x00)
#define FTM1CLK_PS_TCLK1 ((uint8_t)0x01)
#define FTM1CLK_PS_TCLK2 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup ACMP_Hyst ACMPÄ£Äâ±È½Ï³ÙÖÍÑ¡Ôñ
* @{
*/
#define FTM2CLK_PS_TCLK0 ((uint8_t)0x00)
#define FTM2CLK_PS_TCLK1 ((uint8_t)0x01)
#define FTM2CLK_PS_TCLK2 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM2CLK_PIN_SEL FTM2ÍⲿʱÖÓÒý½ÅÑ¡Ôñ
* @{
*/
#define PWTCLK_PS_TCLK0 ((uint8_t)0x00)
#define PWTCLK_PS_TCLK1 ((uint8_t)0x01)
#define PWTCLK_PS_TCLK2 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM2CH0_PIN_SEL FTM2ͨµÀ0Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH0_PS_PTC0 ((uint8_t)0x00)
#define FTM2CH0_PS_PTH0 ((uint8_t)0x01)
#define FTM2CH0_PS_PTF0 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM2CH1_PIN_SEL FTM2ͨµÀ1Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH1_PS_PTC1 ((uint8_t)0x00)
#define FTM2CH1_PS_PTH1 ((uint8_t)0x01)
#define FTM2CH1_PS_PTF1 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM2CH2_PIN_SEL FTM2ͨµÀ2Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH2_PS_PTC2 ((uint8_t)0x00)
#define FTM2CH2_PS_PTD0 ((uint8_t)0x01)
#define FTM2CH2_PS_PTG4 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM2CH3_PIN_SEL FTM2ͨµÀ3Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH3_PS_PTC3 ((uint8_t)0x00)
#define FTM2CH3_PS_PTD1 ((uint8_t)0x01)
#define FTM2CH3_PS_PTG5 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup FTM2CH4_PIN_SEL FTM2ͨµÀ4Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH4_PS_PTB4 ((uint8_t)0x00)
#define FTM2CH4_PS_PTG6 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup FTM2CH5_PIN_SEL FTM2ͨµÀ5Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH5_PS_PTB5 ((uint8_t)0x00)
#define FTM2CH5_PS_PTG7 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup I2C1_PIN_SEL I2C1Òý½ÅÑ¡Ôñ
* @{
*/
#define I2C1_PS_PTE1_PTE0 ((uint8_t)0x00)
#define I2C1_PS_PTH4_PTH3 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup SPI1_PIN_SEL SPI1Òý½ÅÑ¡Ôñ
* @{
*/
#define SPI1_PS_PTD0_PTD1_PTD2_PTD3 ((uint8_t)0x00)
#define SPI1_PS_PTG4_PTG5_PTG6_PTG7 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup UART1_PIN_SEL UART1Òý½ÅÑ¡Ôñ
* @{
*/
#define UART1_PS_PTC7_PTC6 ((uint8_t)0x00)
#define UART1_PS_PTF3_PTF2 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup UART2_PIN_SEL UART2Òý½ÅÑ¡Ôñ
* @{
*/
#define UART2_PS_PTD7_PTD6 ((uint8_t)0x00)
#define UART2_PS_PTI1_PTI0 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup PWTIN0_PIN_SEL PWTIN0Òý½ÅÑ¡Ôñ
* @{
*/
#define PWTIN0_PS_PTD5 ((uint8_t)0x00)
#define PWTIN0_PS_PTE2 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup PWTIN1_PIN_SEL PWTIN1Òý½ÅÑ¡Ôñ
* @{
*/
#define PWTIN1_PS_PTB0 ((uint8_t)0x00)
#define PWTIN1_PS_PTH7 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup ACMP_Hyst ACMPÄ£Äâ±È½Ï³ÙÖÍÑ¡Ôñ
* @{
*/
#define SPI0_PS_PTB2_PTB3_PTB4_PTB5 ((uint8_t)0x00)
#define SPI0_PS_PTE0_PTE1_PTE2_PTE3 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup EWM_PIN_SEL EWMÒý½ÅÑ¡Ôñ
* @{
*/
#define EWM_PS_PTA3_PTA2 ((uint8_t)0x00)
#define EWM_PS_PTC4_PTA4 ((uint8_t)0x01)
#define EWM_PS_PTE7_PTH2 ((uint8_t)0x02)
/**
* @}
*/
/**
* @defgroup IRQ_PIN_SEL IRQ¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define IRQ_PS_GROUP1 ((uint8_t)0x00)
#define IRQ_PS_GROUP2 ((uint8_t)0x01)
#define IRQ_PS_GROUP3 ((uint8_t)0x02)
#define IRQ_PS_GROUP4 ((uint8_t)0x03)
#define IRQ_PS_GROUP5 ((uint8_t)0x04)
/**
* @}
*/
/**
* @defgroup ACMP1_PIN_SEL ACMP1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define ACMP1_PS_PTB5 ((uint8_t)0x00)
#define ACMP1_PS_PTI1 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup RTCO_PIN_SEL RTCO¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @{
*/
#define RTCO_PS_PTC4 ((uint8_t)0x00)
#define RTCO_PS_PTC5 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup I2C0_PIN_SEL I2C0Òý½ÅÑ¡Ôñ
* @{
*/
#define I2C0_PS_PTA3_PTA2 ((uint8_t)0x00)
#define I2C0_PS_PTB7_PTB6 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup FTM0CH2_PIN_SEL FTM0ͨµÀ2Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM0CH2_PS_PTH7 ((uint8_t)0x00)
#define FTM0CH2_PS_PTD5 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup FTM0CH3_PIN_SEL FTM0ͨµÀ3Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM0CH3_PS_PTE4 ((uint8_t)0x00)
#define FTM0CH3_PS_PTD4 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup FTM1CH2_PIN_SEL FTM1ͨµÀ2Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM1CH2_PS_PTH1 ((uint8_t)0x00)
#define FTM1CH2_PS_PTB4 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup FTM1CH3_PIN_SEL FTM1ͨµÀ3Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM1CH3_PS_PTH0 ((uint8_t)0x00)
#define FTM1CH3_PS_PTE3 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup FTM2CH6_PIN_SEL FTM2ͨµÀ6Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH6_PS_PTF3 ((uint8_t)0x00)
#define FTM2CH6_PS_PTD3 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup FTM2CH7_PIN_SEL FTM2ͨµÀ7Òý½ÅÑ¡Ôñ
* @{
*/
#define FTM2CH7_PS_PTF2 ((uint8_t)0x00)
#define FTM2CH7_PS_PTD2 ((uint8_t)0x01)
/**
* @}
*/
/**
* @defgroup SCGC_Clock_Control ÍâÉèʱÖÓ¿ª¹Ø¿ØÖÆ1
* @{
*/
#define SIM_SCGC_RTC 0x00000001u
#define SIM_SCGC_PIT 0x00000002u
#define SIM_SCGC_EWM 0x00000004u
#define SIM_SCGC_PWT 0x00000010u
#define SIM_SCGC_FTM0 0x00000020u
#define SIM_SCGC_FTM1 0x00000040u
#define SIM_SCGC_FTM2 0x00000080u
#define SIM_SCGC_CLMA 0x00000100u
#define SIM_SCGC_CLMB 0x00000200u
#define SIM_SCGC_CRC 0x00000400u
#define SIM_SCGC_WDG 0x00000800u
#define SIM_SCGC_MCAN 0x00004000u
#define SIM_SCGC_I2C0 0x00010000u
#define SIM_SCGC_I2C1 0x00020000u
#define SIM_SCGC_SPI0 0x00040000u
#define SIM_SCGC_SPI1 0x00080000u
#define SIM_SCGC_UART0 0x00100000u
#define SIM_SCGC_UART1 0x00200000u
#define SIM_SCGC_UART2 0x00400000u
#define SIM_SCGC_KBI0 0x01000000u
#define SIM_SCGC_KBI1 0x02000000u
#define SIM_SCGC_IRQ 0x08000000u
#define SIM_SCGC_DMA 0x10000000u
#define SIM_SCGC_ADC 0x20000000u
#define SIM_SCGC_ACMP0 0x40000000u
#define SIM_SCGC_ACMP1 0x80000000u
/**
* @}
*/
/**
* @defgroup SCGC1_Clock_Control ÍâÉèʱÖÓ¿ª¹Ø¿ØÖÆ2
* @{
*/
#define SIM_SCGC1_FTM2F 0x00000001u
#define SIM_SCGC1_FTM1F 0x00000002u
#define SIM_SCGC1_FTM0F 0x00000004u
#define SIM_SCGC1_RTCEC 0x00000020u
#define SIM_SCGC1_ADCALTC 0x00000040u
#define SIM_SCGC1_FTM2T 0x01000000u
#define SIM_SCGC1_FTM1T 0x02000000u
#define SIM_SCGC1_FTM0T 0x04000000u
#define SIM_SCGC1_RTCLPOC 0x10000000u
/**
* @}
*/
/**
* @defgroup LowerPower_FLASH_RAM_Control LPµÍ¹¦ºÄģʽFlashºÍRAMµçÔ´¿ØÖÆ
* @{
*/
#define SIM_LP_USER_FLASH 0x00000004u
#define SIM_LP_STOP_FLASH 0x00000008u
#define SIM_LP_USER_RAM1 0x00000020u
#define SIM_LP_USER_RAM2 0x00000040u
#define SIM_LP_USER_RAM3 0x00000080u
#define SIM_LP_STOP_RAM1 0x00000200u
#define SIM_LP_STOP_RAM2 0x00000400u
#define SIM_LP_STOP_RAM3 0x00000800u
/**
* @}
*/
/**
* @defgroup SRAM_SIZE SRAM´óС
* @{
*/
#define SRAM_SIZE_24KB 0x00u
#define SRAM_SIZE_16KB 0x01u
/**
* @}
*/
/**
* @defgroup FLASH_SIZE FLASH´óС
* @{
*/
#define FLASH_SIZE_256KB 0x00u
#define FLASH_SIZE_128KB 0x01u
/**
* @}
*/
/**
* @}
*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
void SIM_DeInit(void);
uint32_t SIM_ReadFPINID(void);
FlagStatus SIM_GetRstCauses(uint32_t ResetCause);
void SIM_ClrRstCauses(uint8_t ResetCause);
void SIM_SOPT0_NMIECmd(FunctionalState State);
void SIM_SOPT0_RSTPECmd(FunctionalState State);
void SIM_SOPT0_SWDECmd(FunctionalState State);
void SIM_SOPT0_ACMPT_FTM2Config(uint8_t TriggerType);
void SIM_SOPT0_UART0FilterConfig(uint32_t FilterType);
void SIM_SOPT0_FTM1CH1C_RTCOutputCmd(FunctionalState State);
void SIM_SOPT0_FTM1CH0C_ACMP0OCmd(FunctionalState State);
void SIM_SOPT0_FTM0CH1C_UART0ICmd(FunctionalState State);
void SIM_SOPT0_FTM2S_PWMCmd(FunctionalState State);
void SIM_SOPT0_FTM0M_UART0OutputCmd(FunctionalState State);
void SIM_SOPT0_BusClockDivide(uint8_t Divide);
void SIM_SOPT0_BusClockOutputCmd(FunctionalState State);
FlagStatus SIM_SOPT0_FTM2DelayTStatus(void);
void SIM_SOPT0_FTM2DelayTConfig(uint8_t Delay);
void SIM_SOPT1_PWTIN2InputConfig(uint8_t InputType);
void SIM_SOPT1_PWTIN3InputConfig(uint8_t InputType);
void SIM_SOPT1_ADCHardwareTConfig(uint8_t TriggerType);
void SIM_PINSEL_UART0(uint8_t PinSelect);
void SIM_PINSEL_FTM0CH0(uint8_t PinSelect);
void SIM_PINSEL_FTM0CH1(uint8_t PinSelect);
void SIM_PINSEL_FTM1CH0(uint8_t PinSelect);
void SIM_PINSEL_FTM1CH1(uint8_t PinSelect);
void SIM_PINSEL_FTMFLT2(uint8_t PinSelect);
void SIM_PINSEL_FTMFLT1(uint8_t PinSelect);
void SIM_PINSEL_BUSOUT(uint8_t PinSelect);
void SIM_PINSEL_TCLK2(uint8_t PinSelect);
void SIM_PINSEL_TCLK1(uint8_t PinSelect);
void SIM_PINSEL_TCLK0(uint8_t PinSelect);
void SIM_PINSEL_FTM0TCLK(uint8_t PinSelect);
void SIM_PINSEL_FTM1TCLK(uint8_t PinSelect);
void SIM_PINSEL_FTM2TCLK(uint8_t PinSelect);
void SIM_PINSEL_PWTTCLK(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH0(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH1(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH2(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH3(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH4(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH5(uint8_t PinSelect);
void SIM_PINSEL_I2C1(uint8_t PinSelect);
void SIM_PINSEL_SPI1(uint8_t PinSelect);
void SIM_PINSEL_UART1(uint8_t PinSelect);
void SIM_PINSEL_UART2(uint8_t PinSelect);
void SIM_PINSEL_PWTIN0(uint8_t PinSelect);
void SIM_PINSEL_PWTIN1(uint8_t PinSelect);
void SIM_PINSEL_SPI0(uint8_t PinSelect);
void SIM_PINSEL_EWM(uint8_t PinSelect);
void SIM_PINSEL_IRQ(uint8_t PinSelect);
void SIM_PINSEL_ACMP(uint8_t PinSelect);
void SIM_PINSEL_RTC(uint8_t PinSelect);
void SIM_PINSEL_I2C0(uint8_t PinSelect);
void SIM_PINSEL_FTM0CH2(uint8_t PinSelect);
void SIM_PINSEL_FTM0CH3(uint8_t PinSelect);
void SIM_PINSEL_FTM1CH2(uint8_t PinSelect);
void SIM_PINSEL_FTM1CH3(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH6(uint8_t PinSelect);
void SIM_PINSEL_FTM2CH7(uint8_t PinSelect);
void SIM_SCGC_Cmd(uint32_t SCGC_Type, FunctionalState State);
uint32_t SIM_GetUUIDL(void);
uint32_t SIM_GetUUIDML(void);
uint32_t SIM_GetUUIDMH(void);
uint8_t SIM_GetSRAMSize(void);
uint8_t SIM_GetFLASHSize(void);
uint8_t SIM_GetVer(void);
uint8_t SIM_GetDevID(void);
void SIM_CLKDIV_OUTDIV1(uint32_t divide);
void SIM_CLKDIV_OUTDIV2(uint32_t divide);
void SIM_CLKDIV_OUTDIV3(uint32_t divide);
void SIM_CLKDIV_OUTDIV4(uint32_t divide);
uint8_t SIM_GetOUTDIV1(void);
uint8_t SIM_GetOUTDIV2(void);
uint8_t SIM_GetOUTDIV3(void);
uint8_t SIM_GetOUTDIV4(void);
void SIM_SCGC1_Cmd(uint32_t SCGC1_Type, FunctionalState State);
void SIM_LP_SetLowpowerCmd(uint32_t LP_Type);
FlagStatus SIM_LP_FLASHPowerONStatus(void);
FlagStatus SIM_LP_SRAMPowerONStatus(void);
void SIM_WAIT_CLKWAITConfig(uint16_t Clkwait);
void SIM_WAIT_DIV1USConfig(uint16_t Div1us);
#ifdef __cplusplus
}
#endif
#endif /*__XL_SIM_H__ */
/**
* @}
*/
/**
* @}
*/