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