Trident IoT SDK
 
Loading...
Searching...
No Matches
+ Collaboration diagram for UART CM11:

Data Structures

struct  UART_REGISTERS_T
 
struct  tr_hal_uart_settings_t
 

Macros

#define TR_NUMBER_OF_UARTS   3
 
#define LOW_BYTES_BUFFER_THRESHHOLD   16
 
#define MAX_RAW_TX_DATA_BUFFER_SIZE   256
 
#define DMA_RX_BUFF_MINIMUM_SIZE   16
 
#define TX_FIFO_SIZE   16
 
#define UART_INVALID_PIN   0xFF
 
#define UART0_TX_PIN_OPTION1   17
 
#define UART0_RX_PIN_OPTION1   16
 
#define UART1_TX_PIN_OPTION1   4
 
#define UART1_RX_PIN_OPTION1   5
 
#define UART1_TX_PIN_OPTION3   28
 
#define UART1_RX_PIN_OPTION3   29
 
#define UART1_RTS_PIN_OPTION1   14
 
#define UART1_CTS_PIN_OPTION1   15
 
#define UART1_RTS_PIN_OPTION2   20
 
#define UART1_CTS_PIN_OPTION2   21
 
#define UART2_TX_PIN_OPTION1   6
 
#define UART2_RX_PIN_OPTION1   7
 
#define UART2_TX_PIN_OPTION3   30
 
#define UART2_RX_PIN_OPTION3   31
 
#define TR_HAL_PIN_NOT_SET   255
 
#define CHIP_MEMORY_MAP_UART0_BASE   (0xA0000000UL)
 
#define CHIP_MEMORY_MAP_UART1_BASE   (0xA0500000UL)
 
#define CHIP_MEMORY_MAP_UART2_BASE   (0xA0600000UL)
 
#define transmitter_holding_register   receive_buffer_register
 
#define interrupt_identification_register   FIFO_control_register
 
#define divisor_latch_LSB   receive_buffer_register
 
#define divisor_latch_MSB   interrupt_enable_register
 
#define UART0_CHIP_REGISTERS   ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART0_BASE)
 
#define UART1_CHIP_REGISTERS   ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART1_BASE)
 
#define UART2_CHIP_REGISTERS   ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART2_BASE)
 
#define IER_ENABLE_RECEIVE_DATA_AVAIL_INT   0x01
 
#define IER_ENABLE_READY_TO_TRANSMIT_INT   0x02
 
#define IER_ENABLE_FRAMING_PARITY_OVERRUN_ERROR_INT   0x04
 
#define IER_ENABLE_MODEM_STATUS_INT   0x08
 
#define FCR_FIFO_ENABLE   0x01
 
#define FCR_CLEAR_RECEIVER   0x02
 
#define FCR_CLEAR_TRANSMIT   0x04
 
#define FCR_DMA_SELECT   0x08
 
#define FCR_TRIGGER_MASK   0xC0
 
#define IIR_INTERRUPT_MASK   0x0F
 
#define IIR_NO_INTERRUPT_PENDING   0x01
 
#define IIR_MODEM_STATUS_INTERRUPT   0x00
 
#define IIR_THR_EMPTY_INTERRUPT   0x02
 
#define IIR_RECEIVER_ERROR_INTERRUPT   0x06
 
#define IIR_RX_DATA_AVAIL_INTERRUPT   0x04
 
#define IIR_CHAR_TIMEOUT_INTERRUPT   0x0C
 
#define LCR_DATA_BITS_MASK   0x03
 
#define LCR_DATA_BITS_INV_MASK   0xFC
 
#define LCR_STOP_BITS_MASK   0x04
 
#define LCR_STOP_BITS_INV_MASK   0xFB
 
#define LCR_PARITY_BITS_MASK   0x18
 
#define LCR_PARITY_BITS_INV_MASK   0xE7
 
#define LCR_BAUD_RATE_SETTING_MASK   0x80
 
#define LSR_DATA_READY   0x01
 
#define LSR_OVERRUN_ERROR   0x02
 
#define LSR_PARITY_ERROR   0x04
 
#define LSR_FRAMING_ERROR   0x08
 
#define LSR_BREAK_INDICATOR   0x10
 
#define LSR_TRANSMITTER_HOLDING_REG_EMPTY   0x20
 
