mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
9d836888c2
C files should not be executable.
1362 lines
91 KiB
C
1362 lines
91 KiB
C
/******************************************************************************
|
|
* Filename: hw_uart.h
|
|
* Revised: $Date: 2013-04-30 17:13:44 +0200 (Tue, 30 Apr 2013) $
|
|
* Revision: $Revision: 9943 $
|
|
*
|
|
* Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
|
|
*
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* Neither the name of Texas Instruments Incorporated nor the names of
|
|
* its contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifndef __HW_UART_H__
|
|
#define __HW_UART_H__
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the UART register offsets.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_O_DR 0x00000000 // UART data Important: This
|
|
// register is read-sensitive. See
|
|
// the register description for
|
|
// details. This register is the
|
|
// data register (the interface to
|
|
// the FIFOs). For transmitted
|
|
// data, if the FIFO is enabled,
|
|
// data written to this location is
|
|
// pushed onto the transmit FIFO.
|
|
// If the FIFO is disabled, data is
|
|
// stored in the transmitter
|
|
// holding register (the bottom
|
|
// word of the transmit FIFO). A
|
|
// write to this register initiates
|
|
// a transmission from the UART.
|
|
// For received data, if the FIFO
|
|
// is enabled, the data byte and
|
|
// the 4-bit status (break, frame,
|
|
// parity, and overrun) is pushed
|
|
// onto the 12-bit wide receive
|
|
// FIFO. If the FIFO is disabled,
|
|
// the data byte and status are
|
|
// stored in the receiving holding
|
|
// register (the bottom word of the
|
|
// receive FIFO). The received data
|
|
// can be retrieved by reading this
|
|
// register.
|
|
#define UART_O_RSR 0x00000004 // UART receive status and error
|
|
// clear The RSR/ECR register is
|
|
// the receive status register and
|
|
// error clear register. In
|
|
// addition to the DR register,
|
|
// receive status can also be read
|
|
// from the RSR register. If the
|
|
// status is read from this
|
|
// register, then the status
|
|
// information corresponds to the
|
|
// entry read from DR before
|
|
// reading RSR. The status
|
|
// information for overrun is set
|
|
// immediately when an overrun
|
|
// condition occurs. The RSR
|
|
// register cannot be written.
|
|
// Read-only status register
|
|
#define UART_O_ECR 0x00000004 // UART receive status and error
|
|
// clear The RSR/ECR register is
|
|
// the receive status
|
|
// register/error clear register. A
|
|
// write of any value to the ECR
|
|
// register clears the framing,
|
|
// parity, break, and overrun
|
|
// errors. All the bits are cleared
|
|
// on reset. Write-only error clear
|
|
// register
|
|
#define UART_O_FR 0x00000018 // UART flag The FR register is
|
|
// the flag register. After reset,
|
|
// the TXFF, RXFF, and BUSY bits
|
|
// are 0, and TXFE and RXFE bits
|
|
// are 1. The CTS bit indicate the
|
|
// modem flow control. Note that
|
|
// the modem bits are only
|
|
// implemented on UART1 and are
|
|
// tied inactive on UART0. Due to
|
|
// this difference, the reset state
|
|
// of the UART0 FR register is
|
|
// 0x90, while UART1 FR register
|
|
// reset state 0x197 .
|
|
#define UART_O_ILPR 0x00000020 // UART IrDA low-power register
|
|
// The ILPR register stores the
|
|
// 8-bit low-power counter divisor
|
|
// value used to derive the
|
|
// low-power SIR pulse width clock
|
|
// by dividing down the system
|
|
// clock (SysClk). All the bits are
|
|
// cleared when reset. The internal
|
|
// IrLPBaud16 clock is generated by
|
|
// dividing down SysClk according
|
|
// to the low-power divisor value
|
|
// written to ILPR. The duration of
|
|
// SIR pulses generated when
|
|
// low-power mode is enabled is
|
|
// three times the period of the
|
|
// IrLPBaud16 clock. The low-power
|
|
// divisor value is calculated as
|
|
// follows: ILPDVSR = SysClk /
|
|
// FIrLPBaud16 where FIrLPBaud16 is
|
|
// nominally 1.8432 MHz The divisor
|
|
// must be programmed such that
|
|
// FIrLPBaud16 is in the range 1.42
|
|
// MHz to 2.12 MHz, resulting in a
|
|
// low-power pulse duration of
|
|
// 1.41-2.11 us (three times the
|
|
// period of IrLPBaud16). The
|
|
// minimum frequency of IrLPBaud16
|
|
// ensures that pulses less than
|
|
// one period of IrLPBaud16 are
|
|
// rejected, but pulses greater
|
|
// than 1.4 us are accepted as
|
|
// valid pulses. Note: Zero is an
|
|
// illegal value. Programming a
|
|
// zero value results in no
|
|
// IrLPBaud16 pulses being
|
|
// generated.
|
|
#define UART_O_IBRD 0x00000024 // UART integer baud-rate divisor
|
|
// The IBRD register is the integer
|
|
// part of the baud-rate divisor
|
|
// value. All the bits are cleared
|
|
// on reset. The minimum possible
|
|
// divide ratio is 1 (when IBRD =
|
|
// 0), in which case the FBRD
|
|
// register is ignored. When
|
|
// changing the IBRD register, the
|
|
// new value does not take effect
|
|
// until transmission or reception
|
|
// of the current character is
|
|
// complete. Any changes to the
|
|
// baud-rate divisor must be
|
|
// followed by a write to the LCRH
|
|
// register.
|
|
#define UART_O_FBRD 0x00000028 // UART fractional baud-rate
|
|
// divisor The FBRD register is the
|
|
// fractional part of the baud-rate
|
|
// divisor value. All the bits are
|
|
// cleared on reset. When changing
|
|
// the FBRD register, the new value
|
|
// does not take effect until
|
|
// transmission or reception of the
|
|
// current character is complete.
|
|
// Any changes to the baud-rate
|
|
// divisor must be followed by a
|
|
// write to the LCRH register.
|
|
#define UART_O_LCRH 0x0000002C // UART line control The LCRH
|
|
// register is the line control
|
|
// register. Serial parameters such
|
|
// as data length, parity, and stop
|
|
// bit selection are implemented in
|
|
// this register. When updating the
|
|
// baud-rate divisor (IBRD and/or
|
|
// IFRD), the LCRH register must
|
|
// also be written. The write
|
|
// strobe for the baud-rate divisor
|
|
// registers is tied to the LCRH
|
|
// register.
|
|
#define UART_O_CTL 0x00000030 // UART control The CTL register
|
|
// is the control register. All the
|
|
// bits are cleared on reset except
|
|
// for the transmit enable (TXE)
|
|
// and receive enable (RXE) bits,
|
|
// which are set. To enable the
|
|
// UART module, the UARTEN bit must
|
|
// be set. If software requires a
|
|
// configuration change in the
|
|
// module, the UARTEN bit must be
|
|
// cleared before the configuration
|
|
// changes are written. If the UART
|
|
// is disabled during a transmit or
|
|
// receive operation, the current
|
|
// transaction is completed before
|
|
// the UART stopping. Note: The
|
|
// UARTCTL register should not be
|
|
// changed while the UART is
|
|
// enabled or else the results are
|
|
// unpredictable. The following
|
|
// sequence is recommended for
|
|
// making changes to the UARTCTL
|
|
// register: 1. Disable the UART.
|
|
// 2. Wait for the end of
|
|
// transmission or reception of the
|
|
// current character. 3. Flush the
|
|
// transmit FIFO by clearing bit 4
|
|
// (FEN) in the line control
|
|
// register (UARTLCRH). 4.
|
|
// Reprogram the control register.
|
|
// 5. Enable the UART.
|
|
#define UART_O_IFLS 0x00000034 // UART interrupt FIFO level
|
|
// select The IFLS register is the
|
|
// interrupt FIFO level select
|
|
// register. This register can be
|
|
// used to define the FIFO level at
|
|
// which the TXRIS and RXRIS bits
|
|
// in the RIS register are
|
|
// triggered. The interrupts are
|
|
// generated based on a transition
|
|
// through a level rather than
|
|
// being based on the level. That
|
|
// is, the interrupts are generated
|
|
// when the fill level progresses
|
|
// through the trigger level. For
|
|
// example, if the receive trigger
|
|
// level is set to the half-way
|
|
// mark, the interrupt is triggered
|
|
// as the module is receiving the
|
|
// 9th character. Out of reset, the
|
|
// TXIFLSEL and RXIFLSEL bits are
|
|
// configured so that the FIFOs
|
|
// trigger an interrupt at the
|
|
// half-way mark.
|
|
#define UART_O_IM 0x00000038 // UART interrupt mask The IM
|
|
// register is the interrupt mask
|
|
// set/clear register. On a read,
|
|
// this register gives the current
|
|
// value of the mask on the
|
|
// relevant interrupt. Setting a
|
|
// bit allows the corresponding raw
|
|
// interrupt signal to be routed to
|
|
// the interrupt controller.
|
|
// Clearing a bit prevents the raw
|
|
// interrupt signal from being sent
|
|
// to the interrupt controller.
|
|
#define UART_O_RIS 0x0000003C // UART raw interrupt status The
|
|
// RIS register is the raw
|
|
// interrupt status register. On a
|
|
// read, this register gives the
|
|
// current raw status value of the
|
|
// corresponding interrupt. A write
|
|
// has no effect. Note that the HW
|
|
// modem flow control bits are only
|
|
// implemented on UART1 and are
|
|
// tied inactive on UART0.
|
|
#define UART_O_MIS 0x00000040 // UART masked interrupt status
|
|
// The MIS register is the masked
|
|
// interrupt status register. On a
|
|
// read, this register gives the
|
|
// current masked status value of
|
|
// the corresponding interrupt. A
|
|
// write has no effect.
|
|
#define UART_O_ICR 0x00000044 // UART interrupt clear The ICR
|
|
// register is the interrupt clear
|
|
// register. On a write of 1, the
|
|
// corresponding interrupt (both
|
|
// raw interrupt and masked
|
|
// interrupt, if enabled) is
|
|
// cleared. A write of 0 has no
|
|
// effect.
|
|
#define UART_O_DMACTL 0x00000048 // UART DMA control The DMACTL
|
|
// register is the DMA control
|
|
// register.
|
|
#define UART_O_LCTL 0x00000090 // UART LIN control The LCTL
|
|
// register is the configures the
|
|
// operation of the UART when in
|
|
// LIN mode.
|
|
#define UART_O_LSS 0x00000094 // LIN snap shot The LSS register
|
|
// captures the free-running timer
|
|
// value when either the sync edge
|
|
// 1 or the sync edge 5 is detected
|
|
// in LIN mode.
|
|
#define UART_O_LTIM 0x00000098 // UART LIN timer The LTIM
|
|
// register contains the current
|
|
// timer value for the free-running
|
|
// timer that is used to calculate
|
|
// the baud rate when in LIN slave
|
|
// mode. The value in this register
|
|
// is used along with the value in
|
|
// the UART LIN snap shot (LSS)
|
|
// register to adjust the baud rate
|
|
// to match that of the master.
|
|
#define UART_O_NINEBITADDR 0x000000A4 // UART 9-bit self address The
|
|
// NINEBITADDR register is used to
|
|
// write the specific address that
|
|
// should be matched with the
|
|
// receiving byte when the 9-bit
|
|
// address mask (NINEBITAMASK) is
|
|
// set to 0xFF. This register is
|
|
// used in conjunction with
|
|
// NINEBITAMASK to form a match for
|
|
// address-byte received.
|
|
#define UART_O_NINEBITAMASK 0x000000A8 // UART 9-bit self address mask
|
|
// The NINEBITAMASK register is
|
|
// used to enable the address mask
|
|
// for 9-bit mode. The lower
|
|
// address bits are masked to
|
|
// create a range of address to be
|
|
// matched with the received
|
|
// address byte.
|
|
#define UART_O_PP 0x00000FC0 // UART peripheral properties The
|
|
// PP register provides information
|
|
// regarding the properties of the
|
|
// UART module.
|
|
#define UART_O_CC 0x00000FC8 // UART clock configuration The CC
|
|
// register controls the baud and
|
|
// system clocks sources for the
|
|
// UART module. For more
|
|
// information, see the section
|
|
// called "Baud-Rate Generation".
|
|
// Note: If the PIOSC is used for
|
|
// the UART baud clock, the system
|
|
// clock frequency must be at least
|
|
// 9 MHz in run mode.
|
|
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_DR register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_DR_OE 0x00000800 // UART overrun error 1: New data
|
|
// was received when the FIFO was
|
|
// full, resulting in data loss. 0:
|
|
// No data has been lost due to a
|
|
// FIFO overrun.
|
|
#define UART_DR_OE_M 0x00000800
|
|
#define UART_DR_OE_S 11
|
|
#define UART_DR_BE 0x00000400 // UART break error 1: A break
|
|
// condition has been detected,
|
|
// indicating that the receive data
|
|
// input was held low for longer
|
|
// than a full-word transmission
|
|
// time (defined as start, data,
|
|
// parity, and stop bits). 0: No
|
|
// break condition has occurred. In
|
|
// FIFO mode, this error is
|
|
// associated with the character at
|
|
// the top of the FIFO. When a
|
|
// break occurs, only the one 0
|
|
// character is loaded into the
|
|
// FIFO. The next character is only
|
|
// enabled after the received data
|
|
// input goes to a 1 (marking
|
|
// state), and the next valid start
|
|
// bit is received.
|
|
#define UART_DR_BE_M 0x00000400
|
|
#define UART_DR_BE_S 10
|
|
#define UART_DR_PE 0x00000200 // UART parity error 1: The parity
|
|
// of the received data character
|
|
// does not match the parity
|
|
// defined by bits 2 and 7 of the
|
|
// UARTLCRH register 0: No parity
|
|
// error has occurred. In FIFO
|
|
// mode, this error is associated
|
|
// with the character at the top of
|
|
// the FIFO.
|
|
#define UART_DR_PE_M 0x00000200
|
|
#define UART_DR_PE_S 9
|
|
#define UART_DR_FE 0x00000100 // UART framing error 1: The
|
|
// received character does not have
|
|
// a valid stop bit (a valid stop
|
|
// bit is 1). 0: No framing error
|
|
// has occurred.
|
|
#define UART_DR_FE_M 0x00000100
|
|
#define UART_DR_FE_S 8
|
|
#define UART_DR_DATA_M 0x000000FF // Data transmitted or received
|
|
// Data that is to be transmitted
|
|
// via the UART is written to this
|
|
// field. When read, this field
|
|
// contains the data that was
|
|
// received by the UART.
|
|
#define UART_DR_DATA_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_RSR register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_RSR_OE 0x00000008 // UART overrun error 1: New data
|
|
// was received when the FIFO was
|
|
// full, resulting in data loss. 0:
|
|
// No data has been lost due to a
|
|
// FIFO overrun. This bit is
|
|
// cleared by a write to UARTECR.
|
|
// The FIFO contents remain valid
|
|
// because no further data is
|
|
// written when the FIFO is full,
|
|
// only the contents of the shift
|
|
// register are overwritten. The
|
|
// CPU must read the data in order
|
|
// to empty the FIFO.
|
|
#define UART_RSR_OE_M 0x00000008
|
|
#define UART_RSR_OE_S 3
|
|
#define UART_RSR_BE 0x00000004 // UART break error 1: A break
|
|
// condition has been detected,
|
|
// indicating that the receive data
|
|
// input was held low for longer
|
|
// than a full-word transmission
|
|
// time (defined as start, data,
|
|
// parity, and stop bits). 0: No
|
|
// break condition has occurred.
|
|
// This bit is cleared to 0 by a
|
|
// write to UARTECR. In FIFO mode,
|
|
// this error is associated with
|
|
// the character at the top of the
|
|
// FIFO. When a break occurs, only
|
|
// one 0 character is loaded into
|
|
// the FIFO. The next character is
|
|
// only enabled after the receive
|
|
// data input goes to a 1 (marking
|
|
// state) and the next valid start
|
|
// bit is received.
|
|
#define UART_RSR_BE_M 0x00000004
|
|
#define UART_RSR_BE_S 2
|
|
#define UART_RSR_PE 0x00000002 // UART parity error 1: The parity
|
|
// of the received data character
|
|
// does not match the parity
|
|
// defined by bits 2 and 7 of the
|
|
// UARTLCRH register. 0: No parity
|
|
// error has occurred. This bit is
|
|
// cleared to 0 by a write to
|
|
// UARTECR.
|
|
#define UART_RSR_PE_M 0x00000002
|
|
#define UART_RSR_PE_S 1
|
|
#define UART_RSR_FE 0x00000001 // UART framing error 1: The
|
|
// received character does not have
|
|
// a valid stop bit (a valid stop
|
|
// bit is 1). 0: No framing error
|
|
// has occurred. This bit is
|
|
// cleared to 0 by a write to
|
|
// UARTECR. In FIFO mode, this
|
|
// error is associated with the
|
|
// character at the top of the
|
|
// FIFO.
|
|
#define UART_RSR_FE_M 0x00000001
|
|
#define UART_RSR_FE_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_ECR register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_ECR_DATA_M 0x000000FF // Error clear A write to this
|
|
// register of any data clears the
|
|
// framing, parity, break, and
|
|
// overrun flags.
|
|
#define UART_ECR_DATA_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_FR register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_FR_TXFE 0x00000080 // UART transmit FIFO empty The
|
|
// meaning of this bit depends on
|
|
// the state of the FEN bit in the
|
|
// UARTLCRH register. 1: If the
|
|
// FIFO is disabled (FEN is 0), the
|
|
// transmit holding register is
|
|
// empty. If the FIFO is enabled
|
|
// (FEN is 1), the transmit FIFO is
|
|
// empty. 0: The transmitter has
|
|
// data to transmit.
|
|
#define UART_FR_TXFE_M 0x00000080
|
|
#define UART_FR_TXFE_S 7
|
|
#define UART_FR_RXFF 0x00000040 // UART receive FIFO full The
|
|
// meaning of this bit depends on
|
|
// the state of the FEN bit in the
|
|
// UARTLCRH register. 1: If the
|
|
// FIFO is disabled (FEN is 0), the
|
|
// receive holding register is
|
|
// full. If the FIFO is enabled
|
|
// (FEN is 1), the receive FIFO is
|
|
// full. 0: The receiver can
|
|
// receive data.
|
|
#define UART_FR_RXFF_M 0x00000040
|
|
#define UART_FR_RXFF_S 6
|
|
#define UART_FR_TXFF 0x00000020 // UART transmit FIFO full The
|
|
// meaning of this bit depends on
|
|
// the state of the FEN bit in the
|
|
// UARTLCRH register. 1: If the
|
|
// FIFO is disabled (FEN is 0), the
|
|
// transmit holding register is
|
|
// full. If the FIFO is enabled
|
|
// (FEN is 1), the transmit FIFO is
|
|
// full. 0: The transmitter is not
|
|
// full.
|
|
#define UART_FR_TXFF_M 0x00000020
|
|
#define UART_FR_TXFF_S 5
|
|
#define UART_FR_RXFE 0x00000010 // UART receive FIFO empty The
|
|
// meaning of this bit depends on
|
|
// the state of the FEN bit in the
|
|
// UARTLCRH register. 1: If the
|
|
// FIFO is disabled (FEN is 0), the
|
|
// receive holding register is
|
|
// empty. If the FIFO is enabled
|
|
// (FEN is 1), the receive FIFO is
|
|
// empty. 0: The receiver is not
|
|
// empty.
|
|
#define UART_FR_RXFE_M 0x00000010
|
|
#define UART_FR_RXFE_S 4
|
|
#define UART_FR_BUSY 0x00000008 // UART busy 1: The UART is busy
|
|
// transmitting data. This bit
|
|
// remains set until the complete
|
|
// byte, including all stop bits,
|
|
// has been sent from the shift
|
|
// register. 0: The UART is not
|
|
// busy. This bit is set as soon as
|
|
// the transmit FIFO becomes
|
|
// non-empty (regardless of whether
|
|
// UART is enabled).
|
|
#define UART_FR_BUSY_M 0x00000008
|
|
#define UART_FR_BUSY_S 3
|
|
#define UART_FR_CTS 0x00000001 // Clear to send (UART1 only,
|
|
// reserved for UART0). 1: The
|
|
// U1CTS signal is asserted. 0: The
|
|
// U1CTS signal is not asserted.
|
|
#define UART_FR_CTS_M 0x00000001
|
|
#define UART_FR_CTS_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_ILPR register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_ILPR_ILPDVSR_M 0x000000FF // IrDA low-power divisor This
|
|
// field contains the 8-bit
|
|
// low-power divisor value.
|
|
#define UART_ILPR_ILPDVSR_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_IBRD register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_IBRD_DIVINT_M 0x0000FFFF // Integer baud-rate divisor
|
|
#define UART_IBRD_DIVINT_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_FBRD register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_FBRD_DIVFRAC_M 0x0000003F // Fractional baud-rate divisor
|
|
#define UART_FBRD_DIVFRAC_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_LCRH register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_LCRH_SPS 0x00000080 // UART stick parity select When
|
|
// bits 1, 2, and 7 of UARTLCRH are
|
|
// set, the parity bit is
|
|
// transmitted and checked as a 0.
|
|
// When bits 1 and 7 are set and 2
|
|
// is cleared, the parity bit is
|
|
// transmitted and checked as a 1.
|
|
// When this bit is cleared, stick
|
|
// parity is disabled.
|
|
#define UART_LCRH_SPS_M 0x00000080
|
|
#define UART_LCRH_SPS_S 7
|
|
#define UART_LCRH_WLEN_M 0x00000060 // UART word length The bits
|
|
// indicate the number of data bits
|
|
// transmitted or received in a
|
|
// frame as follows: 0x0: 5 bits
|
|
// (default) 0x1: 6 bits 0x2: 7
|
|
// bits 0x3: 8 bits
|
|
#define UART_LCRH_WLEN_S 5
|
|
#define UART_LCRH_FEN 0x00000010 // UART enable FIFOs 1: The
|
|
// transmit and receive FIFObuffers
|
|
// are enabled (FIFOmode). 0: The
|
|
// FIFOs are disabled (Character
|
|
// mode). The FIFOs become
|
|
// 1-byte-deep holding registers.
|
|
#define UART_LCRH_FEN_M 0x00000010
|
|
#define UART_LCRH_FEN_S 4
|
|
#define UART_LCRH_STP2 0x00000008 // UART two stop bits select 1:
|
|
// Two stop bits are transmitted at
|
|
// the end of a frame. The receive
|
|
// logic does not check for two
|
|
// stop bits being received. 0: One
|
|
// stop bit is transmitted at the
|
|
// end of a frame.
|
|
#define UART_LCRH_STP2_M 0x00000008
|
|
#define UART_LCRH_STP2_S 3
|
|
#define UART_LCRH_EPS 0x00000004 // UART even parity select 1: Even
|
|
// parity generation and checking
|
|
// is performed during transmission
|
|
// and reception, which checks for
|
|
// an even number of 1s in data and
|
|
// parity bits. 0: Odd parity is
|
|
// performed, which checks for an
|
|
// odd number of 1s. This bit has
|
|
// no effect when parity is
|
|
// disabled by the PEN bit.
|
|
#define UART_LCRH_EPS_M 0x00000004
|
|
#define UART_LCRH_EPS_S 2
|
|
#define UART_LCRH_PEN 0x00000002 // UART parity enable 1: Parity
|
|
// checking and generation is
|
|
// enabled. 0: Parity is disabled
|
|
// and no parity bit is added to
|
|
// the data frame.
|
|
#define UART_LCRH_PEN_M 0x00000002
|
|
#define UART_LCRH_PEN_S 1
|
|
#define UART_LCRH_BRK 0x00000001 // UART send break 1: A low level
|
|
// is continually output on the
|
|
// UnTx signal, after completing
|
|
// transmission of the current
|
|
// character. For the proper
|
|
// execution of the break command,
|
|
// software must set this bit for
|
|
// at least two frames (character
|
|
// periods). 0: Normal use
|
|
#define UART_LCRH_BRK_M 0x00000001
|
|
#define UART_LCRH_BRK_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_CTL register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_CTL_CTSEN 0x00008000 // U1CTS Hardware Flow control
|
|
// enable 1: When U1CTS input is
|
|
// asserted, UART1 can transmit
|
|
// data. 0: U1CTS does not control
|
|
// UART1 data transmission. Note:
|
|
// Only used for UART1. This bit is
|
|
// reserved RO for UART0.
|
|
#define UART_CTL_CTSEN_M 0x00008000
|
|
#define UART_CTL_CTSEN_S 15
|
|
#define UART_CTL_RTSEN 0x00004000 // U1RTS Hardware Flow control
|
|
// enable 1: U1RTS indicates the
|
|
// state of UART1 receive FIFO.
|
|
// U1RTS remains asserted until the
|
|
// preprogrammed watermark level is
|
|
// reached, indicating that the
|
|
// UART1 RXFIFO has no space to
|
|
// store additional characters. 0:
|
|
// U1RTS does not indicate state of
|
|
// UART1 RX FIFO. Note: Only used
|
|
// for UART1. This bit is reserved
|
|
// RO for UART0.
|
|
#define UART_CTL_RTSEN_M 0x00004000
|
|
#define UART_CTL_RTSEN_S 14
|
|
#define UART_CTL_RXE 0x00000200 // UART receive enable 1: The
|
|
// receive section of the UART is
|
|
// enabled. 0: The receive section
|
|
// of the UART is disabled. If the
|
|
// UART is disabled in the middle
|
|
// of a receive, it completes the
|
|
// current character before
|
|
// stopping. Note: To enable
|
|
// reception, the UARTEN bit must
|
|
// also be set.
|
|
#define UART_CTL_RXE_M 0x00000200
|
|
#define UART_CTL_RXE_S 9
|
|
#define UART_CTL_TXE 0x00000100 // UART transmit enable 1: The
|
|
// transmit section of the UART is
|
|
// enabled. 0: The transmit section
|
|
// of the UART is disabled. If the
|
|
// UART is disabled in the middle
|
|
// of a transmission, it completes
|
|
// the current character before
|
|
// stopping. Note: To enable
|
|
// transmission, the UARTEN bit
|
|
// must also be set.
|
|
#define UART_CTL_TXE_M 0x00000100
|
|
#define UART_CTL_TXE_S 8
|
|
#define UART_CTL_LBE 0x00000080 // UART loop back enable 1: The
|
|
// UnTx path is fed through the
|
|
// UnRx path. 0: Normal operation
|
|
#define UART_CTL_LBE_M 0x00000080
|
|
#define UART_CTL_LBE_S 7
|
|
#define UART_CTL_LIN 0x00000040 // LIN mode enable 1: The UART
|
|
// operates in LIN mode. 0: Normal
|
|
// operation
|
|
#define UART_CTL_LIN_M 0x00000040
|
|
#define UART_CTL_LIN_S 6
|
|
#define UART_CTL_HSE 0x00000020 // High-speed enable 0: The UART
|
|
// is clocked using the system
|
|
// clock divided by 16. 1: The UART
|
|
// is clocked using the system
|
|
// clock divided by 8. Note: System
|
|
// clock used is also dependent on
|
|
// the baud-rate divisor
|
|
// configuration (See Universal
|
|
// Asynchronous
|
|
// Receivers/Transmitters -
|
|
// Baud-Rate Generation).
|
|
#define UART_CTL_HSE_M 0x00000020
|
|
#define UART_CTL_HSE_S 5
|
|
#define UART_CTL_EOT 0x00000010 // End of transmission This bit
|
|
// determines the behavior of the
|
|
// TXRIS bit in the UARTRIS
|
|
// register. 1: The TXRIS bit is
|
|
// set only after all transmitted
|
|
// data, including stop bits, have
|
|
// cleared the serializer. 0: The
|
|
// TXRIS bit is set when the
|
|
// transmit FIFO condition
|
|
// specified in UARTIFLS is met.
|
|
#define UART_CTL_EOT_M 0x00000010
|
|
#define UART_CTL_EOT_S 4
|
|
#define UART_CTL_SIRLP 0x00000004 // UART SIR low-power mode This
|
|
// bit selects the IrDA encoding
|
|
// mode. 1: The UART operates in
|
|
// SIR Low-Power mode. Low-level
|
|
// bits are transmitted with a
|
|
// pulse width which is 3 times the
|
|
// period of the IrLPBaud16 input
|
|
// signal, regardless of the
|
|
// selected bit rate. 0: Low-level
|
|
// bits are transmitted as an
|
|
// active high pulse with a width
|
|
// of 3/16th of the bit period.
|
|
// Setting this bit uses less
|
|
// power, but might reduce
|
|
// transmission distances.
|
|
#define UART_CTL_SIRLP_M 0x00000004
|
|
#define UART_CTL_SIRLP_S 2
|
|
#define UART_CTL_SIREN 0x00000002 // UART SIR enable 1: The IrDA SIR
|
|
// block is enabled, and the UART
|
|
// transmits and receives data
|
|
// using SIR protocol. 0: Normal
|
|
// operation.
|
|
#define UART_CTL_SIREN_M 0x00000002
|
|
#define UART_CTL_SIREN_S 1
|
|
#define UART_CTL_UARTEN 0x00000001 // UART enable 1: The UART is
|
|
// enabled. 0: The UART is
|
|
// disabled. If the UART is
|
|
// disabled in the middle of
|
|
// transmission or reception, it
|
|
// completes the current character
|
|
// before stopping.
|
|
#define UART_CTL_UARTEN_M 0x00000001
|
|
#define UART_CTL_UARTEN_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_IFLS register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_IFLS_RXIFLSEL_M 0x00000038 // UART receive interrupt FIFO
|
|
// level select The trigger points
|
|
// for the receive interrupt are as
|
|
// follows: 0x0: RX FIFO >= 1/8
|
|
// full 0x1: RX FIFO >= 1/4 full
|
|
// 0x2: RX FIFO >= 1/2 full
|
|
// (default) 0x3: RX FIFO >= 3/4
|
|
// full 0x4: RX FIFO >= 7/8 full
|
|
// 0x5-0x7: Reserved
|
|
#define UART_IFLS_RXIFLSEL_S 3
|
|
#define UART_IFLS_TXIFLSEL_M 0x00000007 // UART Transmit Interrupt FIFO
|
|
// Level Select The trigger points
|
|
// for the transmit interrupt are
|
|
// as follows: 0x0: TX FIFO <= 7/8
|
|
// empty 0x1: TX FIFO <= 3/4 empty
|
|
// 0x2: TX FIFO <= 1/2 empty
|
|
// (default) 0x3: TX FIFO <= 1/4
|
|
// empty 0x4: TX FIFO <= 1/8 empty
|
|
// 0x5-0x7: Reserved Note: If the
|
|
// EOT bit in UARTCTL is set, the
|
|
// transmit interrupt is generated
|
|
// once the FIFO is completely
|
|
// empty and all data including
|
|
// stop bits have left the transmit
|
|
// serializer. In this case, the
|
|
// setting of TXIFLSEL is ignored.
|
|
#define UART_IFLS_TXIFLSEL_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_IM register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_IM_LME5IM 0x00008000 // LIN mode edge 5 interrupt mask
|
|
// 1: An interrupt is sent to the
|
|
// interrupt controller when the
|
|
// LME5RIS bit in the UARTRIS
|
|
// register is set. 0: The LME5RIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_LME5IM_M 0x00008000
|
|
#define UART_IM_LME5IM_S 15
|
|
#define UART_IM_LME1IM 0x00004000 // LIN mode edge 1 interrupt mask
|
|
// 1: An interrupt is sent to the
|
|
// interrupt controller when the
|
|
// LME1RIS bit in the UARTRIS
|
|
// register is set. 0: The LME1RIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_LME1IM_M 0x00004000
|
|
#define UART_IM_LME1IM_S 14
|
|
#define UART_IM_LMSBIM 0x00002000 // LIN mode sync break interrupt
|
|
// mask 1: An interrupt is sent to
|
|
// the interrupt controller when
|
|
// the LMSBRIS bit in the UARTRIS
|
|
// register is set. 0: The LMSBRIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_LMSBIM_M 0x00002000
|
|
#define UART_IM_LMSBIM_S 13
|
|
#define UART_IM_NINEBITIM 0x00001000 // 9-bit mode interrupt mask 1: An
|
|
// interrupt is sent to the
|
|
// interrupt controller when the
|
|
// 9BITRIS bit in the UARTRIS
|
|
// register is set. 0: The 9BITRIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_NINEBITIM_M 0x00001000
|
|
#define UART_IM_NINEBITIM_S 12
|
|
#define UART_IM_OEIM 0x00000400 // UART overrun error interrupt
|
|
// mask 1: An interrupt is sent to
|
|
// the interrupt controller when
|
|
// the OERIS bit in the UARTRIS
|
|
// register is set. 0: The OERIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_OEIM_M 0x00000400
|
|
#define UART_IM_OEIM_S 10
|
|
#define UART_IM_BEIM 0x00000200 // UART break error interrupt mask
|
|
// 1: An interrupt is sent to the
|
|
// interrupt controller when the
|
|
// BERIS bit in the UARTRIS
|
|
// register is set. 0: The BERIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_BEIM_M 0x00000200
|
|
#define UART_IM_BEIM_S 9
|
|
#define UART_IM_PEIM 0x00000100 // UART parity error interrupt
|
|
// mask 1: An interrupt is sent to
|
|
// the interrupt controller when
|
|
// the PERIS bit in the UARTRIS
|
|
// register is set. 0: The PERIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_PEIM_M 0x00000100
|
|
#define UART_IM_PEIM_S 8
|
|
#define UART_IM_FEIM 0x00000080 // UART framing error interrupt
|
|
// mask 1: An interrupt is sent to
|
|
// the interrupt controller when
|
|
// the FERIS bit in the UARTRIS
|
|
// register is set. 0: The FERIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_FEIM_M 0x00000080
|
|
#define UART_IM_FEIM_S 7
|
|
#define UART_IM_RTIM 0x00000040 // UART receive time-out interrupt
|
|
// mask 1: An interrupt is sent to
|
|
// the interrupt controller when
|
|
// the RTRIS bit in the UARTRIS
|
|
// register is set. 0: The RTRIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_RTIM_M 0x00000040
|
|
#define UART_IM_RTIM_S 6
|
|
#define UART_IM_TXIM 0x00000020 // UART transmit interrupt mask 1:
|
|
// An interrupt is sent to the
|
|
// interrupt controller when the
|
|
// TXRIS bit in the UARTRIS
|
|
// register is set. 0: The TXRIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_TXIM_M 0x00000020
|
|
#define UART_IM_TXIM_S 5
|
|
#define UART_IM_RXIM 0x00000010 // UART receive interrupt mask 1:
|
|
// An interrupt is sent to the
|
|
// interrupt controller when the
|
|
// RXRIS bit in the UARTRIS
|
|
// register is set. 0: The RXRIS
|
|
// interrupt is suppressed and not
|
|
// sent to the interrupt
|
|
// controller.
|
|
#define UART_IM_RXIM_M 0x00000010
|
|
#define UART_IM_RXIM_S 4
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_RIS register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_RIS_LME5RIS 0x00008000 // LIN mode edge 5 raw interrupt
|
|
// status 1: The timer value at the
|
|
// 5th falling edge of the LIN sync
|
|
// field has been captured. 0: No
|
|
// interrupt This bit is cleared by
|
|
// writing 1 to the LME5IC bit in
|
|
// the UARTICR register.
|
|
#define UART_RIS_LME5RIS_M 0x00008000
|
|
#define UART_RIS_LME5RIS_S 15
|
|
#define UART_RIS_LME1RIS 0x00004000 // LIN mode edge 1 raw interrupt
|
|
// status 1: The timer value at the
|
|
// 1st falling edge of the LIN Sync
|
|
// Field has been captured. 0: No
|
|
// interrupt This bit is cleared by
|
|
// writing 1 to the LME1IC bit in
|
|
// the UARTICR register.
|
|
#define UART_RIS_LME1RIS_M 0x00004000
|
|
#define UART_RIS_LME1RIS_S 14
|
|
#define UART_RIS_LMSBRIS 0x00002000 // LIN mode sync break raw
|
|
// interrupt status 1: A LIN sync
|
|
// break has been detected. 0: No
|
|
// interrupt This bit is cleared by
|
|
// writing 1 to the LMSBIC bit in
|
|
// the UARTICR register.
|
|
#define UART_RIS_LMSBRIS_M 0x00002000
|
|
#define UART_RIS_LMSBRIS_S 13
|
|
#define UART_RIS_NINEBITRIS 0x00001000 // 9-mit mode raw interrupt status
|
|
// 1: A receive address match has
|
|
// occurred. 0: No interrupt This
|
|
// bit is cleared by writing 1 to
|
|
// the 9BITIC bit in the UARTICR
|
|
// register.
|
|
#define UART_RIS_NINEBITRIS_M 0x00001000
|
|
#define UART_RIS_NINEBITRIS_S 12
|
|
#define UART_RIS_OERIS 0x00000400 // UART overrun error raw
|
|
// interrupt status 1: An overrun
|
|
// error has occurred. 0: No
|
|
// interrupt This bit is cleared by
|
|
// writing 1 to the OEIC bit in the
|
|
// UARTICR register.
|
|
#define UART_RIS_OERIS_M 0x00000400
|
|
#define UART_RIS_OERIS_S 10
|
|
#define UART_RIS_BERIS 0x00000200 // UART break error raw interrupt
|
|
// status 1: A break error has
|
|
// occurred. 0: No interrupt This
|
|
// bit is cleared by writing 1 to
|
|
// the BEIC bit in the UARTICR
|
|
// register.
|
|
#define UART_RIS_BERIS_M 0x00000200
|
|
#define UART_RIS_BERIS_S 9
|
|
#define UART_RIS_PERIS 0x00000100 // UART parity error raw interrupt
|
|
// status 1: A parity error has
|
|
// occurred. 0: No interrupt This
|
|
// bit is cleared by writing 1 to
|
|
// the PEIC bit in the UARTICR
|
|
// register.
|
|
#define UART_RIS_PERIS_M 0x00000100
|
|
#define UART_RIS_PERIS_S 8
|
|
#define UART_RIS_FERIS 0x00000080 // UART framing error raw
|
|
// interrupt status 1: A framing
|
|
// error has occurred. 0: No
|
|
// interrupt This bit is cleared by
|
|
// writing 1 to the FEIC bit in the
|
|
// UARTICR register.
|
|
#define UART_RIS_FERIS_M 0x00000080
|
|
#define UART_RIS_FERIS_S 7
|
|
#define UART_RIS_RTRIS 0x00000040 // UART receive time-out raw
|
|
// interrupt status 1: A receive
|
|
// time out has occurred. 0: No
|
|
// interrupt This bit is cleared by
|
|
// writing 1 to the RTIC bit in the
|
|
// UARTICR register.
|
|
#define UART_RIS_RTRIS_M 0x00000040
|
|
#define UART_RIS_RTRIS_S 6
|
|
#define UART_RIS_TXRIS 0x00000020 // UART transmit raw interrupt
|
|
// status 1: If the EOT bit in the
|
|
// UARTCTL register is clear, the
|
|
// transmit FIFO level has passed
|
|
// through the condition defined in
|
|
// the UARTIFLS register. If the
|
|
// EOT bit is set, the last bit of
|
|
// all transmitted data and flags
|
|
// has left the serializer. 0: No
|
|
// interrupt This bit is cleared by
|
|
// writing 1 to the TXIC bit in the
|
|
// UARTICR register.
|
|
#define UART_RIS_TXRIS_M 0x00000020
|
|
#define UART_RIS_TXRIS_S 5
|
|
#define UART_RIS_RXRIS 0x00000010 // UART receive raw interrupt
|
|
// status 1: The receive FIFO level
|
|
// has passed through the condition
|
|
// defined in the UARTIFLS
|
|
// register. 0: No interrupt This
|
|
// bit is cleared by writing 1 to
|
|
// the RXIC bit in the UARTICR
|
|
// register.
|
|
#define UART_RIS_RXRIS_M 0x00000010
|
|
#define UART_RIS_RXRIS_S 4
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_MIS register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_MIS_LME5MIS 0x00008000 // LIN mode edge 5 masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to
|
|
// the 5th falling edge of the LIN
|
|
// sync field. 0: An interrupt has
|
|
// not occurred or is masked. This
|
|
// bit is cleared by writing 1 to
|
|
// the LME5IC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_LME5MIS_M 0x00008000
|
|
#define UART_MIS_LME5MIS_S 15
|
|
#define UART_MIS_LME1MIS 0x00004000 // LIN mode edge 1 masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to
|
|
// the 1st falling edge of the LIN
|
|
// sync field. 0: An interrupt has
|
|
// not occurred or is masked. This
|
|
// bit is cleared by writing 1 to
|
|
// the LME1IC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_LME1MIS_M 0x00004000
|
|
#define UART_MIS_LME1MIS_S 14
|
|
#define UART_MIS_LMSBMIS 0x00002000 // LIN mode sync break masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to
|
|
// the receipt of a LIN sync break.
|
|
// 0: An interrupt has not occurred
|
|
// or is masked. This bit is
|
|
// cleared by writing 1 to the
|
|
// LMSBIC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_LMSBMIS_M 0x00002000
|
|
#define UART_MIS_LMSBMIS_S 13
|
|
#define UART_MIS_NINEBITMIS 0x00001000 // 9-bit mode masked interrupt
|
|
// status 1: An unmasked interrupt
|
|
// was signaled due to a receive
|
|
// address match. 0: An interrupt
|
|
// has not occurred or is masked.
|
|
// This bit is cleared by writing 1
|
|
// to the 9BITIC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_NINEBITMIS_M 0x00001000
|
|
#define UART_MIS_NINEBITMIS_S 12
|
|
#define UART_MIS_OEMIS 0x00000400 // UART overrun error masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to an
|
|
// overrun error. 0: An interrupt
|
|
// has not occurred or is masked.
|
|
// This bit is cleared by writing 1
|
|
// to the OEIC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_OEMIS_M 0x00000400
|
|
#define UART_MIS_OEMIS_S 10
|
|
#define UART_MIS_BEMIS 0x00000200 // UART break error masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to a
|
|
// break error. 0: An interrupt has
|
|
// not occurred or is masked. This
|
|
// bit is cleared by writing 1 to
|
|
// the BEIC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_BEMIS_M 0x00000200
|
|
#define UART_MIS_BEMIS_S 9
|
|
#define UART_MIS_PEMIS 0x00000100 // UART parity error masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to a
|
|
// parity error. 0: An interrupt
|
|
// has not occurred or is masked.
|
|
// This bit is cleared by writing 1
|
|
// to the PEIC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_PEMIS_M 0x00000100
|
|
#define UART_MIS_PEMIS_S 8
|
|
#define UART_MIS_FEMIS 0x00000080 // UART framing error masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to a
|
|
// framing error. 0: An interrupt
|
|
// has not occurred or is masked.
|
|
// This bit is cleared by writing 1
|
|
// to the FEIC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_FEMIS_M 0x00000080
|
|
#define UART_MIS_FEMIS_S 7
|
|
#define UART_MIS_RTMIS 0x00000040 // UART receive time-out masked
|
|
// interrupt status 1: An unmasked
|
|
// interrupt was signaled due to a
|
|
// receive time out. 0: An
|
|
// interrupt has not occurred or is
|
|
// masked. This bit is cleared by
|
|
// writing 1 to the RTIC bit in the
|
|
// UARTICR register.
|
|
#define UART_MIS_RTMIS_M 0x00000040
|
|
#define UART_MIS_RTMIS_S 6
|
|
#define UART_MIS_TXMIS 0x00000020 // UART transmit masked interrupt
|
|
// status 1: An unmasked interrupt
|
|
// was signaled due to passing
|
|
// through the specified transmit
|
|
// FIFO level (if the EOT bit is
|
|
// clear) or due to the
|
|
// transmission of the last data
|
|
// bit (if the EOT bit is set). 0:
|
|
// An interrupt has not occurred or
|
|
// is masked. This bit is cleared
|
|
// by writing 1 to the TXIC bit in
|
|
// the UARTICR register.
|
|
#define UART_MIS_TXMIS_M 0x00000020
|
|
#define UART_MIS_TXMIS_S 5
|
|
#define UART_MIS_RXMIS 0x00000010 // UART receive masked interrupt
|
|
// status 1: An unmasked interrupt
|
|
// was signaled due to passing
|
|
// through the specified receive
|
|
// FIFO level. 0: An interrupt has
|
|
// not occurred or is masked. This
|
|
// bit is cleared by writing 1 to
|
|
// the RXIC bit in the UARTICR
|
|
// register.
|
|
#define UART_MIS_RXMIS_M 0x00000010
|
|
#define UART_MIS_RXMIS_S 4
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_ICR register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_ICR_LME5IC 0x00008000 // LIN mode edge 5 interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// LME5RIS bit in the UARTRIS
|
|
// register and the LME5MIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_LME5IC_M 0x00008000
|
|
#define UART_ICR_LME5IC_S 15
|
|
#define UART_ICR_LME1IC 0x00004000 // LIN mode edge 1 interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// LME1RIS bit in the UARTRIS
|
|
// register and the LME1MIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_LME1IC_M 0x00004000
|
|
#define UART_ICR_LME1IC_S 14
|
|
#define UART_ICR_LMSBIC 0x00002000 // LIN mode sync break interrupt
|
|
// clear Writing 1 to this bit
|
|
// clears the LMSBRIS bit in the
|
|
// UARTRIS register and the LMSBMIS
|
|
// bit in the UARTMIS register.
|
|
#define UART_ICR_LMSBIC_M 0x00002000
|
|
#define UART_ICR_LMSBIC_S 13
|
|
#define UART_ICR_NINEBITIC 0x00001000 // 9-bit mode interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// 9BITRIS bit in the UARTRIS
|
|
// register and the 9BITMIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_NINEBITIC_M 0x00001000
|
|
#define UART_ICR_NINEBITIC_S 12
|
|
#define UART_ICR_OEIC 0x00000400 // Overrun error interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// OERIS bit in the UARTRIS
|
|
// register and the OEMIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_OEIC_M 0x00000400
|
|
#define UART_ICR_OEIC_S 10
|
|
#define UART_ICR_BEIC 0x00000200 // Break error interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// BERIS bit in the UARTRIS
|
|
// register and the BEMIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_BEIC_M 0x00000200
|
|
#define UART_ICR_BEIC_S 9
|
|
#define UART_ICR_PEIC 0x00000100 // Parity error interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// PERIS bit in the UARTRIS
|
|
// register and the PEMIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_PEIC_M 0x00000100
|
|
#define UART_ICR_PEIC_S 8
|
|
#define UART_ICR_FEIC 0x00000080 // Framing error interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// FERIS bit in the UARTRIS
|
|
// register and the FEMIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_FEIC_M 0x00000080
|
|
#define UART_ICR_FEIC_S 7
|
|
#define UART_ICR_RTIC 0x00000040 // Receive time-out interrupt
|
|
// clear Writing 1 to this bit
|
|
// clears the RTRIS bit in the
|
|
// UARTRIS register and the RTMIS
|
|
// bit in the UARTMIS register.
|
|
#define UART_ICR_RTIC_M 0x00000040
|
|
#define UART_ICR_RTIC_S 6
|
|
#define UART_ICR_TXIC 0x00000020 // Transmit interrupt clear
|
|
// Writing 1 to this bit clears the
|
|
// TXRIS bit in the UARTRIS
|
|
// register and the TXMIS bit in
|
|
// the UARTMIS register.
|
|
#define UART_ICR_TXIC_M 0x00000020
|
|
#define UART_ICR_TXIC_S 5
|
|
#define UART_ICR_RXIC 0x00000010 // Receive interrupt clear Writing
|
|
// 1 to this bit clears the RXRIS
|
|
// bit in the UARTRIS register and
|
|
// the RXMIS bit in the UARTMIS
|
|
// register.
|
|
#define UART_ICR_RXIC_M 0x00000010
|
|
#define UART_ICR_RXIC_S 4
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_DMACTL register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_DMACTL_DMAERR 0x00000004 // DMA on error 1: uDMA receive
|
|
// requests are automatically
|
|
// disabled when a receive error
|
|
// occurs. 0: uDMA receive requests
|
|
// are unaffected when a receive
|
|
// error occurs.
|
|
#define UART_DMACTL_DMAERR_M 0x00000004
|
|
#define UART_DMACTL_DMAERR_S 2
|
|
#define UART_DMACTL_TXDMAE 0x00000002 // Transmit DMA enable 1: uDMA for
|
|
// the transmit FIFO is enabled. 0:
|
|
// uDMA for the transmit FIFO is
|
|
// disabled.
|
|
#define UART_DMACTL_TXDMAE_M 0x00000002
|
|
#define UART_DMACTL_TXDMAE_S 1
|
|
#define UART_DMACTL_RXDMAE 0x00000001 // Receive DMA enable 1: uDMA for
|
|
// the receive FIFO is enabled. 0:
|
|
// uDMA for the receive FIFO is
|
|
// disabled.
|
|
#define UART_DMACTL_RXDMAE_M 0x00000001
|
|
#define UART_DMACTL_RXDMAE_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_LCTL register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_LCTL_BLEN_M 0x00000030 // Sync break length 0x3: Sync
|
|
// break length is 16T bits 0x2:
|
|
// Sync break length is 15T bits
|
|
// 0x1: Sync break length is 14T
|
|
// bits 0x0: Sync break length is
|
|
// 13T bits (default)
|
|
#define UART_LCTL_BLEN_S 4
|
|
#define UART_LCTL_MASTER 0x00000001 // LIN master enable 1: The UART
|
|
// operates as a LIN master. 0: The
|
|
// UART operates as a LIN slave.
|
|
#define UART_LCTL_MASTER_M 0x00000001
|
|
#define UART_LCTL_MASTER_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_LSS register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_LSS_TSS_M 0x0000FFFF // Timer snap shot This field
|
|
// contains the value of the
|
|
// free-running timer when either
|
|
// the sync edge 5 or the sync edge
|
|
// 1 was detected.
|
|
#define UART_LSS_TSS_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_LTIM register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_LTIM_TIMER_M 0x0000FFFF // Timer value This field contains
|
|
// the value of the free-running
|
|
// timer.
|
|
#define UART_LTIM_TIMER_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// UART_O_NINEBITADDR register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_NINEBITADDR_NINEBITEN \
|
|
0x00008000 // Enable 9-bit mode 1: 9-bit mode
|
|
// is enabled. 0: 9-bit mode is
|
|
// disabled.
|
|
|
|
#define UART_NINEBITADDR_NINEBITEN_M \
|
|
0x00008000
|
|
#define UART_NINEBITADDR_NINEBITEN_S 15
|
|
#define UART_NINEBITADDR_ADDR_M 0x000000FF // Self address for 9-bit mode
|
|
// This field contains the address
|
|
// that should be matched when
|
|
// UART9BITAMASK is 0xFF.
|
|
#define UART_NINEBITADDR_ADDR_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// UART_O_NINEBITAMASK register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_NINEBITAMASK_RANGE_M \
|
|
0x0000FF00 // Self address range for 9-bit
|
|
// mode Writing to the RANGE field
|
|
// does not have any effect;
|
|
// reading it reflects the ANDed
|
|
// output of the ADDR field in the
|
|
// UART9BITADDR register and the
|
|
// MASK field.
|
|
|
|
#define UART_NINEBITAMASK_RANGE_S 8
|
|
#define UART_NINEBITAMASK_MASK_M \
|
|
0x000000FF // Self Address Mask for 9-Bit
|
|
// Mode This field contains the
|
|
// address mask that creates a
|
|
// range of addresses that should
|
|
// be matched.
|
|
|
|
#define UART_NINEBITAMASK_MASK_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_PP register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_PP_NB 0x00000002 // 9-bit support 1: The UART
|
|
// module provides support for the
|
|
// transmission of 9-bit data for
|
|
// RS-485 support. 0: The UART
|
|
// module does not provide support
|
|
// for the transmission of 9-bit
|
|
// data for RS-485 support.
|
|
#define UART_PP_NB_M 0x00000002
|
|
#define UART_PP_NB_S 1
|
|
#define UART_PP_SC 0x00000001 // Smart card support 1: The UART
|
|
// module provides smart card
|
|
// support. 0: The UART module does
|
|
// not provide smart card support.
|
|
#define UART_PP_SC_M 0x00000001
|
|
#define UART_PP_SC_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the UART_O_CC register.
|
|
//
|
|
//*****************************************************************************
|
|
#define UART_CC_CS_M 0x00000007 // UART baud and system clock
|
|
// source The following bits
|
|
// determine the clock source that
|
|
// generates the baud and system
|
|
// clocks for the UART. bit0
|
|
// (PIOSC): 1: The UART baud clock
|
|
// is determined by the IO DIV
|
|
// setting in the system
|
|
// controller. 0: The UART baud
|
|
// clock is determined by the SYS
|
|
// DIV setting in the system
|
|
// controller. bit1: Unused bit2:
|
|
// (DSEN) Only meaningful when the
|
|
// system is in deep sleep mode.
|
|
// This bit is a don't care when
|
|
// not in sleep mode. 1: The UART
|
|
// system clock is running on the
|
|
// same clock as the baud clock, as
|
|
// per PIOSC setting above. 0: The
|
|
// UART system clock is determined
|
|
// by the SYS DIV setting in the
|
|
// system controller.
|
|
#define UART_CC_CS_S 0
|
|
|
|
|
|
#endif // __HW_UART_H__
|
|
|