/** ****************************************************************************** * @file tae32f53xx.h * @author MCD Application Team * @brief CMSIS TAE32F53xx(Cortex-M3) Device Peripheral Access Layer Header File. * This file contains all the peripheral register's definitions, bits * definitions and memory mapping for TAE32F53xx devices. * * This file contains: * - Data structures and the address mapping for all peripherals * - Peripheral's registers declarations and bits definition * - Macros to access peripheral registers hardware * ****************************************************************************** * @attention * *

© Copyright (c) 2020 Tai-Action. * All rights reserved.

* * This software is licensed by Tai-Action under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef _TAE32F53XX_H_ #define _TAE32F53XX_H_ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /** @defgroup TAE_CMSIS TAE CMSIS * @brief TAE CMSIS * @{ */ /** @defgroup TAE32F53xx_Series TAE32F53xx Series * @brief TAE32F53xx Series * @{ */ /* ------- Start of section using anonymous unions and disabling warnings ------- */ #if defined (__CC_ARM) #pragma push #pragma anon_unions #elif defined (__ICCARM__) #pragma language=extended #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wc11-extensions" #pragma clang diagnostic ignored "-Wreserved-id-macro" #elif defined (__GNUC__) /* anonymous unions are enabled by default */ #elif defined (__TMS470__) /* anonymous unions are enabled by default */ #elif defined (__TASKING__) #pragma warning 586 #elif defined (__CSMC__) /* anonymous unions are enabled by default */ #else #warning Not supported compiler type #endif /* Exported types ------------------------------------------------------------*/ /** @defgroup TAE32F53xx_Exported_Types TAE32F53xx Exported Types * @brief TAE32F53xx Exported Types * @{ */ /** @defgroup TAE32F53xx_Peripheral_Interrupt_Number_Definition TAE32F53xx Peripheral Interrupt Number Definition * @brief TAE32F53xx Peripheral Interrupt Number Definition * @{ */ /** * @brief TAE32F53xx Peripheral Interrupt Number Definition */ typedef enum { /* ------------------ Processor Exceptions Numbers ------------------ */ NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ HardFault_IRQn = -13, /*!< 3 HardFault Interrupt */ MemoryManagement_IRQn = -12, /*!< 4 Memory Management Interrupt */ BusFault_IRQn = -11, /*!< 5 Bus Fault Interrupt */ UsageFault_IRQn = -10, /*!< 6 Usage Fault Interrupt */ SVCall_IRQn = -5, /*!< 11 SV Call Interrupt */ DebugMonitor_IRQn = -4, /*!< 12 Debug Monitor Interrupt */ PendSV_IRQn = -2, /*!< 14 Pend SV Interrupt */ SysTick_IRQn = -1, /*!< 15 System Tick Interrupt */ /* ------------------ Processor Interrupt Numbers ------------------- */ I2C0_IRQn = 0, /*!< I2C0 Interrupt */ I2C1_IRQn = 1, /*!< I2C1 Interrupt */ UART0_IRQn = 2, /*!< UART0 Interrupt */ UART1_IRQn = 3, /*!< UART1 Interrupt */ TMR0_IRQn = 4, /*!< TIMER0 Interrupt */ TMR1_IRQn = 5, /*!< TIMER1 Interrupt */ TMR2_IRQn = 6, /*!< TIMER2 Interrupt */ TMR3_IRQn = 7, /*!< TIMER3 Interrupt */ LVD_IRQn = 8, /*!< LVD Interrupt */ TMR4_IRQn = 9, /*!< TIMER4 Interrupt */ TMR5_IRQn = 10, /*!< TIMER5 Interrupt */ TMR6_IRQn = 11, /*!< TIMER6 Interrupt */ TMR7_IRQn = 12, /*!< TIMER7 Interrupt */ IWDG_IRQn = 13, /*!< IWDG Interrupt */ WWDG_IRQn = 14, /*!< WWDG Interrupt */ IIR0_IRQn = 15, /*!< IIR0 Interrupt */ IIR1_IRQn = 16, /*!< IIR1 Interrupt */ IIR2_IRQn = 17, /*!< IIR2 Interrupt */ IIR3_IRQn = 18, /*!< IIR3 Interrupt */ IIR4_IRQn = 19, /*!< IIR4 Interrupt */ ECU_IRQn = 20, /*!< ECU Cal Done Interrupt */ DMA_IRQn = 21, /*!< DMA Interrupt */ CAN_IRQn = 22, /*!< CAN Interrupt */ GPIOA_IRQn = 23, /*!< GPIOA Interrupt */ GPIOB_IRQn = 24, /*!< GPIOB Interrupt */ GPIOC_IRQn = 25, /*!< GPIOC Interrupt */ GPIOD_IRQn = 26, /*!< GPIOD Interrupt */ FLASH_IRQn = 27, /*!< FLASH Interrupt */ DFLASH_IRQn = 28, /*!< DFLASH Interrupt */ HRPWM_MSTR_IRQn = 29, /*!< Hrpwm Master Global Interrupt */ HRPWM_SLV0_IRQn = 30, /*!< Hrpwm Slave0 Global Interrupt */ HRPWM_SLV1_IRQn = 31, /*!< Hrpwm Slave1 Global Interrupt */ HRPWM_SLV2_IRQn = 32, /*!< Hrpwm Slave2 Global Interrupt */ HRPWM_SLV3_IRQn = 33, /*!< Hrpwm Slave3 Global Interrupt */ HRPWM_SLV4_IRQn = 34, /*!< Hrpwm Slave4 Global Interrupt */ HRPWM_SLV5_IRQn = 35, /*!< Hrpwm Slave5 Global Interrupt */ HRPWM_FLT_IRQn = 36, /*!< Hrpwm All Fault Interrupt */ ADC0_NORM_IRQn = 37, /*!< ADC0 Normal Global Interrupt */ ADC0_HALF_IRQn = 38, /*!< ADC0 DMA Half Done Interrupt */ ADC0_FULL_IRQn = 39, /*!< ADC0 DMA Full Done Interrupt */ ADC0_SAMP_IRQn = 40, /*!< ADC0 Sample Done Interrupt */ ADC1_NORM_IRQn = 41, /*!< ADC1 Normal Global Interrupt */ ADC1_HALF_IRQn = 42, /*!< ADC1 DMA Half Done Interrupt */ ADC1_FULL_IRQn = 43, /*!< ADC1 DMA Full Done Interrupt */ ADC1_SAMP_IRQn = 44, /*!< ADC1 Sample Done Interrupt */ DAC_IRQn = 45, /*!< DAC Interrupt */ CMP_IRQn = 46, /*!< CMP Interrupt */ USB_STA_IRQn = 47, /*!< USB Staus Interrupt */ USB_DET_IRQn = 48, /*!< USB Detect Interrupt */ USB_LPM_IRQn = 49, /*!< USB LPM Interrupt */ USB_EP_IRQn = 50, /*!< USB Endpoint Interrupt */ DALI_IRQn = 51, /*!< DALI Interrupt */ } IRQn_Type; /** * @} */ /** @defgroup TAE32F53xx_Configuration_Section_For_CMSIS TAE32F53xx Configuration Section For CMSIS * @brief TAE32F53xx Configuration Section For CMSIS * @{ */ /** * @brief Configuration of the Cortex-M3 Processor and Core Peripherals */ #define __CM3_REV 0x0201U /*!< Core revision r2p1 */ #define __MPU_PRESENT 0U /*!< MPU present */ #define __VTOR_PRESENT 1U /*!< VTOR present */ #define __NVIC_PRIO_BITS 3U /*!< Number of Bits used for Priority Levels */ #define __Vendor_SysTickConfig 0U /*!< Set to 1 if different SysTick Config is used */ /** * @brief CMSIS Device version number v5.3.1 */ #define __TAE32F53XX_CMSIS_VERSION_MAIN (0x05) /*!< [31:24] main version */ #define __TAE32F53XX_CMSIS_VERSION_SUB1 (0x03) /*!< [23:16] sub1 version */ #define __TAE32F53XX_CMSIS_VERSION_SUB2 (0x01) /*!< [15:8] sub2 version */ #define __TAE32F53XX_CMSIS_VERSION_RC (0x00) /*!< [7:0] release candidate */ #define __TAE32F53XX_CMSIS_VERSION ((__TAE32F53XX_CMSIS_VERSION_MAIN << 24) |\ (__TAE32F53XX_CMSIS_VERSION_SUB1 << 16) |\ (__TAE32F53XX_CMSIS_VERSION_SUB2 << 8 ) |\ (__TAE32F53XX_CMSIS_VERSION_RC)) /** * @} */ /* Includes ------------------------------------------------------------------*/ #include /*!< Standard int head file */ #include "core_cm3.h" /*!< Processor and core peripherals */ #include "system_tae32f53xx.h" /*!< TAE32F53xx System Header */ /** @defgroup TAE32F53xx_Peripheral_Registers_Structures TAE32F53xx Peripheral Registers Structures * @brief TAE32F53xx Peripheral Registers Structures * @{ */ /** * @brief Embedded FLASH Controller Registers Structure */ typedef struct { __IO uint32_t CR; /*!< Address offset: 0x00: FLASH Control Register */ __IO uint32_t LPR; /*!< Address offset: 0x04: FLASH Lowpower Register */ __IO uint32_t ISR; /*!< Address offset: 0x08: FLASH Interrupt Status Register */ __IO uint32_t SR; /*!< Address offset: 0x0C: FLASH Status Register */ __IO uint32_t DR0; /*!< Address offset: 0x10: FLASH Data Register 0 */ __IO uint32_t DR1; /*!< Address offset: 0x14: FLASH Data Register 1 */ __IO uint32_t DR2; /*!< Address offset: 0x18: FLASH Data Register 2 */ __IO uint32_t DR3; /*!< Address offset: 0x1C: FLASH Data Register 3 */ __IO uint32_t ADDR; /*!< Address offset: 0x20: FLASH Address Register */ __I uint32_t RESERVED0; /*!< Reserved */ __IO uint32_t ECR; /*!< Address offset: 0x28: FLASH Erase Control Register */ __I uint32_t RESERVED1; /*!< Reserved */ __IO uint32_t TR0; /*!< Address offset: 0x30: FLASH Timing Register 0 */ __IO uint32_t TR1; /*!< Address offset: 0x34: FLASH Timing Register 1 */ __IO uint32_t TR2; /*!< Address offset: 0x38: FLASH Timing Register 2 */ __IO uint32_t TR3; /*!< Address offset: 0x3C: FLASH Timing Register 3 */ __I uint32_t RESERVED2[4]; /*!< Reserved */ __IO uint32_t KEYR; /*!< Address offset: 0x50: FLASH Key Register */ __I uint32_t RESERVED3[3]; /*!< Reserved */ __IO uint32_t RDPR; /*!< Address offset: 0x60: FLASH Read Protect Register */ __I uint32_t RESERVED4[3]; /*!< Reserved */ __IO uint32_t WRPR; /*!< Address offset: 0x70: FLASH Write Protect Register */ __I uint32_t RESERVED5[3]; /*!< Reserved */ __IO uint32_t UID[4]; /*!< Address offset: 0x80: FLASH Unique Identification */ } FLASH_TypeDef; /** * @brief Data FLASH Controller Registers Structure */ typedef struct { __IO uint32_t CR; /*!< Address offset: 0x00: DFLASH Control Register */ __IO uint32_t LPR; /*!< Address offset: 0x04: DFLASH Lowpower Register */ __IO uint32_t ISR; /*!< Address offset: 0x08: DFLASH Interrupt Status Register */ __IO uint32_t SR; /*!< Address offset: 0x0C: DFLASH Status Register */ __IO uint32_t DR; /*!< Address offset: 0x10: DFLASH Data Register */ __IO uint32_t ADDR; /*!< Address offset: 0x14: DFLASH Address Register */ __IO uint32_t ECR; /*!< Address offset: 0x18: DFLASH Erase Control Register */ __I uint32_t RESERVED0; /*!< Reserved */ __IO uint32_t TR0; /*!< Address offset: 0x20: DFLASH Timing Register 0 */ __IO uint32_t TR1; /*!< Address offset: 0x24: DFLASH Timing Register 1 */ __IO uint32_t TR2; /*!< Address offset: 0x28: DFLASH Timing Register 2 */ __IO uint32_t TR3; /*!< Address offset: 0x2C: DFLASH Timing Register 3 */ __IO uint32_t KEYR; /*!< Address offset: 0x30: DFLASH Key Register */ } DFLASH_TypeDef; /** * @brief General Purpose I/O (GPIO) Registers Structure */ typedef struct { __IO uint32_t BSRR; /*!< Address offset: 0x00: GPIO Bit Set/Reset Register */ __IO uint32_t DR; /*!< Address offset: 0x04: GPIO Data Register */ __IO uint32_t PUR; /*!< Address offset: 0x08: GPIO Pullup Register */ __IO uint32_t PDR; /*!< Address offset: 0x0C: GPIO Pulldown Register */ __IO uint32_t DSR; /*!< Address offset: 0x10: GPIO Driver Strength Register */ __IO uint32_t IHYR; /*!< Address offset: 0x14: GPIO Input Hysteresis Register */ __IO uint32_t OTYPR; /*!< Address offset: 0x18: GPIO Output Type Register */ __IO uint32_t OSRR; /*!< Address offset: 0x1C: GPIO Output Slew Rate Register */ __IO uint32_t IER; /*!< Address offset: 0x20: GPIO Interrupt Enable Register */ __IO uint32_t ITER; /*!< Address offset: 0x24: GPIO Interrupt Trigger Enable Register */ __IO uint32_t RFTSR; /*!< Address offset: 0x28: GPIO Rising/Falling Trigger Selection Register */ __IO uint32_t PR; /*!< Address offset: 0x2C: GPIO Pending Register */ __IO uint32_t SDER; /*!< Address offset: 0x30: GPIO Sync/Debounce Enable Register */ __I uint32_t RESERVED0[3]; /*!< Reserved */ __IO uint32_t PMUXR[2]; /*!< Address offset: 0x40: GPIO Pin-Mux Register */ } GPIO_TypeDef; /** * @brief Window WATCHDOG (WWDG) Registers Structure */ typedef struct { __IO uint32_t CR; /*!< Address offset: 0x00: WWDG Control Register */ __IO uint32_t WVR; /*!< Address offset: 0x04: WWDG Window Value Register */ __IO uint32_t CVR; /*!< Address offset: 0x08: WWDG Counter Value Register */ __IO uint32_t PSCR; /*!< Address offset: 0x0C: WWDG Prescaler Register */ __IO uint32_t ISR; /*!< Address offset: 0x10: WWDG Interrupt Status Register */ } WWDG_TypeDef; /** * @brief Independent WATCHDOG (IWDG) Registers Structure */ typedef struct { __IO uint32_t KEYR; /*!< Address offset: 0x00: IWDG Key register */ __IO uint32_t CR; /*!< Address offset: 0x04: IWDG Control register */ __IO uint32_t RLR; /*!< Address offset: 0x08: IWDG Reload register */ __IO uint32_t PSCR; /*!< Address offset: 0x0C: IWDG Prescaler register */ __IO uint32_t SR; /*!< Address offset: 0x10: IWDG Status register */ } IWDG_TypeDef; /** * @brief Infinite Impulse Response (IIR) Registers Structure */ typedef struct { __IOM uint32_t CR0; /*!< Address offset: 0x00: IIR Control Register */ __IOM uint32_t CR1; /*!< Address offset: 0x04: IIR Start Register */ __IOM uint32_t IER; /*!< Address offset: 0x08: IIR Interrupt Register */ __IOM uint32_t ISR; /*!< Address offset: 0x0C: IIR Pending Register */ __IM uint32_t RESERVED0; /*!< Reserved */ __IOM uint32_t DOR; /*!< Address offset: 0x14: IIR DataO Register */ __IM uint32_t RESERVED1[3]; /*!< Reserved */ __IOM uint32_t DIAR; /*!< Address offset: 0x24: IIR DataI Address Register */ __IM uint32_t RESERVED2; /*!< Reserved */ __IOM uint32_t SCALR; /*!< Address offset: 0x2C: IIR Scale Register */ __IOM uint32_t BxCOEFR[5]; /*!< Address offset: 0x30: IIR BxCOEF Register(x = 0...4) */ __IOM uint32_t AxCOEFR[4]; /*!< Address offset: 0x44: IIR AxCOEF Register(x = 1...4) */ __IM uint32_t RESERVED3[4]; /*!< Reserved */ __IOM uint32_t DIASR; /*!< Address offset: 0x64: IIR DataI Addr Shadow Register */ __IM uint32_t RESERVED4; /*!< Reserved */ __IOM uint32_t SCALSR; /*!< Address offset: 0x6C: IIR Scale Shadow Register */ __IOM uint32_t BxCOEFSR[5]; /*!< Address offset: 0x70: IIR B0COEF Shadow Register(x = 0...4) */ __IOM uint32_t AxCOEFSR[4]; /*!< Address offset: 0x84: IIR A1COEF Shadow Register(x = 1...4) */ } IIR_TypeDef; /** * @brief TIMER Registers Structure */ typedef struct { __IOM uint32_t CR; /*!< Address offset: 0x00: Timer Counter Control Register */ __IOM uint32_t CCCR; /*!< Address offset: 0x04: Timer Capture Compare Control Register */ __IOM uint32_t EGR; /*!< Address offset: 0x08: Timer Event Generation Register */ __IOM uint32_t ICFR; /*!< Address offset: 0x0C: Timer Input Capture Filter Register */ __IOM uint32_t ISR; /*!< Address offset: 0x10: Timer Interrupt Status Register */ __IM uint32_t RESERVED[3]; /*!< Reserved */ __IOM uint32_t CSVR; /*!< Address offset: 0x20: Timer Counter Start Register */ __IOM uint32_t CEVR; /*!< Address offset: 0x24: Timer Counter End Register */ __IOM uint32_t CCR; /*!< Address offset: 0x28: Timer Capture Compare Register */ __IOM uint32_t PSCR; /*!< Address offset: 0x2C: Timer Prescaler Register */ __IOM uint32_t CNTR; /*!< Address offset: 0x30: Timer Counter Register */ __IOM uint32_t ETER; /*!< Address offset: 0x34: Timer Export Trigger Event Register */ } TMR_TypeDef; /** * @brief TIMERGRP (Timer Group Sync Register) Registers Structure */ typedef struct { __IOM uint32_t SYNCR; /*!< Timer Group Sync Register */ } TMRGRP_TypeDef; /** * @brief UART Registers Structure */ typedef struct { union { __IOM uint32_t RBR; /*!< Address offset: 0x00: Receive Buffer Register */ __IOM uint32_t THR; /*!< Address offset: 0x00: Transmit Holding Register */ __IOM uint32_t DLL; /*!< Address offset: 0x00: Divisor Latch Low */ }; union { __IOM uint32_t DLH; /*!< Address offset: 0x04: Divisor Latch High */ __IOM uint32_t IER; /*!< Address offset: 0x04: Interrupt Enable Register */ }; union { __IOM uint32_t IIR; /*!< Address offset: 0x08: Interrupt Identity Register */ __IOM uint32_t FCR; /*!< Address offset: 0x08: FIFO Control Register */ }; __IOM uint32_t LCR; /*!< Address offset: 0x0C: Line Control Register */ __IM uint32_t RESERVED0; /*!< Address offset: 0x10: Reserved */ __IOM uint32_t LSR; /*!< Address offset: 0x14: Line Status Register */ __IM uint32_t RESERVED1[25]; /*!< Address offset: 0x18~0x78: Reserved */ __IOM uint32_t USR; /*!< Address offset: 0x7C: UART Status Register */ __IOM uint32_t TFL; /*!< Address offset: 0x80: Transmit FIFO Level */ __IOM uint32_t RFL; /*!< Address offset: 0x84: Receive FIFO Level */ __IM uint32_t RESERVED2[7]; /*!< Address offset: 0x88~0xA0: Reserved */ __IOM uint32_t HTX; /*!< Address offset: 0xA4: Halt TX */ __IM uint32_t RESERVED3; /*!< Address offset: 0xA8: Reserved */ __IOM uint32_t TCR; /*!< Address offset: 0xAC: Transceiver Control Register */ __IOM uint32_t DE_EN; /*!< Address offset: 0xB0: Driver Output Enable Register */ __IOM uint32_t RE_EN; /*!< Address offset: 0xB4: Receiver Output Enable Register */ __IOM uint32_t DET; /*!< Address offset: 0xB8: Driver Output Enable Timing Register */ __IOM uint32_t TAT; /*!< Address offset: 0xBC: TurnAround Timing Register */ __IOM uint32_t DLF; /*!< Address offset: 0xC0: Divisor Latch Fraction Register */ __IOM uint32_t RAR; /*!< Address offset: 0xC4: Receive Address Register */ __IOM uint32_t TAR; /*!< Address offset: 0xC8: Transmit Address Register */ __IOM uint32_t LCR_EXT; /*!< Address offset: 0xCC: Line Extended Control Register */ } UART_TypeDef; /** * @brief DMA Channel Numbers */ #define DMA_CHN_NB 2 /** * @brief DMA Channel */ typedef struct { __IO uint32_t SAR; /*!< Address offset: 0x00: DMA Channel Source Address Register */ __I uint32_t RESERVED0; /*!< Address offset: 0x04: Reserved */ __IO uint32_t DAR; /*!< Address offset: 0x08: DMA Channel Destination Address Register */ __I uint32_t RESERVED1[3]; /*!< Address offset: 0x0C~0x14: Reserved */ __IO uint32_t CR0; /*!< Address offset: 0x18: DMA Channel Control Register0 */ __IO uint32_t CR1; /*!< Address offset: 0x1C: DMA Channel Control Register1 */ __I uint32_t RESERVED2[8]; /*!< Address offset: 0x20~0x3C: Reserved */ __IO uint32_t CR2; /*!< Address offset: 0x40: DMA Channel Config Register0 */ __IO uint32_t CR3; /*!< Address offset: 0x44: DMA Channel Config Register1 */ __IO uint32_t RESERVED3[4]; /*!< Address offset: 0x48~0x54: Reserved */ } DMA_CH_TypeDef; /** * @brief DMA Registers Structure */ typedef struct { DMA_CH_TypeDef CH[DMA_CHN_NB]; /*!< DMA Channel control Register */ __IM uint32_t RESERVED4[132]; /*!< Reserved */ __IOM uint32_t TSR; /*!< Address offset: 0x2C0: DMA Tranfer Status Register */ __IM uint32_t RESERVED5; /*!< Reserved */ __IOM uint32_t BTSR; /*!< Address offset: 0x2C8: DMA Block Tranfer Status Register */ __IM uint32_t RESERVED6; /*!< Reserved */ __IOM uint32_t STSR; /*!< Address offset: 0x2D0: DMA Source Transfer Status Register */ __IM uint32_t RESERVED7; /*!< Reserved */ __IOM uint32_t DTSR; /*!< Address offset: 0x2D8: DMA Destination Transfer Status Register */ __IM uint32_t RESERVED8; /*!< Reserved */ __IOM uint32_t TESR; /*!< Address offset: 0x2E0: DMA Transfer Error Status Register */ __IM uint32_t RESERVED9; /*!< Reserved */ __IOM uint32_t TIPR; /*!< Address offset: 0x2E8: DMA Transfer Interrupt Pending Register */ __IM uint32_t RESERVED10; /*!< Reserved */ __IOM uint32_t BTIPR; /*!< Address offset: 0x2F0: DMA Block Transfer Interrupt Pending Register */ __IM uint32_t RESERVED11; /*!< Reserved */ __IOM uint32_t STIPR; /*!< Address offset: 0x2F8: DMA Source Transfer Interrupt Pending Register */ __IM uint32_t RESERVED12; /*!< Reserved */ __IOM uint32_t DTIPR; /*!< Address offset: 0x300: DMA Destination Transfer Interrupt Pending Register */ __IM uint32_t RESERVED13; /*!< Reserved */ __IOM uint32_t TEIPR; /*!< Address offset: 0x308: DMA Transfer Error Interrupt Pending Register */ __IM uint32_t RESERVED14; /*!< Reserved */ __IOM uint32_t TIMR; /*!< Address offset: 0x310: DMA Transfer Interrupt Mask Register */ __IM uint32_t RESERVED15; /*!< Reserved */ __IOM uint32_t BTIMR; /*!< Address offset: 0x318: DMA Block Transfer Interrupt Mask Register */ __IM uint32_t RESERVED16; /*!< Reserved */ __IOM uint32_t STIMR; /*!< Address offset: 0x320: DMA Source Transfer IntClear Register */ __IM uint32_t RESERVED17; /*!< Reserved */ __IOM uint32_t DTIMR; /*!< Address offset: 0x328: DMA Destination Transfer Interrupt Mask Register */ __IM uint32_t RESERVED18; /*!< Reserved */ __IOM uint32_t TEIMR; /*!< Address offset: 0x330: DMA Transfer Error Interrupt Mask Register */ __IM uint32_t RESERVED19; /*!< Reserved */ __IOM uint32_t TCR; /*!< Address offset: 0x338: DMA Transfer Clear Register */ __IM uint32_t RESERVED20; /*!< Reserved */ __IOM uint32_t BTCR; /*!< Address offset: 0x340: DMA Block Transfer Clear Register */ __IM uint32_t RESERVED21; /*!< Reserved */ __IOM uint32_t STCR; /*!< Address offset: 0x348: DMA Source Transfer Clear Register */ __IM uint32_t RESERVED22; /*!< Reserved */ __IOM uint32_t DTCR; /*!< Address offset: 0x350: DMA Destination Transfer Clear Register */ __IM uint32_t RESERVED23; /*!< Reserved */ __IOM uint32_t TECR; /*!< Address offset: 0x358: DMA Transfer Error Clear Register */ __IM uint32_t RESERVED24[15]; /*!< Reserved */ __IOM uint32_t CR0; /*!< Address offset: 0x398: DMA Control Register0 */ __IM uint32_t RESERVED25; /*!< Reserved */ __IOM uint32_t CR1; /*!< Address offset: 0x3A0: DMA Control Register1 */ } DMA_TypeDef; /** * @brief ADC DMA */ typedef struct { __IO uint32_t TCR; /*!< Address offset: 0x110: ADC Transfer Control Register */ __IO uint32_t TAR; /*!< Address offset: 0x114: ADC Transfer Address Register */ __I uint32_t RESERVED; /*!< Reserved */ __IO uint32_t TLR; /*!< Address offset: 0x11C: ADC Transfer Length Register */ } ADC_DMA_TypeDef; /** * @brief Analog to Digital Converter (ADC) Registers Structure */ typedef struct { __IO uint32_t CR0; /*!< Address offset: 0x00 : ADC Control Register 0 */ __IO uint32_t CR1; /*!< Address offset: 0x04 : ADC Control Register 1 */ __IO uint32_t CR2; /*!< Address offset: 0x08 : ADC Control Register 2 */ __IO uint32_t DIFSEL; /*!< Address offset: 0x0C : ADC Differential Select Register */ __IO uint32_t IER; /*!< Address offset: 0x10 : ADC Interrupt Enable Register */ __IO uint32_t ISR; /*!< Address offset: 0x14 : ADC Interrupt Status Register */ __IO uint32_t SIER; /*!< Address offset: 0x18 : ADC Sample Interrupt Enable Register */ __IO uint32_t SISR; /*!< Address offset: 0x1C : ADC Sample Interrupt Status Register */ __IO uint32_t SMPR0; /*!< Address offset: 0x20 : ADC Sample Time Register 0 */ __IO uint32_t SMPR1; /*!< Address offset: 0x24 : ADC Sample Time Register 1 */ __IO uint32_t CALR0; /*!< Address offset: 0x28 : ADC Calibration Data Register 0 */ __IO uint32_t CALR1; /*!< Address offset: 0x2C : ADC Calibration Data Register 1 */ __IO uint32_t SQR0; /*!< Address offset: 0x30 : ADC Regular Sequence Register 0 */ __IO uint32_t SQR1; /*!< Address offset: 0x34 : ADC Regular Sequence Register 1 */ __IO uint32_t LR; /*!< Address offset: 0x38 : ADC Regular Length Register */ __IO uint32_t DR; /*!< Address offset: 0x3C : ADC Regular Data Register */ __IO uint32_t JSQR; /*!< Address offset: 0x40 : ADC Injected Sequence Register */ __IO uint32_t JLR; /*!< Address offset: 0x44 : ADC Injected Length Register */ __I uint32_t RESERVED0[2]; /*!< Reserved */ __IO uint32_t JDR[4]; /*!< Address offset: 0x50 : ADC Injected Data Register */ __IO uint32_t TR[3]; /*!< Address offset: 0x60 : ADC Watchdog Threshold Register */ __I uint32_t RESERVED1; /*!< Reserved */ __IO uint32_t AWDCR[3]; /*!< Address offset: 0x70 : ADC Watchdog Control Register */ __I uint32_t RESERVED2; /*!< Reserved */ __IO uint32_t OFR[4]; /*!< Address offset: 0x80 : ADC Single-End Offset Register */ __IO uint32_t DOFR[4]; /*!< Address offset: 0x90 : ADC Differential Offset Register */ __IO uint32_t GCR[4]; /*!< Address offset: 0xA0 : ADC Single-End Gain Coeff Register */ __IO uint32_t DGCR[4]; /*!< Address offset: 0xB0 : ADC Channel Data Register */ __IO uint32_t ECR[4]; /*!< Address offset: 0xC0 : ADC Event Control Register */ __I uint32_t CDR[12]; /*!< Address offset: 0xD0 : ADC Differential Gain Coeff Register */ __IO uint32_t HIER; /*!< Address offset: 0x100: ADC Half Interrupt Enable Register */ __IO uint32_t HISR; /*!< Address offset: 0x104: ADC Half Interrupt Status Register */ __IO uint32_t FIER; /*!< Address offset: 0x108: ADC Full Interrupt Enable Register */ __IO uint32_t FISR; /*!< Address offset: 0x10C: ADC Full Interrupt Status Register */ ADC_DMA_TypeDef DMA_CR[12]; /*!< Address offset: 0x110: ADC Transfer Control Register */ } ADC_TypeDef; /** * @brief DAC Channel Numbers */ #define DAC_CHN_NB 4 /** * @brief Digital to Analog Converter Registers Structure */ typedef struct { __IO uint32_t CR[DAC_CHN_NB]; /*!< DAC Control Register */ __IO uint32_t ISR; /*!< DAC Interrupt Status Register */ __IO uint32_t SWTR; /*!< DAC Software Trigger Register */ __I uint32_t RESERVED0[2]; /*!< Reserved */ __IO uint32_t WDR[DAC_CHN_NB]; /*!< DAC Write Data Register */ __IO uint32_t RDR[DAC_CHN_NB]; /*!< DAC Read Data Register */ __IO uint32_t SIDR[DAC_CHN_NB]; /*!< DAC Sawtooth Increment Data Register */ __IO uint32_t SRDR[DAC_CHN_NB]; /*!< DAC Sawtooth Reset Data Register */ } DAC_TypeDef; /** * @brief CMP Channel Number */ #define CMP_CHN_NB 4 /** * @brief Comparator (CMP) Registers Structure */ typedef struct { __IO uint32_t CR[CMP_CHN_NB]; /*!< CMP Control Register */ __IO uint32_t SR; /*!< CMP Status Register */ __IO uint32_t DEBR[CMP_CHN_NB]; /*!< CMP Debounce Register */ } CMP_TypeDef; /** * @brief Electricity Calculate Unit (ECU) Registers Structure */ typedef struct { __IO uint32_t CON; /*!< Address offset: 0x00: ECU Control Register */ __IO uint32_t PRC; /*!< Address offset: 0x04: ECU Exit Event Select Register */ __IO uint32_t SQRT_IN; /*!< Address offset: 0x08: ECU Sqrt Data Input Register */ __I uint32_t SQRT_OUT; /*!< Address offset: 0x0C: ECU Sqrt Data Output Register */ __IO uint32_t V_ADDR1; /*!< Address offset: 0x10: ECU V Data Addr Register */ __IO uint32_t V_ADDR2; /*!< Address offset: 0x14: ECU Register */ __IO uint32_t I_ADDR1; /*!< Address offset: 0x18: ECU I Data Addr Register */ __IO uint32_t I_ADDR2; /*!< Address offset: 0x1C: ECU Register */ __I uint32_t V; /*!< Address offset: 0x20: ECU V Data Read Register */ __I uint32_t I; /*!< Address offset: 0x24: ECU I Data Read Register */ __I uint32_t P; /*!< Address offset: 0x28: ECU P Data Read Register */ __I uint32_t Q; /*!< Address offset: 0x2C: ECU Q Data Read Register */ __I uint32_t S; /*!< Address offset: 0x30: ECU S Data Read Register */ __I uint32_t PF; /*!< Address offset: 0x34: ECU PF Data Read Register */ __I uint32_t F; /*!< Address offset: 0x38: ECU F Data Read Register */ } ECU_TypeDef; /** * @brief HRPWM Master Registers */ typedef struct { __IO uint32_t MCR ; /*!< Address offset: 0x00: HRPWM Master PWM Control Register */ __I uint32_t RESERVED0 ; /*!< Reserved */ __IO uint32_t MISR; /*!< Address offset: 0x08: HRPWM Master PWM Interrupt Status Register */ __IO uint32_t MIER; /*!< Address offset: 0x0C: HRPWM Master PWM Interrupt Enable Register */ __IO uint32_t MCNTR; /*!< Address offset: 0x10: HRPWM Master PWM Counter Register */ __IO uint32_t MPER; /*!< Address offset: 0x14: HRPWM Master Period Value Register */ __IO uint32_t MCMPAR; /*!< Address offset: 0x18: HRPWM Master PWM Cmp A Value Register */ __IO uint32_t MCMPBR; /*!< Address offset: 0x1c: HRPWM Master PWM Cmp B Value Register */ __IO uint32_t MCMPCR; /*!< Address offset: 0x20: HRPWM Master PWM Cmp C Value Register */ __IO uint32_t MCMPDR; /*!< Address offset: 0x24: HRPWM Master PWM Cmp D Value Register */ __I uint32_t RESERVED1[22]; /*!< Reserved */ } HRPWM_MSTR_TypeDef; /** * @brief HRPWM PWMx Registers */ typedef struct { __IO uint32_t CR0; /*!< Address offset: 0x80: HRPWM Hrpwmx Control Register 0 */ __IO uint32_t CR1; /*!< Address offset: 0x84: HRPWM Hrpwmx Control Register 1 */ __IO uint32_t ISR; /*!< Address offset: 0x88: HRPWM Hrpwmx Interrupt Status Register */ __IO uint32_t IER; /*!< Address offset: 0x8C: HRPWM Hrpwmx Interrupt Enable Register */ __IO uint32_t CNTR; /*!< Address offset: 0x90: HRPWM Hrpwmx Counter Register */ __IO uint32_t PERR; /*!< Address offset: 0x94: HRPWM Hrpwmx Period Value Register */ __IO uint32_t CMPAR; /*!< Address offset: 0x98: HRPWM Hrpwmx Cmp A Register */ __IO uint32_t CMPBR; /*!< Address offset: 0x9C: HRPWM Hrpwmx Cmp B Register */ __IO uint32_t CMPCR; /*!< Address offset: 0xA0: HRPWM Hrpwmx Cmp C Register */ __IO uint32_t CMPDR; /*!< Address offset: 0xA4: HRPWM Hrpwmx Cmp D Register */ __IO uint32_t DTR; /*!< Address offset: 0xA8: HRPWM Hrpwmx Dead Time Register */ __IO uint32_t SETAR; /*!< Address offset: 0xAC: HRPWM Hrpwmx Output A Set Register */ __IO uint32_t CLRAR; /*!< Address offset: 0xB0: HRPWM Hrpwmx Output A Clear Register */ __IO uint32_t SETBR; /*!< Address offset: 0xB4: HRPWM Hrpwmx Output B Set Register */ __IO uint32_t CLRBR; /*!< Address offset: 0xB8: HRPWM Hrpwmx Output B Clear Register */ __IO uint32_t EEFR0; /*!< Address offset: 0xBC: HRPWM Hrpwmx External Event Register */ __IO uint32_t EEFR1; /*!< Address offset: 0xC0: HRPWM Hrpwmx External Event5 Register */ __IO uint32_t RSTR; /*!< Address offset: 0xC4: HRPWM Hrpwmx Reset Register */ __IO uint32_t CHPR; /*!< Address offset: 0xC8: HRPWM Hrpwmx Chopper Register */ __IO uint32_t OUTR; /*!< Address offset: 0xCC: HRPWM Hrpwmx Output Register */ __IO uint32_t FLTR; /*!< Address offset: 0xD0: HRPWM Hrpwmx Fault Register */ __I uint32_t RESERVED[11]; /*!< Reserved */ } HRPWM_PWMx_TypeDef; /** * @brief HRPWM Common Registers */ typedef struct { __IO uint32_t CR0; /*!< Address offset: 0x380: HRPWM Control Register 0 */ __IO uint32_t CR1; /*!< Address offset: 0x384: HRPWM Control Register 1 */ __IO uint32_t CR2; /*!< Address offset: 0x388: HRPWM Control Register 2 */ __IO uint32_t ISR; /*!< Address offset: 0x38C: HRPWM Interrupt Status Register */ __IO uint32_t IER; /*!< Address offset: 0x390: HRPWM Interrupt Enable Register */ __IO uint32_t OENR; /*!< Address offset: 0x394: HRPWM Output Enable Register */ __IO uint32_t ODISR; /*!< Address offset: 0x398: HRPWM Output Disable Register */ __IO uint32_t EECR0; /*!< Address offset: 0x39C: HRPWM External Event Register 0 */ __IO uint32_t EECR1; /*!< Address offset: 0x3A0: HRPWM External Event Register 1 */ __IO uint32_t EECR2; /*!< Address offset: 0x3A4: HRPWM External Event Register 2 */ __IO uint32_t ADTR[8]; /*!< Address offset: 0x3A8: HRPWM ADDA Trigger Post Scaler Register */ __IO uint32_t ADPSR; /*!< Address offset: 0x3C8: HRPWM SOC Length Register */ __IO uint32_t DLLCR; /*!< Address offset: 0x3CC: HRPWM DLL Control Register */ __IO uint32_t FLTINR0; /*!< Address offset: 0x3D0: HRPWM Fault Input Register 0 */ __IO uint32_t FLTINR1; /*!< Address offset: 0x3D4: HRPWM Fault Input Register 1 */ __IO uint32_t FLTINR2; /*!< Address offset: 0x3D8: HRPWM Fault Input Register 2 */ __IO uint32_t FLTINR3; /*!< Address offset: 0x3DC: HRPWM Fault Input Register 3 */ } HRPWM_COMMON_TypeDef; /** * @brief High Resolution PWM (HRPWM) Registers Structure */ typedef struct { HRPWM_MSTR_TypeDef Master; /*!< HRPWM Master Registers */ HRPWM_PWMx_TypeDef PWM[6]; /*!< HRPWM PWMx Registers */ HRPWM_COMMON_TypeDef Common; /*!< HRPWM Common Registers */ } HRPWM_TypeDef; /** * @brief USB DMA */ typedef struct __attribute__((packed)) { __IO uint16_t CTRL; /*!< Address offset: 0x00 USB DMA Control Register */ __I uint8_t RESERVED0[2]; /*!< Address offset: 0x02~0x03 Reserverd */ __IO uint32_t ADDR; /*!< Address offset: 0x04 USB DMA Address Register */ __IO uint32_t CNT; /*!< Address offset: 0x08 USB DMA Count Register */ __I uint8_t RESERVED1[4]; /*!< Address offset: 0x0C~0x0F Reserverd */ } USB_DMA; /** * @brief USB Registers Structure */ typedef struct __attribute__((packed)) { /* USB Common Register */ __IO uint8_t FADDR; /*!
= 6010050)) #pragma clang diagnostic pop #elif defined (__GNUC__) /* anonymous unions are enabled by default */ #elif defined (__TMS470__) /* anonymous unions are enabled by default */ #elif defined (__TASKING__) #pragma warning restore #elif defined (__CSMC__) /* anonymous unions are enabled by default */ #else #warning Not supported compiler type #endif /** * @} */ /** * @} */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _TAE32F53XX_H_ */ /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/