#define LSR_TRANSMITTER_EMPTY   0x40
 
#define LSR_FIFO_ERROR   0x80
 
#define MSR_DCTS   0x01
 
#define MSR_DDSR   0x02
 
#define MSR_TERI   0x04
 
#define MSR_DDCD   0x08
 
#define MSR_CTS   0x10
 
#define MSR_DSR   0x20
 
#define MSR_RI   0x40
 
#define MSR_DCD   0x80
 
#define DMA_IER_ENABLE_RECEIVE_INT   0x01
 
#define DMA_IER_ENABLE_TRANSMIT_INT   0x02
 
#define DMA_RECEIVE_INTERRUPT   0x01
 
#define DMA_TRANSMIT_INTERRUPT   0x02
 
#define UART_DMA_ENABLE   0x01
 
#define UART_DMA_DISABLE   0x00
 
#define DEFAULT_UART0_CONFIG
 
#define DEFAULT_UART1_CONFIG
 
#define DEFAULT_UART2_CONFIG
 
#define TR_HAL_UART_EVENT_DMA_TX_COMPLETE   0x00000001
 
#define TR_HAL_UART_EVENT_DMA_RX_BUFFER_LOW   0x00000002
 
#define TR_HAL_UART_EVENT_DMA_RX_TO_USER_FX   0x00000004
 
#define TR_HAL_UART_EVENT_DMA_RX_READY   0x00000008
 
#define TR_HAL_UART_EVENT_TX_COMPLETE   0x00000010
 
#define TR_HAL_UART_EVENT_TX_STILL_GOING   0x00000020
 
#define TR_HAL_UART_EVENT_RX_TO_USER_FX   0x00000040
 
#define TR_HAL_UART_EVENT_RX_READY   0x00000080
 
#define TR_HAL_UART_EVENT_RX_ENDED_TO_USER_FX   0x00000100
 
#define TR_HAL_UART_EVENT_RX_ENDED_NO_DATA   0x00000200
 
#define TR_HAL_UART_EVENT_RX_MAYBE_READY   0x00000400
 
#define TR_HAL_UART_EVENT_RX_ERR_OVERRUN   0x00000800
 
#define TR_HAL_UART_EVENT_RX_ERR_PARITY   0x00001000
 
#define TR_HAL_UART_EVENT_RX_ERR_FRAMING   0x00002000
 
#define TR_HAL_UART_EVENT_RX_ERR_BREAK   0x00004000
 
#define TR_HAL_UART_EVENT_HW_FLOW_CONTROL   0x00008000
 
#define TR_HAL_UART_EVENT_UNEXPECTED   0x00010000
 

Typedefs

typedef void(* tr_hal_uart_receive_callback_t) (uint8_t received_byte)
 
typedef void(* tr_hal_uart_event_callback_t) (uint32_t event_bitmask)
 

Enumerations

enum  tr_hal_uart_id_t {
  UART_0_ID = 0 ,
  UART_1_ID = 1 ,
  UART_2_ID = 2
}
 
enum  tr_hal_fifo_trigger_t {
  FCR_TRIGGER_1_BYTE = 0x00 ,
  FCR_TRIGGER_4_BYTES = 0x40 ,
  FCR_TRIGGER_8_BYTES = 0x80 ,
  FCR_TRIGGER_14_BYTES = 0xC0 ,
  FCR_NO_TRIGGER = 0xFF
}
 
enum  tr_hal_data_bits_t {
  LCR_DATA_BITS_5_VALUE = 0x00 ,
  LCR_DATA_BITS_6_VALUE = 0x01 ,
  LCR_DATA_BITS_7_VALUE = 0x02 ,
  LCR_DATA_BITS_8_VALUE = 0x03 ,
  LCR_DATA_BITS_INVALID_VALUE = 0xFF
}
 
enum  tr_hal_stop_bits_t {
  LCR_STOP_BITS_ONE_VALUE = 0x00 ,
  LCR_STOP_BITS_TWO_VALUE = 0x04 ,
  LCR_STOP_BITS_INVALID_VALUE = 0xFF
}
 
enum  tr_hal_parity_t {
  LCR_PARITY_NONE_VALUE = 0x00 ,
  LCR_PARITY_ODD_VALUE = 0x08 ,
  LCR_PARITY_EVEN_VALUE = 0x16 ,
  LCR_PARITY_INVALID_VALUE = 0xFF
}
 
