at91_us.h
Go to the documentation of this file.00001
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 #ifndef AT91_US_H
00072 #define AT91_US_H
00073
00077
00078 #define US_CR_OFF 0x00000000 ///< USART control register offset.
00079 #define US0_CR (*((reg32_t *)(USART0_BASE + US_CR_OFF))) ///< Channel 0 control register address.
00080 #define US1_CR (*((reg32_t *)(USART1_BASE + US_CR_OFF))) ///< Channel 1 control register address.
00081 #define US_RSTRX 2 ///< Reset receiver.
00082 #define US_RSTTX 3 ///< Reset transmitter.
00083 #define US_RXEN 4 ///< Receiver enable.
00084 #define US_RXDIS 5 ///< Receiver disable.
00085 #define US_TXEN 6 ///< Transmitter enable.
00086 #define US_TXDIS 7 ///< Transmitter disable.
00087 #define US_RSTSTA 8 ///< Reset status bits.
00088 #define US_STTBRK 9 ///< Start break.
00089 #define US_STPBRK 10 ///< Stop break.
00090 #define US_STTTO 11 ///< Start timeout.
00091 #define US_SENDA 12 ///< Send next byte with address bit set.
00092 #define US_RSTIT 13 ///< Reset interations.
00093 #define US_RSTNAK 14 ///< Reset non acknowledge.
00094 #define US_RETTO 15 ///< Rearm time out.
00095 #define US_DTREN 16 ///< Data terminal ready enable.
00096 #define US_DTRDIS 17 ///< Data terminal ready disable.
00097 #define US_RTSEN 18 ///< Request to send enable.
00098 #define US_RTSDIS 19 ///< Request to send disable.
00099
00100
00104
00105 #define US_MR_OFF 0x00000004 ///< USART mode register offset.
00106 #define US0_MR (*((reg32_t *)(USART0_BASE + US_MR_OFF))) ///< Channel 0 mode register address.
00107 #define US1_MR (*((reg32_t *)(USART1_BASE + US_MR_OFF))) ///< Channel 1 mode register address.
00108
00109 #define US_USART_MODE_MASK 0x0000000F ///< USART mode mask.
00110 #define US_USART_MODE_NORMA 0x00000000 ///< Normal.
00111 #define US_USART_MODE_RS485 0x00000001 ///< RS485.
00112 #define US_USART_MODE_HW_HDSH 0x00000002 ///< Hardware handshaking.
00113 #define US_USART_MODE_MODEM 0x00000003 ///< Modem.
00114 #define US_USART_MODE_ISO7816T0 0x00000004 ///< ISO7816 protocol: T=0.
00115 #define US_USART_MODE_ISO7816T1 0x00000006 ///< ISO7816 protocol: T=1.
00116 #define US_USART_MODE_IRDA 0x00000008 ///< IrDA.
00117
00118 #define US_CLKS_MASK 0x00000030 ///< Clock selection mask.
00119 #define US_CLKS_MCK 0x00000000 ///< Master clock.
00120 #define US_CLKS_MCK8 0x00000010 ///< Master clock divided by 8.
00121 #define US_CLKS_SCK 0x00000020 ///< External clock.
00122 #define US_CLKS_SLCK 0x00000030 ///< Slow clock.
00123
00124 #define US_CHRL_MASK 0x000000C0 ///< Masks data length.
00125 #define US_CHRL_5 0x00000000 ///< 5 data bits.
00126 #define US_CHRL_6 0x00000040 ///< 6 data bits.
00127 #define US_CHRL_7 0x00000080 ///< 7 data bits.
00128 #define US_CHRL_8 0x000000C0 ///< 8 data bits.
00129
00130 #define US_SYNC 8 ///< Synchronous mode enable.
00131
00132 #define US_PAR_MASK 0x00000E00 ///< Parity mode mask.
00133 #define US_PAR_EVEN 0x00000000 ///< Even parity.
00134 #define US_PAR_ODD 0x00000200 ///< Odd parity.
00135 #define US_PAR_SPACE 0x00000400 ///< Space parity.
00136 #define US_PAR_MARK 0x00000600 ///< Marked parity.
00137 #define US_PAR_NO 0x00000800 ///< No parity.
00138 #define US_PAR_MULTIDROP 0x00000C00 ///< Multi-drop mode.
00139
00140 #define US_NBSTOP_MASK 0x00003000 ///< Masks stop bit length.
00141 #define US_NBSTOP_1 0x00000000 ///< 1 stop bit.
00142 #define US_NBSTOP_1_5 0x00001000 ///< 1.5 stop bits.
00143 #define US_NBSTOP_2 0x00002000 ///< 2 stop bits.
00144
00145 #define US_CHMODE_MASK 0x0000C000 ///< Channel mode mask.
00146 #define US_CHMODE_NORMAL 0x00000000 ///< Normal mode.
00147 #define US_CHMODE_AUTOMATIC_ECHO 0x00004000 ///< Automatic echo.
00148 #define US_CHMODE_LOCAL_LOOPBACK 0x00008000 ///< Local loopback.
00149 #define US_CHMODE_REMOTE_LOOPBACK 0x0000C000 ///< Remote loopback.
00150
00151 #define US_MSBF 16 ///< Bit order.
00152 #define US_MODE9 17 ///< 9 bit mode.
00153 #define US_CLKO 18 ///< Clock output select.
00154 #define US_OVER 19 ///< Oversampling mode.
00155 #define US_INACK 20 ///< Inhibit non acknowledge.
00156 #define US_DSNACK 21 ///< Disable successive nack.
00157
00158 #define US_MAX_INTERATION_MASK 0x07000000 ///< Max numer of interation in mode ISO7816 T=0.
00159
00160 #define US_FILTER 28 ///< Infrared receive line filter.
00161
00162
00163
00167
00168 #define US_IER_OFF 0x00000008 ///< USART interrupt enable register offset.
00169 #define US0_IER (*((reg32_t *)(USART0_BASE + US_IER_OFF))) ///< Channel 0 interrupt enable register address.
00170 #define US1_IER (*((reg32_t *)(USART1_BASE + US_IER_OFF))) ///< Channel 1 interrupt enable register address.
00171
00172 #define US_IDR_OFF 0x0000000C ///< USART interrupt disable register offset.
00173 #define US0_IDR (*((reg32_t *)(USART0_BASE + US_IDR_OFF))) ///< Channel 0 interrupt disable register address.
00174 #define US1_IDR (*((reg32_t *)(USART1_BASE + US_IDR_OFF))) ///< Channel 1 interrupt disable register address.
00175
00176 #define US_IMR_OFF 0x00000010 ///< USART interrupt mask register offset.
00177 #define US0_IMR (*((reg32_t *)(USART0_BASE + US_IMR_OFF))) ///< Channel 0 interrupt mask register address.
00178 #define US1_IMR (*((reg32_t *)(USART1_BASE + US_IMR_OFF))) ///< Channel 1 interrupt mask register address.
00179
00180 #define US_CSR_OFF 0x00000014 ///< USART status register offset.
00181 #define US0_CSR (*((reg32_t *)(USART0_BASE + US_CSR_OFF))) ///< Channel 0 status register address.
00182 #define US1_CSR (*((reg32_t *)(USART1_BASE + US_CSR_OFF))) ///< Channel 1 status register address.
00183 #define US_CSR_RI 20 ///< Image of RI input.
00184 #define US_CSR_DSR 21 ///< Image of DSR input.
00185 #define US_CSR_DCD 22 ///< Image of DCD input.
00186 #define US_CSR_CTS 23 ///< Image of CTS input.
00187
00188 #define US_RXRDY 0 ///< Receiver ready.
00189 #define US_TXRDY 1 ///< Transmitter ready.
00190 #define US_RXBRK 2 ///< Receiver break.
00191 #define US_ENDRX 3 ///< End of receiver PDC transfer.
00192 #define US_ENDTX 4 ///< End of transmitter PDC transfer.
00193 #define US_OVRE 5 ///< Overrun error.
00194 #define US_FRAME 6 ///< Framing error.
00195 #define US_PARE 7 ///< Parity error.
00196 #define US_TIMEOUT 8 ///< Receiver timeout.
00197 #define US_TXEMPTY 9 ///< Transmitter empty.
00198 #define US_ITERATION 10 ///< Iteration interrupt enable.
00199 #define US_TXBUFE 11 ///< Buffer empty interrupt enable.
00200 #define US_RXBUFF 12 ///< Buffer full interrupt enable.
00201 #define US_NACK 13 ///< Non acknowledge interrupt enable.
00202 #define US_RIIC 16 ///< Ring indicator input change enable.
00203 #define US_DSRIC 17 ///< Data set ready input change enable.
00204 #define US_DCDIC 18 ///< Data carrier detect input change interrupt enable.
00205 #define US_CTSIC 19 ///< Clear to send input change interrupt enable.
00206
00210
00211 #define US_RHR_OFF 0x00000018 ///< USART receiver holding register offset.
00212 #define US0_RHR (*((reg32_t *)(USART0_BASE + US_RHR_OFF))) ///< Channel 0 receiver holding register address.
00213 #define US1_RHR (*((reg32_t *)(USART1_BASE + US_RHR_OFF))) ///< Channel 1 receiver holding register address.
00214 #define US_RHR_RXCHR_MASK 0x000001FF ///< Last char received if US_RXRDY is set.
00215 #define US_RHR_RXSYNH 15 ///< Received sync.
00216
00217
00221
00222 #define US_THR_OFF 0x0000001C ///< USART transmitter holding register offset.
00223 #define US0_THR (*((reg32_t *)(USART0_BASE + US_THR_OFF))) ///< Channel 0 transmitter holding register address.
00224 #define US1_THR (*((reg32_t *)(USART1_BASE + US_THR_OFF))) ///< Channel 1 transmitter holding register address.
00225 #define US_THR_TXCHR_MASK 0x000001FF ///< Next char to be trasmitted.
00226 #define US_THR_TXSYNH 15 ///< Sync field to be trasmitted.
00227
00228
00232
00233 #define US_BRGR_OFF 0x00000020 ///< USART baud rate register offset.
00234 #define US0_BRGR (*((reg32_t *)(USART0_BASE + US_BRGR_OFF))) ///< Channel 0 baud rate register address.
00235 #define US1_BRGR (*((reg32_t *)(USART1_BASE + US_BRGR_OFF))) ///< Channel 1 baud rate register address.
00236
00237
00241
00242 #define US_RTOR_OFF 0x00000024 ///< USART receiver timeout register offset.
00243 #define US0_RTOR (*((reg32_t *)(USART0_BASE + US_RTOR_OFF))) ///< Channel 0 receiver timeout register address.
00244 #define US1_RTOR (*((reg32_t *)(USART1_BASE + US_RTOR_OFF))) ///< Channel 1 receiver timeout register address.
00245
00246
00250
00251 #define US_TTGR_OFF 0x00000028 ///< USART transmitter time guard register offset.
00252 #define US0_TTGR (*((reg32_t *)(USART0_BASE + US_TTGR_OFF))) ///< Channel 0 transmitter time guard register address.
00253 #define US1_TTGR (*((reg32_t *)(USART1_BASE + US_TTGR_OFF))) ///< Channel 1 transmitter time guard register address.
00254
00255
00259
00260 #define US_FIDI_OFF 0x00000040 ///< USART FI DI ratio register offset.
00261 #define US0_FIDI (*((reg32_t *)(USART0_BASE + US_FIDI_OFF))) ///< Channel 0 FI DI ratio register address.
00262 #define US1_FIDI (*((reg32_t *)(USART1_BASE + US_FIDI_OFF))) ///< Channel 1 FI DI ratio register address.
00263
00264
00268
00269 #define US_NER_OFF 0x00000044 ///< USART error counter register offset.
00270 #define US0_NER (*((reg32_t *)(USART0_BASE + US_NER_OFF))) ///< Channel 0 error counter register address.
00271 #define US1_NER (*((reg32_t *)(USART1_BASE + US_NER_OFF))) ///< Channel 1 error counter register address.
00272
00273
00277
00278 #define US_IF_OFF 0x0000004C ///< USART IrDA filter register offset.
00279 #define US0_IF (*((reg32_t *)(USART0_BASE + US_IF_OFF))) ///< Channel 0 IrDA filter register address.
00280 #define US1_IF (*((reg32_t *)(USART1_BASE + US_IF_OFF))) ///< Channel 1 IrDA filter register address.
00281
00282
00283 #if USART_HAS_PDC
00284
00288
00289 #define US0_RPR (*((reg32_t *)(USART0_BASE + PERIPH_RPR_OFF))) ///< Channel 0 receive pointer register address.
00290 #define US1_RPR (*((reg32_t *)(USART1_BASE + PERIPH_RPR_OFF))) ///< Channel 1 receive pointer register address.
00291
00292
00296
00297 #define US0_RCR (*((reg32_t *)(USART0_BASE + PERIPH_RCR_OFF))) ///< Channel 0 receive counter register address.
00298 #define US1_RCR (*((reg32_t *)(USART1_BASE + PERIPH_RCR_OFF))) ///< Channel 1 receive counter register address.
00299
00300
00304
00305 #define US0_TPR (*((reg32_t *)(USART0_BASE + PERIPH_TPR_OFF))) ///< Channel 0 transmit pointer register address.
00306 #define US1_TPR (*((reg32_t *)(USART1_BASE + PERIPH_TPR_OFF))) ///< Channel 1 transmit pointer register address.
00307
00308
00312
00313 #define US0_TCR (*((reg32_t *)(USART0_BASE + PERIPH_TCR_OFF))) ///< Channel 0 transmit counter register address.
00314 #define US1_TCR (*((reg32_t *)(USART1_BASE + PERIPH_TCR_OFF))) ///< Channel 1 transmit counter register address.
00315
00316
00317 #if defined(PERIPH_RNPR_OFF) && defined(PERIPH_RNCR_OFF)
00318 #define US0_RNPR (*((reg32_t *)(USART0_BASE + PERIPH_RNPR_OFF))) ///< PDC channel 0 receive next pointer register.
00319 #define US1_RNPR (*((reg32_t *)(USART1_BASE + PERIPH_RNPR_OFF))) ///< PDC channel 1 receive next pointer register.
00320 #define US0_RNCR (*((reg32_t *)(USART0_BASE + PERIPH_RNCR_OFF))) ///< PDC channel 0 receive next counter register.
00321 #define US1_RNCR (*((reg32_t *)(USART1_BASE + PERIPH_RNCR_OFF))) ///< PDC channel 1 receive next counter register.
00322 #endif
00323
00324 #if defined(PERIPH_TNPR_OFF) && defined(PERIPH_TNCR_OFF)
00325 #define US0_TNPR (*((reg32_t *)(USART0_BASE + PERIPH_TNPR_OFF))) ///< PDC channel 0 transmit next pointer register.
00326 #define US1_TNPR (*((reg32_t *)(USART1_BASE + PERIPH_TNPR_OFF))) ///< PDC channel 1 transmit next pointer register.
00327 #define US0_TNCR (*((reg32_t *)(USART0_BASE + PERIPH_TNCR_OFF))) ///< PDC channel 0 transmit next counter register.
00328 #define US1_TNCR (*((reg32_t *)(USART1_BASE + PERIPH_TNCR_OFF))) ///< PDC channel 1 transmit next counter register.
00329 #endif
00330
00331 #if defined(PERIPH_PTCR_OFF)
00332 #define US0_PTCR (*((reg32_t *)(USART0_BASE + PERIPH_PTCR_OFF))) ///< PDC channel 0 transfer control register.
00333 #define US1_PTCR (*((reg32_t *)(USART1_BASE + PERIPH_PTCR_OFF))) ///< PDC channel 1 transfer control register.
00334 #endif
00335
00336 #if defined(PERIPH_PTSR_OFF)
00337 #define US0_PTSR (*((reg32_t *)(USART0_BASE + PERIPH_PTSR_OFF))) ///< PDC channel 0 transfer status register.
00338 #define US1_PTSR (*((reg32_t *)(USART1_BASE + PERIPH_PTSR_OFF))) ///< PDC channel 1 transfer status register.
00339 #endif
00340
00341 #endif
00342
00343 #endif