File indexing completed on 2025-05-11 08:22:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #ifndef __AT91RM9200_USART_H__
0024 #define __AT91RM9200_USART_H__
0025
0026 #include <bits.h>
0027
0028
0029 #define US_CR 0x00
0030 #define US_MR 0x04
0031 #define US_IER 0x08
0032 #define US_IDR 0x0C
0033 #define US_IMR 0x10
0034 #define US_SR 0x14
0035 #define US_RHR 0x18
0036 #define US_THR 0x1C
0037 #define US_BRGR 0x20
0038 #define US_RTOR 0x24
0039 #define US_TTGR 0x28
0040 #define US_C1R 0x40
0041 #define US_C2R 0x44
0042 #define US_FNTR 0x48
0043 #define US_IF 0x4C
0044
0045
0046
0047 #define US_CR_RSTRX BIT2
0048 #define US_CR_RSTTX BIT3
0049 #define US_CR_RXEN BIT4
0050 #define US_CR_RXDIS BIT5
0051 #define US_CR_TXEN BIT6
0052 #define US_CR_TXDIS BIT7
0053 #define US_CR_RSTSTA BIT8
0054 #define US_CR_STTBRK BIT9
0055 #define US_CR_STPBRK BIT10
0056 #define US_CR_STTTO BIT11
0057 #define US_CR_SENDA BIT12
0058 #define US_CR_RSTIT BIT13
0059 #define US_CR_RSTNACK BIT14
0060 #define US_CR_RETTO BIT15
0061 #define US_CR_DTREN BIT16
0062 #define US_CR_DTRDIS BIT17
0063 #define US_CR_RTSEN BIT18
0064 #define US_CR_RTSDIS BIT19
0065
0066
0067
0068 #define US_MR_USMODE (0xF << 0)
0069 #define US_MR_USMODE_NORMAL 0
0070 #define US_MR_USMODE_RS485 1
0071 #define US_MR_USMODE_HWHS 2
0072 #define US_MR_USMODE_MODEM 3
0073 #define US_MR_USMODE_ISO7816_T0 4
0074 #define US_MR_USMODE_ISO7816_T1 6
0075 #define US_MR_USMODE_IRDA 8
0076 #define US_MR_USCLKS (3 << 4)
0077 #define US_MR_USCLKS_MCK (0 << 4)
0078 #define US_MR_USCLKS_MCK_DIV8 (1 << 4)
0079 #define US_MR_USCLKS_SCK (3 << 4)
0080 #define US_MR_CHRL (3 << 6)
0081 #define US_MR_CHRL_5 (0 << 6)
0082 #define US_MR_CHRL_6 (1 << 6)
0083 #define US_MR_CHRL_7 (2 << 6)
0084 #define US_MR_CHRL_8 (3 << 6)
0085 #define US_MR_SYNC (1 << 8)
0086 #define US_MR_PAR (7 << 9)
0087 #define US_MR_PAR_EVEN (0 << 9)
0088 #define US_MR_PAR_ODD (1 << 9)
0089 #define US_MR_PAR_SPACE (2 << 9)
0090 #define US_MR_PAR_MARK (3 << 9)
0091 #define US_MR_PAR_NONE (4 << 9)
0092 #define US_MR_PAR_MDROP (6 << 9)
0093 #define US_MR_NBSTOP (3 << 12)
0094 #define US_MR_NBSTOP_1 (0 << 12)
0095 #define US_MR_NBSTOP_1_5 (1 << 12)
0096 #define US_MR_NBSTOP_2 (2 << 12)
0097 #define US_MR_CHMODE (3 << 14)
0098 #define US_MR_CHMODE_NORM (0 << 14)
0099 #define US_MR_CHMODE_AUTO (1 << 14)
0100 #define US_MR_CHMODE_LOC (2 << 14)
0101 #define US_MR_CHMODE_REM (3 << 14)
0102 #define US_MR_MSBF (1 << 16)
0103 #define US_MR_MODE9 (1 << 17)
0104 #define US_MR_CLKO (1 << 18)
0105 #define US_MR_OVER (1 << 19)
0106 #define US_MR_INACK (1 << 20)
0107 #define US_MR_DSNACK (1 << 21)
0108 #define US_MR_MAX_ITER (7 << 24)
0109 #define US_MR_FILTER (1 << 28)
0110
0111
0112
0113
0114
0115 #define US_IER_RXRDY BIT0
0116 #define US_IER_TXRDY BIT1
0117 #define US_IER_RXBRK BIT2
0118 #define US_IER_ENDRX BIT3
0119
0120 #define US_IER_OVRE BIT5
0121 #define US_IER_FRAME BIT6
0122 #define US_IER_PARE BIT7
0123 #define US_IER_TIMEOUT BIT8
0124 #define US_IER_TXEMPTY BIT9
0125 #define US_IER_ITERATION BIT10
0126 #define US_IER_TXBUFE BIT11
0127 #define US_IER_RXBUFF BIT12
0128 #define US_IER_NACK BIT13
0129 #define US_IER_RIIC BIT16
0130 #define US_IER_DSRIC BIT17
0131 #define US_IER_DCDIC BIT18
0132 #define US_IER_CTSIC BIT19
0133 #define US_IER_ALL 0xC0001AFB
0134
0135
0136 #define US_FNTR_NTRST BIT0
0137
0138 typedef struct {
0139 volatile uint32_t cr;
0140 volatile uint32_t mr;
0141 volatile uint32_t ier;
0142 volatile uint32_t idr;
0143 volatile uint32_t imr;
0144 volatile uint32_t sr;
0145 volatile uint32_t rhr;
0146 volatile uint32_t thr;
0147 volatile uint32_t brgr;
0148 volatile uint32_t _res0[7];
0149 volatile uint32_t cidr;
0150 volatile uint32_t exid;
0151 volatile uint32_t fnr;
0152 } at91rm9200_usart_regs_t;
0153
0154 #endif