enum  tr_hal_hw_fc_t {
  MCR_NO_FLOW_CONTROL_VALUE = 0x00 ,
  MCR_SET_DTR_READY = 0x01 ,
  MCR_SET_RTS_READY = 0x02 ,
  MCR_SET_CTS_ENABLED = 0x20
}
 
enum  tr_hal_baud_rate_t {
  TR_HAL_UART_BAUD_RATE_2400 = 1667 ,
  TR_HAL_UART_BAUD_RATE_4800 = 833 ,
  TR_HAL_UART_BAUD_RATE_9600 = 417 ,
  TR_HAL_UART_BAUD_RATE_14400 = 278 ,
  TR_HAL_UART_BAUD_RATE_19200 = 208 ,
  TR_HAL_UART_BAUD_RATE_28800 = 139 ,
  TR_HAL_UART_BAUD_RATE_38400 = 104 ,
  TR_HAL_UART_BAUD_RATE_57600 = 69 ,
  TR_HAL_UART_BAUD_RATE_76800 = 52 ,
  TR_HAL_UART_BAUD_RATE_115200 = 35 ,
  TR_HAL_UART_BAUD_RATE_500000 = 8 ,
  TR_HAL_UART_BAUD_RATE_1000000 = 4 ,
  TR_HAL_UART_BAUD_RATE_2000000 = 2 ,
  TR_HAL_UART_BAUD_RATE_ERROR = 1
}
 

Functions

UART_REGISTERS_Ttr_hal_uart_get_uart_register_address (tr_hal_uart_id_t uart_id)
 

Detailed Description



Macro Definition Documentation

◆ CHIP_MEMORY_MAP_UART0_BASE

#define CHIP_MEMORY_MAP_UART0_BASE   (0xA0000000UL)

section 3.1 of the data sheet explains the Memory map this gives the base address for how to write the UART registers the UART registers are how the software interacts with the UART peripheral. We create a struct below that addresses the individual registers. This makes it so we can use this base address and a struct field to read or write a chip register


◆ CHIP_MEMORY_MAP_UART1_BASE

#define CHIP_MEMORY_MAP_UART1_BASE   (0xA0500000UL)

◆ CHIP_MEMORY_MAP_UART2_BASE

#define CHIP_MEMORY_MAP_UART2_BASE   (0xA0600000UL)

◆ DEFAULT_UART0_CONFIG

#define DEFAULT_UART0_CONFIG
Value:
{ \
.hardware_flow_control_enabled = false, \
.data_bits = LCR_DATA_BITS_8_VALUE, \
.stop_bits = LCR_STOP_BITS_ONE_VALUE, \
.parity = LCR_PARITY_NONE_VALUE, \
.rx_dma_enabled = false, \
.tx_dma_enabled = false, \
.rx_dma_buffer = NULL, \
.rx_dma_buff_length = 0, \
.raw_tx_buffer = NULL, \
.raw_tx_buff_length = 0, \
.rx_handler_function = NULL, \
.rx_bytes_before_trigger = FCR_TRIGGER_1_BYTE, \
.enable_chip_interrupts = true, \
.interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
.wake_on_interrupt = false, \
.event_handler_fx = NULL, \
}
@ TR_HAL_INTERRUPT_PRIORITY_5
Definition tr_hal_platform.h:44
#define UART0_RX_PIN_OPTION1
Definition T32CM11_uart.h:139
#define TR_HAL_PIN_NOT_SET
Definition T32CM11_uart.h:169
#define UART0_TX_PIN_OPTION1
Definition T32CM11_uart.h:138
@ LCR_DATA_BITS_8_VALUE
Definition T32CM11_uart.h:315
@ TR_HAL_UART_BAUD_RATE_115200
Definition T32CM11_uart.h:419
@ LCR_PARITY_NONE_VALUE
Definition T32CM11_uart.h:336
@ LCR_STOP_BITS_ONE_VALUE
Definition T32CM11_uart.h:325
@ FCR_TRIGGER_1_BYTE
Definition T32CM11_uart.h:267
pin type
Definition tr_hal_platform.h:23

◆ DEFAULT_UART1_CONFIG

