This is the chip specific include file for T32CZ20 UART Driver. note that there is a common include file for this HAL module that contains the APIs (such as the init function) that should be used by the application. More...
Go to the source code of this file.
Data Structures | |
struct | tr_hal_uart_settings_t |
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 } |
this type is used to specify a UART ID. On the T32CZ20 there are 3 UARTs available. More... | |
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 } |
values we can trigger on for receive FIFO More... | |
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_RTS_READY = 0x02 , MCR_SET_CTS_ENABLED = 0x20 } |
for setting up hardware flow control More... | |
enum | tr_hal_baud_rate_t { TR_HAL_UART_BAUD_RATE_2400 = 0 , TR_HAL_UART_BAUD_RATE_4800 = 1 , TR_HAL_UART_BAUD_RATE_9600 = 2 , TR_HAL_UART_BAUD_RATE_14400 = 3 , TR_HAL_UART_BAUD_RATE_19200 = 4 , TR_HAL_UART_BAUD_RATE_28800 = 5 , TR_HAL_UART_BAUD_RATE_38400 = 6 , TR_HAL_UART_BAUD_RATE_57600 = 7 , TR_HAL_UART_BAUD_RATE_76800 = 8 , TR_HAL_UART_BAUD_RATE_115200 = 9 , TR_HAL_UART_BAUD_RATE_230400 = 10 , TR_HAL_UART_BAUD_RATE_500000 = 11 , TR_HAL_UART_BAUD_RATE_1000000 = 12 , TR_HAL_UART_BAUD_RATE_2000000 = 13 , TR_HAL_UART_BAUD_RATE_LPM_2400 = 0 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_4800 = 1 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_9600 = 2 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_14400 = 3 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_19200 = 4 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_28800 = 5 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_38400 = 6 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_57600 = 7 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_76800 = 8 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_115200 = 9 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_230400 = 10 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_500000 = 11 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_1000000 = 12 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LPM_2000000 = 13 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_2400 = 0 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_4800 = 1 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_9600 = 2 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_14400 = 3 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_19200 = 4 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_28800 = 5 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_38400 = 6 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_57600 = 7 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_76800 = 8 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_LOW_SPEED_115200 = 9 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES , TR_HAL_UART_BAUD_RATE_SLOW_CLOCK_2400 = 0 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES + TR_HAL_NUM_LOW_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_SLOW_CLOCK_4800 = 1 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES + TR_HAL_NUM_LOW_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_SLOW_CLOCK_9600 = 2 + TR_HAL_NUM_FULL_SPEED_BAUD_RATES + TR_HAL_NUM_LPM_BAUD_RATES + TR_HAL_NUM_LOW_SPEED_BAUD_RATES , TR_HAL_UART_BAUD_RATE_ERROR = TR_HAL_NUM_BAUD_RATES } |
Functions | |
UART_REGISTERS_T * | tr_hal_uart_get_uart_register_address (tr_hal_uart_id_t uart_id) |
This is the chip specific include file for T32CZ20 UART Driver. note that there is a common include file for this HAL module that contains the APIs (such as the init function) that should be used by the application.
Trident HAL UART Driver:
This module contains APIs for interacting with the Trident HAL for UART. This defines a struct to use for setting up a UART and APIs to transmit and receive from a UART. It also defines a struct that allows interaction with the chip registers.
before setting up a UART, pick how it will be used:
— transmit —
— receive —
UART configuration is done by setting fields in an instance of the tr_hal_uart_settings_t struct and then passing this instance to tr_hal_uart_init.
There is a define that can be used to initialize an instance to the default values for that particular UART. for instance, to init UART1 to default values set it to DEFAULT_UART1_CONFIG, like this: tr_hal_uart_settings_t g_uart1_settings = DEFAULT_UART1_CONFIG;
if a user defined receive function is set (rx_handler_function) then the Trident HAL will manage the chip interrupts and registers and will pass received bytes to this user receive function. This is the recommended way to get UART communication working. If this method is used then the app will just handle bytes that come in to the user receive function and can send responses using any of the TX APIs, for instance: tr_hal_uart_raw_tx_one_byte(UART_1_ID, &byte_to_send); tr_hal_uart_raw_tx_buffer(UART_1_ID, &bytes_to_send, send_length);
alternatively, the UART can be setup to use the chip DMA functions to transmit or receive bytes. Set the correct fields in the tr_hal_uart_settings_t to enable DMA TX (tx_dma_enabled) or DMA RX (rx_dma_enabled).
SPDX-License-Identifier: LicenseRef-TridentMSLA SPDX-FileCopyrightText: 2025 Trident IoT, LLC https://www.tridentiot.com