mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
df37e69b90
Currently the cc2538 is based on from-scratch adaption which is not feature complete and thus lacks defines etc. Introducing the official vendor header will ease future extension and adaptions of the CPU and its features.
1362 lines
91 KiB
C
Executable File
1362 lines
91 KiB
C
Executable File
/******************************************************************************
|
|
* 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__
|
|
|