#define DEFAULT_UART1_CONFIG
Value:
{ \
.hardware_flow_control_enabled = false, \
.data_bits = LCR_DATA_BITS_8_VALUE, \
.stop_bits = LCR_STOP_BITS_ONE_VALUE, \
.parity = LCR_PARITY_NONE_VALUE, \
.rx_dma_enabled = false, \
.tx_dma_enabled = false, \
.rx_dma_buffer = NULL, \
.rx_dma_buff_length = 0, \
.raw_tx_buffer = NULL, \
.raw_tx_buff_length = 0, \
.rx_handler_function = NULL, \
.rx_bytes_before_trigger = FCR_TRIGGER_1_BYTE, \
.enable_chip_interrupts = true, \
.interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
.wake_on_interrupt = false, \
.event_handler_fx = NULL, \
}
#define UART1_RX_PIN_OPTION1
Definition T32CM11_uart.h:145
#define UART1_TX_PIN_OPTION1
Definition T32CM11_uart.h:144

◆ DEFAULT_UART2_CONFIG

#define DEFAULT_UART2_CONFIG
Value:
{ \
.hardware_flow_control_enabled = false, \
.data_bits = LCR_DATA_BITS_8_VALUE, \
.stop_bits = LCR_STOP_BITS_ONE_VALUE, \
.parity = LCR_PARITY_NONE_VALUE, \
.rx_dma_enabled = false, \
.tx_dma_enabled = false, \
.rx_dma_buffer = NULL, \
.rx_dma_buff_length = 0, \
.raw_tx_buffer = NULL, \
.raw_tx_buff_length = 0, \
.rx_handler_function = NULL, \
.rx_bytes_before_trigger = FCR_TRIGGER_1_BYTE, \
.enable_chip_interrupts = true, \
.interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
.wake_on_interrupt = false, \
.event_handler_fx = NULL, \
}
#define UART2_RX_PIN_OPTION1
Definition T32CM11_uart.h:163
#define UART2_TX_PIN_OPTION1
Definition T32CM11_uart.h:162

◆ divisor_latch_LSB

#define divisor_latch_LSB   receive_buffer_register

◆ divisor_latch_MSB

#define divisor_latch_MSB   interrupt_enable_register

◆ DMA_IER_ENABLE_RECEIVE_INT

#define DMA_IER_ENABLE_RECEIVE_INT   0x01

◆ DMA_IER_ENABLE_TRANSMIT_INT

#define DMA_IER_ENABLE_TRANSMIT_INT   0x02

◆ DMA_RECEIVE_INTERRUPT

#define DMA_RECEIVE_INTERRUPT   0x01

◆ DMA_RX_BUFF_MINIMUM_SIZE

#define DMA_RX_BUFF_MINIMUM_SIZE   16

◆ DMA_TRANSMIT_INTERRUPT

#define DMA_TRANSMIT_INTERRUPT   0x02

◆ FCR_CLEAR_RECEIVER

#define FCR_CLEAR_RECEIVER   0x02

◆ FCR_CLEAR_TRANSMIT

#define FCR_CLEAR_TRANSMIT   0x04

◆ FCR_DMA_SELECT

#define FCR_DMA_SELECT   0x08

◆ FCR_FIFO_ENABLE

#define FCR_FIFO_ENABLE   0x01

◆ FCR_TRIGGER_MASK

#define FCR_TRIGGER_MASK   0xC0

◆ IER_ENABLE_FRAMING_PARITY_OVERRUN_ERROR_INT

#define IER_ENABLE_FRAMING_PARITY_OVERRUN_ERROR_INT   0x04

◆ IER_ENABLE_MODEM_STATUS_INT

#define IER_ENABLE_MODEM_STATUS_INT   0x08

◆ IER_ENABLE_READY_TO_TRANSMIT_INT

#define IER_ENABLE_READY_TO_TRANSMIT_INT   0x02

◆ IER_ENABLE_RECEIVE_DATA_AVAIL_INT

#define IER_ENABLE_RECEIVE_DATA_AVAIL_INT   0x01

◆ IIR_CHAR_TIMEOUT_INTERRUPT

#define IIR_CHAR_TIMEOUT_INTERRUPT   0x0C

◆ IIR_INTERRUPT_MASK

#define IIR_INTERRUPT_MASK   0x0F

◆ IIR_MODEM_STATUS_INTERRUPT

#define IIR_MODEM_STATUS_INTERRUPT   0x00

◆ IIR_NO_INTERRUPT_PENDING

#define IIR_NO_INTERRUPT_PENDING   0x01

◆ IIR_RECEIVER_ERROR_INTERRUPT

#define IIR_RECEIVER_ERROR_INTERRUPT   0x06

◆ IIR_RX_DATA_AVAIL_INTERRUPT

#define IIR_RX_DATA_AVAIL_INTERRUPT   0x04

◆ IIR_THR_EMPTY_INTERRUPT

#define IIR_THR_EMPTY_INTERRUPT   0x02

◆ interrupt_identification_register

#define interrupt_identification_register   FIFO_control_register

◆ LCR_BAUD_RATE_SETTING_MASK

#define LCR_BAUD_RATE_SETTING_MASK   0x80

◆ LCR_DATA_BITS_INV_MASK

#define LCR_DATA_BITS_INV_MASK   0xFC

◆ LCR_DATA_BITS_MASK

#define LCR_DATA_BITS_MASK   0x03

◆ LCR_PARITY_BITS_INV_MASK

#define LCR_PARITY_BITS_INV_MASK   0xE7

◆ LCR_PARITY_BITS_MASK

#define LCR_PARITY_BITS_MASK   0x18

◆ LCR_STOP_BITS_INV_MASK

#define LCR_STOP_BITS_INV_MASK   0xFB

◆ LCR_STOP_BITS_MASK

#define LCR_STOP_BITS_MASK   0x04

◆ LOW_BYTES_BUFFER_THRESHHOLD

#define LOW_BYTES_BUFFER_THRESHHOLD   16

◆ LSR_BREAK_INDICATOR

#define LSR_BREAK_INDICATOR   0x10

◆ LSR_DATA_READY

#define LSR_DATA_READY   0x01

◆ LSR_FIFO_ERROR

#define LSR_FIFO_ERROR   0x80

◆ LSR_FRAMING_ERROR

#define LSR_FRAMING_ERROR   0x08

◆ LSR_OVERRUN_ERROR

#define LSR_OVERRUN_ERROR   0x02

◆ LSR_PARITY_ERROR

#define LSR_PARITY_ERROR   0x04

◆ LSR_TRANSMITTER_EMPTY

#define LSR_TRANSMITTER_EMPTY   0x40

◆ LSR_TRANSMITTER_HOLDING_REG_EMPTY

#define LSR_TRANSMITTER_HOLDING_REG_EMPTY   0x20

◆ MAX_RAW_TX_DATA_BUFFER_SIZE

#define MAX_RAW_TX_DATA_BUFFER_SIZE   256

◆ MSR_CTS

#define MSR_CTS   0x10

◆ MSR_DCD

#define MSR_DCD   0x80

◆ MSR_DCTS

#define MSR_DCTS   0x01

◆ MSR_DDCD

#define MSR_DDCD   0x08

◆ MSR_DDSR

#define MSR_DDSR   0x02

◆ MSR_DSR

#define MSR_DSR   0x20

◆ MSR_RI

#define MSR_RI   0x40

◆ MSR_TERI

#define MSR_TERI   0x04

◆ TR_HAL_PIN_NOT_SET

#define TR_HAL_PIN_NOT_SET   255

◆ TR_HAL_UART_EVENT_DMA_RX_BUFFER_LOW

#define TR_HAL_UART_EVENT_DMA_RX_BUFFER_LOW   0x00000002

◆ TR_HAL_UART_EVENT_DMA_RX_READY

#define TR_HAL_UART_EVENT_DMA_RX_READY   0x00000008

◆ TR_HAL_UART_EVENT_DMA_RX_TO_USER_FX

#define TR_HAL_UART_EVENT_DMA_RX_TO_USER_FX   0x00000004

◆ TR_HAL_UART_EVENT_DMA_TX_COMPLETE

#define TR_HAL_UART_EVENT_DMA_TX_COMPLETE   0x00000001

these are the EVENTS that can be received into the UART event handler functions. These are BITMASKs since we can have more than 1 in an event these are what the APP needs to handle in its event_handler_fx


◆ TR_HAL_UART_EVENT_HW_FLOW_CONTROL

#define TR_HAL_UART_EVENT_HW_FLOW_CONTROL   0x00008000

◆ TR_HAL_UART_EVENT_RX_ENDED_NO_DATA

#define TR_HAL_UART_EVENT_RX_ENDED_NO_DATA   0x00000200

◆ TR_HAL_UART_EVENT_RX_ENDED_TO_USER_FX

#define TR_HAL_UART_EVENT_RX_ENDED_TO_USER_FX   0x00000100

◆ TR_HAL_UART_EVENT_RX_ERR_BREAK

#define TR_HAL_UART_EVENT_RX_ERR_BREAK   0x00004000

◆ TR_HAL_UART_EVENT_RX_ERR_FRAMING

#define TR_HAL_UART_EVENT_RX_ERR_FRAMING   0x00002000

◆ TR_HAL_UART_EVENT_RX_ERR_OVERRUN

#define TR_HAL_UART_EVENT_RX_ERR_OVERRUN   0x00000800

◆ TR_HAL_UART_EVENT_RX_ERR_PARITY

#define TR_HAL_UART_EVENT_RX_ERR_PARITY   0x00001000

◆ TR_HAL_UART_EVENT_RX_MAYBE_READY

#define TR_HAL_UART_EVENT_RX_MAYBE_READY   0x00000400

◆ TR_HAL_UART_EVENT_RX_READY

#define TR_HAL_UART_EVENT_RX_READY   0x00000080

◆ TR_HAL_UART_EVENT_RX_TO_USER_FX

#define TR_HAL_UART_EVENT_RX_TO_USER_FX   0x00000040

◆ TR_HAL_UART_EVENT_TX_COMPLETE

#define TR_HAL_UART_EVENT_TX_COMPLETE   0x00000010

◆ TR_HAL_UART_EVENT_TX_STILL_GOING

#define TR_HAL_UART_EVENT_TX_STILL_GOING   0x00000020

◆ TR_HAL_UART_EVENT_UNEXPECTED

#define TR_HAL_UART_EVENT_UNEXPECTED   0x00010000

◆ TR_NUMBER_OF_UARTS

#define TR_NUMBER_OF_UARTS   3

defines used by the UART module


◆ transmitter_holding_register

#define transmitter_holding_register   receive_buffer_register

◆ TX_FIFO_SIZE

#define TX_FIFO_SIZE   16

◆ UART0_CHIP_REGISTERS

#define UART0_CHIP_REGISTERS   ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART0_BASE)

◆ UART0_RX_PIN_OPTION1

#define UART0_RX_PIN_OPTION1   16

◆ UART0_TX_PIN_OPTION1

#define UART0_TX_PIN_OPTION1   17

◆ UART1_CHIP_REGISTERS

#define UART1_CHIP_REGISTERS   ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART1_BASE)

◆ UART1_CTS_PIN_OPTION1

#define UART1_CTS_PIN_OPTION1   15

◆ UART1_CTS_PIN_OPTION2

#define UART1_CTS_PIN_OPTION2   21

◆ UART1_RTS_PIN_OPTION1

#define UART1_RTS_PIN_OPTION1   14

◆ UART1_RTS_PIN_OPTION2

#define UART1_RTS_PIN_OPTION2   20

◆ UART1_RX_PIN_OPTION1

#define UART1_RX_PIN_OPTION1   5

◆ UART1_RX_PIN_OPTION3

#define UART1_RX_PIN_OPTION3   29

◆ UART1_TX_PIN_OPTION1

#define UART1_TX_PIN_OPTION1   4

◆ UART1_TX_PIN_OPTION3

#define UART1_TX_PIN_OPTION3   28

◆ UART2_CHIP_REGISTERS

#define UART2_CHIP_REGISTERS   ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART2_BASE)

◆ UART2_RX_PIN_OPTION1

#define UART2_RX_PIN_OPTION1   7

◆ UART2_RX_PIN_OPTION3

#define UART2_RX_PIN_OPTION3   31

◆ UART2_TX_PIN_OPTION1

#define UART2_TX_PIN_OPTION1   6

◆ UART2_TX_PIN_OPTION3

#define UART2_TX_PIN_OPTION3   30

◆ UART_DMA_DISABLE

#define UART_DMA_DISABLE   0x00

◆ UART_DMA_ENABLE

#define UART_DMA_ENABLE   0x01

◆ UART_INVALID_PIN

#define UART_INVALID_PIN   0xFF

Pin information for the 3 UARTs of the T32CM11

UART valid pin configurations are below

UART 0

PIN_17 = UART_0_TX PIN_16 = UART_0_RX

UART 1

PIN_4 or PIN_28 = UART_1_TX (note PIN_10 is normally a choice but not on this chip) PIN_5 or PIN_29 = UART_1_RX (note PIN_11 is normally a choice but not on this chip)

PIN_14 or PIN_20 or PIN_18 = UART_1_RTSN PIN_15 or PIN_21 or PIN_19 = UART_1_CTSN

UART 2

PIN_6 or PIN_30 = UART_2_TX (note PIN_12 is normally a choice but not on this chip) PIN_7 or PIN_31 = UART_2_RX (note PIN_13 is normally a choice but not on this chip)


Typedef Documentation

◆ tr_hal_uart_event_callback_t

typedef void(* tr_hal_uart_event_callback_t) (uint32_t event_bitmask)

◆ tr_hal_uart_receive_callback_t

typedef void(* tr_hal_uart_receive_callback_t) (uint8_t received_byte)

Enumeration Type Documentation

◆ tr_hal_baud_rate_t

Enumerator
TR_HAL_UART_BAUD_RATE_2400 
TR_HAL_UART_BAUD_RATE_4800 
TR_HAL_UART_BAUD_RATE_9600 
TR_HAL_UART_BAUD_RATE_14400 
TR_HAL_UART_BAUD_RATE_19200 
TR_HAL_UART_BAUD_RATE_28800 
TR_HAL_UART_BAUD_RATE_38400 
TR_HAL_UART_BAUD_RATE_57600 
TR_HAL_UART_BAUD_RATE_76800 
TR_HAL_UART_BAUD_RATE_115200 
TR_HAL_UART_BAUD_RATE_500000 
TR_HAL_UART_BAUD_RATE_1000000 
TR_HAL_UART_BAUD_RATE_2000000 
TR_HAL_UART_BAUD_RATE_ERROR 

◆ tr_hal_data_bits_t

Enumerator
LCR_DATA_BITS_5_VALUE 
LCR_DATA_BITS_6_VALUE 
LCR_DATA_BITS_7_VALUE 
LCR_DATA_BITS_8_VALUE 
LCR_DATA_BITS_INVALID_VALUE 

◆ tr_hal_fifo_trigger_t

Enumerator
FCR_TRIGGER_1_BYTE 
FCR_TRIGGER_4_BYTES 
FCR_TRIGGER_8_BYTES 
FCR_TRIGGER_14_BYTES 
FCR_NO_TRIGGER 

◆ tr_hal_hw_fc_t

Enumerator
MCR_NO_FLOW_CONTROL_VALUE 
MCR_SET_DTR_READY 
MCR_SET_RTS_READY 
MCR_SET_CTS_ENABLED 

◆ tr_hal_parity_t

Enumerator
LCR_PARITY_NONE_VALUE 
LCR_PARITY_ODD_VALUE 
LCR_PARITY_EVEN_VALUE 
LCR_PARITY_INVALID_VALUE 

◆ tr_hal_stop_bits_t

Enumerator
LCR_STOP_BITS_ONE_VALUE 
LCR_STOP_BITS_TWO_VALUE 
LCR_STOP_BITS_INVALID_VALUE 

◆ tr_hal_uart_id_t

Enumerator
UART_0_ID 
UART_1_ID 
UART_2_ID 

Function Documentation

◆ tr_hal_uart_get_uart_register_address()

UART_REGISTERS_T * tr_hal_uart_get_uart_register_address ( tr_hal_uart_id_t uart_id)

if the app wants to directly interface with the chip registers, this is a convenience function for getting the address/struct of a particular UART so the chip registers can be accessed.

EXAMPLE: check LSR and if ready, read a byte from RBR

UART_REGISTERS_T* uart_register_address = tr_hal_uart_get_uart_register_address(2);
if ((uart_register_address->line_status_register) & LSR_DATA_READY)
{
   uint8_t rx_data = uart_register_address->receive_buffer_register;
}