Trident IoT SDK
 
Loading...
Searching...
No Matches
T32CZ20_uart.h
Go to the documentation of this file.
1
54
55#ifndef T32CZ20_UART_H_
56#define T32CZ20_UART_H_
57
58#include "tr_hal_platform.h"
59#include "tr_hal_gpio.h"
60
61
67
68
69// ******************************************************************
70// defines used by the UART module
71// ******************************************************************
72
74#define TR_NUMBER_OF_UARTS 3
75
77typedef enum
78{
82
84
88#define LOW_BYTES_BUFFER_THRESHHOLD 16
89
93#define MAX_RAW_TX_DATA_BUFFER_SIZE 256
94
97#define DMA_RX_BUFF_MINIMUM_SIZE 16
98
101#define TX_FIFO_SIZE 32
102
103// default interrupt priority for UART
104//#define UART_DEFAULT_INTERRUPT_PRIORITY TR_HAL_INTERRUPT_PRIORITY_5
105
106
107// ******************************************************************
108// on the CZ20 any combination of RX and TX works as long as they don't overlap.
109// this defines default locations for the UART pins but these could be changed.
110// ******************************************************************
111
113#define UART0_TX_PIN_DEFAULT 17
115#define UART0_RX_PIN_DEFAULT 16
116
118#define UART1_TX_PIN_DEFAULT 6
120#define UART1_RX_PIN_DEFAULT 7
121
123#define UART2_TX_PIN_DEFAULT 8
125#define UART2_RX_PIN_DEFAULT 9
126
128#define TR_HAL_PIN_NOT_SET 0xFF
129
130
139#ifdef UART0_SECURE_EN
140 #define CHIP_MEMORY_MAP_UART0_BASE (0x50012000UL)
141#else
142 #define CHIP_MEMORY_MAP_UART0_BASE (0x40012000UL)
143#endif // UART0_SECURE_EN
144
145#ifdef UART1_SECURE_EN
146 #define CHIP_MEMORY_MAP_UART1_BASE (0x50013000UL)
147#else
148 #define CHIP_MEMORY_MAP_UART1_BASE (0x40013000UL)
149#endif // UART1_SECURE_EN
150
151#ifdef UART2_SECURE_EN
152 #define CHIP_MEMORY_MAP_UART2_BASE (0x50025000UL)
153#else
154 #define CHIP_MEMORY_MAP_UART2_BASE (0x40025000UL)
155#endif // UART2_SECURE_EN
156
157
168
169
181
182
192
193
204
213
214
219
220
224typedef struct
225{
226 // received data
227 __IO uint32_t receive_buffer_register; // 0x00 = RBR
228
229 // enable interrupts
230 __IO uint32_t interrupt_enable_register; // 0x04 = IER
231
232 // FIFO trigger levels
233 __IO uint32_t FIFO_control_register; // 0x08 = FCR
234
235 // line control: parity, stop bits, word length
236 __IO uint32_t line_control_register; // 0x0C = LCR
237
238 // configure CTS, RTS, loopback
239 __IO uint32_t modem_control_register; // 0x10 = MCR
240
241 // transmitter empty, data ready, overrun error, framing error, etc
242 __IO uint32_t line_status_register; // 0x14 = LSR
243
244 // CTS and DCTS
245 __I uint32_t modem_status_register; // 0x18 = MSR
246
247 // used to tell which interrupt fired
248 __IO uint32_t interrupt_identification_register; // 0x1C = IIR
249
250 // these control the baud rate by dividing the clock
251 // baud rate = clock / (divisor latch + fac divisor) x 8
252 __IO uint32_t divisor_latch_register; // 0x20 = DLX
253 __IO uint32_t fractional_divisor_latch; // 0x24 = FDL
254
255 // this changes the baud rate divisor and latch by 1/2
256 // changes division multipler from 8x to 4x. need to use
257 // different set of baud rates
258 __IO uint32_t low_speed_mode; // 0x28
259
260 __IO uint32_t wake_enable; // 0x2C
261 __IO uint32_t enable; // 0x30
262
263
264 // setup for DMA RX
265 __IO uint32_t DMA_rx_buffer_addr; // 0x34
266 __IO uint32_t DMA_rx_buffer_len; // 0x38
267
268 // setup for DMA TX
269 __IO uint32_t DMA_tx_buffer_addr; // 0x3C
270 __IO uint32_t DMA_tx_buffer_len; // 0x40
271
272 // using DMA
273 __I uint32_t DMA_rx_xfer_len_remaining; // 0x44
274 __I uint32_t DMA_tx_xfer_len_remaining; // 0x48
275 __IO uint32_t DMA_rx_enable; // 0x4C
276 __IO uint32_t DMA_tx_enable; // 0x50
277
279
280// REMOVED
281// __IO uint32_t DMA_interrupt_enable_register; //0x38
282// __IO uint32_t DMA_interrupt_status; //0x3C
283
284// *****************************************************************
285// *** some registers are multi-purpose:
286
287// at register address 0x00, a read pulls data from RBR (read-buffer),
288// while a write puts a byte in the THR (transmitter-holder)
289#define transmitter_holding_register receive_buffer_register
290
291
292// *****************************************************************
293// this orients the 3 structs (for 3 UARTs) with the correct addresses
294// so referencing a field will now read/write the correct chip address
295// *****************************************************************
296#define UART0_CHIP_REGISTERS ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART0_BASE)
297#define UART1_CHIP_REGISTERS ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART1_BASE)
298#define UART2_CHIP_REGISTERS ((UART_REGISTERS_T *) CHIP_MEMORY_MAP_UART2_BASE)
299
300// *****************************************************************
301// these defines help when dealing with the INTERRUPT ENABLE REGISTER (0x04)
302#define IER_ENABLE_RECEIVE_DATA_AVAIL_INT 0x01
303#define IER_ENABLE_READY_TO_TRANSMIT_INT 0x02
304#define IER_ENABLE_FRAMING_PARITY_OVERRUN_ERROR_INT 0x04
305#define IER_ENABLE_MODEM_STATUS_INT 0x08
306#define IER_ENABLE_RECEIVED_DATA_TIMEOUT 0x10
307#define IER_ENABLE_DMA_RX_INT 0x20
308#define IER_ENABLE_DMA_TX_INT 0x40
309
310// *****************************************************************
311// these defines help when dealing with the FIFO CONTROL REGISTER (0x08)
312// this uses tr_hal_fifo_trigger_t enum
313#define FCR_CLEAR_RECEIVER 0x02
314#define FCR_CLEAR_TRANSMIT 0x04
315#define FCR_DMA_SELECT 0x08
316
317#define FCR_TRIGGER_MASK 0xC0
318#define FCR_RTS_TRIGGER_MASK 0x300
319
320
321// *****************************************************************
322// these defines to help when dealing with the LINE CONTROL REGISTER (0x0C)
323// bits 0, 1 set the data bits: 00=5, 01=6, 10=7, 11=8, use tr_hal_data_bits_t
324// bit 2 sets the stop bits: 0=1 stop bit, 1=2 stop bits, use tr_hal_stop_bits_t
325// bit 3, 4 set the parity: 00=no parity 10=no parity, 01=odd parity, 11=even parity,
326// bit 5 sets the sticky parity -> for debug
327// bit 6 sets break -> for debug
328// bit 7 sets the divisior latch access - when set to 1 this changes
329// the RBR and IER registers to be the divisor latch bytes which
330// sets the baud rate
331#define LCR_DATA_BITS_MASK 0x03
332#define LCR_DATA_BITS_INV_MASK 0xFC
333#define LCR_STOP_BITS_MASK 0x04
334#define LCR_STOP_BITS_INV_MASK 0xFB
335#define LCR_PARITY_BITS_MASK 0x18
336#define LCR_PARITY_BITS_INV_MASK 0xE7
337#define LCR_BAUD_RATE_SETTING_MASK 0x80
338
339
340
341// *****************************************************************
342// helper enum for MODEM CONTROL REGISTER (0x10)
343// the modem control register controls the HW flow control, use tr_hal_hw_fc_t enum
344
345
346// *****************************************************************
347// helper defines for LINE STATUS REGISTER (0x14)
348// bit 0 set means data ready
349#define LSR_DATA_READY 0x01
350// bit 1 is set when an incoming character over writes a waiting character
351#define LSR_OVERRUN_ERROR 0x02
352// bit 2 is the parity error
353#define LSR_PARITY_ERROR 0x04
354// bit 3 is framing error
355#define LSR_FRAMING_ERROR 0x08
356// bit 4 is the break interrupt
357#define LSR_BREAK_INDICATOR 0x10
358// bit 5 is THR empty. behavior is different if FIFOs are enabled - see 10.3.8
359// if FIFO is enabled, then this is CLEAR (0) when FIFO is empty
360// if FIFO is disabled, then this is CLEAR (0) when THR is empty (so it can be used again)
361#define LSR_TRANSMITTER_HOLDING_REG_EMPTY 0x20
362// bit 6 is SET(1) when THR is empty and ready to accept characters (in both FIFO and non-FIFO mode)
363#define LSR_TRANSMITTER_EMPTY 0x40
364// this defines the 4 bits for the 4 error bits that need to be cleared on interrupt
365#define CLEAR_RX_ERROR_BY_CLEAR_LSR_BITS 0x1E
366
367// *****************************************************************
368// helper defines for MODEM STATUS REGISTER (0x18)
369#define MSR_DELTA_CTS 0x01
370#define MSR_CTS 0x10
371
372// *****************************************************************
373// these defines help when dealing with the INTERRUPT IDENTIFICATION REGISTER (0x1C)
374#define IIR_RX_DATA_AVAIL_INTERRUPT 0x01
375#define IIR_THR_EMPTY_INTERRUPT 0x02
376#define IIR_RECEIVER_ERROR_INTERRUPT 0x04
377#define IIR_MODEM_STATUS_INTERRUPT 0x08
378#define IIR_RX_DATA_TIMEOUT_INTERRUPT 0x10
379#define IIR_DMA_RX_INTERRUPT 0x20
380#define IIR_DMA_TX_INTERRUPT 0x40
381#define IIR_INTERRUPT_MASK 0x7F
382
383// *****************************************************************
384// helper defines for LOW SPEED MODE (0x28)
385#define LOW_SPEED_MODE_ENABLED 0x01
386#define NORMAL_SPEED_MODE_ENABLED 0x00
387
388// *****************************************************************
389// helper defines for UART WAKE ENABLE (0x2C)
390#define UART_WAKE_ENABLE 0x01
391
392// *****************************************************************
393// helper defines for UART ENABLE (0x30)
394#define UART_ENABLE 0x01
395
396
397// *****************************************************************
398// helper defines for DMA_rx_enable (0x4C) and DMA_tx_enable(0x50) REGISTERs
399#define UART_DMA_ENABLE 0x01
400#define UART_DMA_DISABLE 0x00
401
402
407
408
430#define TR_HAL_NUM_FULL_SPEED_BAUD_RATES 14
431#define TR_HAL_NUM_LPM_BAUD_RATES 14
432#define TR_HAL_NUM_LOW_SPEED_BAUD_RATES 10
433#define TR_HAL_NUM_SLOW_CLOCK_BAUD_RATES 3
434#define TR_HAL_NUM_BAUD_RATES (TR_HAL_NUM_FULL_SPEED_BAUD_RATES + \
435 TR_HAL_NUM_LPM_BAUD_RATES + \
436 TR_HAL_NUM_LOW_SPEED_BAUD_RATES + \
437 TR_HAL_NUM_SLOW_CLOCK_BAUD_RATES)
438
439typedef enum
440{
441 // *******************************************
442 // NOTE: users should ONLY use the first set of values
443 // these are mapped to the correct baud rate
444 // this way the users don't need to map specific baud rate enums to the clock type
445 // *******************************************
446
447 // these are the baud rate values for when using the 32MHz system clock
448 // tr_hal_clock_t clock_mode = TR_HAL_CLOCK_32M
463
464 // these are the baud rate values for when using the 32MHz system clock
465 // and in low_speed_mode enabled
466 // (uart_register_address->low_speed_mode = LOW_SPEED_MODE_ENABLED)
467 // tr_hal_clock_t clock_mode = TR_HAL_CLOCK_16M
482
483 // these are the baud rate values for when using the rco1m clock
484 // tr_hal_clock_t clock_mode = TR_HAL_CLOCK_1M
495
496 // these are the baud rate values for when using the rco32k clock
497 // tr_hal_clock_t clock_mode = TR_HAL_CLOCK_32K
501
502 // error
504
506
507
528
529
530
545
546
547// prototype for callback from the Trident HAL to the app when a byte is received
548typedef void (*tr_hal_uart_receive_callback_t) (uint8_t received_byte);
549
550// prototype for callback from the Trident HAL to the app when an event happens
551typedef void (*tr_hal_uart_event_callback_t) (uint32_t event_bitmask);
552
553
574typedef struct
575{
576 // **** GPIO pins for UART ****
577
578 // TX and RX pin
579 tr_hal_gpio_pin_t tx_pin;
580 tr_hal_gpio_pin_t rx_pin;
581
582 // for hardware flow control - note that ONLY UART1 can do this
583 bool hardware_flow_control_enabled;
584 tr_hal_gpio_pin_t rts_pin;
585 tr_hal_gpio_pin_t cts_pin;
586
587
588 // **** protocol settings ****
589
590 // use the TR_HAL_UART_BAUD_RATE_xxx defines to set this
591 tr_hal_baud_rate_t baud_rate;
593
594 // these use the same bits as LCR - use the LCR defines to set these
595 tr_hal_data_bits_t data_bits;
596 tr_hal_stop_bits_t stop_bits;
597 tr_hal_parity_t parity;
598
599 // **** DMA settings ****
600
601 bool rx_dma_enabled;
602 bool tx_dma_enabled;
603 // note: buffer must STAY allocated
604 uint8_t* rx_dma_buffer;
605 uint16_t rx_dma_buff_length;
606
607
608 // **** non-DMA transmit ****
609
610 // if transmit is not done with DMA, then the app needs to allocate a
611 // transmit buffer and set a pointer to that transmit buffer here
612 uint8_t* raw_tx_buffer;
613 uint16_t raw_tx_buff_length;
614
615
616 // **** receive and event handler functions ****
617
618 // callback from HAL to App when a byte is received
619 // if the app doesn't want this, then set it to NULL
620 tr_hal_uart_receive_callback_t rx_handler_function;
621
622 // callback from HAL to App when an event happens
623 // if the app doesn't want this, then set it to NULL
624 tr_hal_uart_event_callback_t event_handler_fx;
625
626
627 // **** chip behavior settings ****
628
629 // how many bytes before chip triggers the user function: 1, 4, 8, 12, or 0 (never)
630 // default and suggested value is 1
631 tr_hal_fifo_trigger_t rx_bytes_before_trigger;
632
633 // are the chip interrupts enabled?
634 bool enable_chip_interrupts;
635
636 // set the INT priority
637 tr_hal_int_pri_t interrupt_priority;
638
639 // **** sleep behavior ****
640
641 // when we go to deep sleep, the UART is off
642 // when we go to lite sleep, the UART can still run, but needs to use
643 // a different clock and baud rate settings. If we want the UART to run
644 // in lite sleep mode, then set this to true and set valid clock and
645 // baud rate for this UART
649
650 // when the UART is powered off we can choose to DISABLE interrupts, meaning
651 // we will STAY powered off even when events are happening, or we can choose
652 // to KEEP interrupts enabled when powered off. This means we would wake on
653 // interrupt and power the UART back on
654 bool wake_on_interrupt;
655
656 // don't include UART power setting in the config
657 // uart_init puts the UART in the powered on state
658 // uart_power will change the power setting
659
661
662
663// ************************************************************
664// default values so an app can quickly load a reasonable set of values
665// and then make any changes necessary
666//
667// this sets up for 115200 8-n-1, no DMA, and a default interrupt and
668// receive function that can be overridden in the users application
669//
670// ************************************************************
671#define DEFAULT_UART0_CONFIG \
672 { \
673 .tx_pin = (tr_hal_gpio_pin_t) { UART0_TX_PIN_DEFAULT }, \
674 .rx_pin = (tr_hal_gpio_pin_t) { UART0_RX_PIN_DEFAULT }, \
675 .hardware_flow_control_enabled = false, \
676 .rts_pin = (tr_hal_gpio_pin_t) { TR_HAL_PIN_NOT_SET }, \
677 .cts_pin = (tr_hal_gpio_pin_t) { TR_HAL_PIN_NOT_SET }, \
678 .baud_rate = TR_HAL_UART_BAUD_RATE_115200, \
679 .clock_to_use = TR_HAL_CLOCK_32M, \
680 .data_bits = LCR_DATA_BITS_8_VALUE, \
681 .stop_bits = LCR_STOP_BITS_ONE_VALUE, \
682 .parity = LCR_PARITY_NONE_VALUE, \
683 .rx_dma_enabled = false, \
684 .tx_dma_enabled = false, \
685 .rx_dma_buffer = NULL, \
686 .rx_dma_buff_length = 0, \
687 .raw_tx_buffer = NULL, \
688 .raw_tx_buff_length = 0, \
689 .rx_handler_function = NULL, \
690 .rx_bytes_before_trigger = FCR_TRIGGER_1_BYTE, \
691 .enable_chip_interrupts = true, \
692 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
693 .wake_on_interrupt = false, \
694 .event_handler_fx = NULL, \
695 .run_when_sleeping = true, \
696 .sleep_baud_rate = TR_HAL_UART_BAUD_RATE_115200, \
697 .sleep_clock_to_use = TR_HAL_CLOCK_1M, \
698 }
699
700#define DEFAULT_UART1_CONFIG \
701 { \
702 .tx_pin = (tr_hal_gpio_pin_t) { UART1_TX_PIN_DEFAULT }, \
703 .rx_pin = (tr_hal_gpio_pin_t) { UART1_RX_PIN_DEFAULT }, \
704 .hardware_flow_control_enabled = false, \
705 .rts_pin = (tr_hal_gpio_pin_t) { TR_HAL_PIN_NOT_SET }, \
706 .cts_pin = (tr_hal_gpio_pin_t) { TR_HAL_PIN_NOT_SET }, \
707 .baud_rate = TR_HAL_UART_BAUD_RATE_115200, \
708 .clock_to_use = TR_HAL_CLOCK_32M, \
709 .data_bits = LCR_DATA_BITS_8_VALUE, \
710 .stop_bits = LCR_STOP_BITS_ONE_VALUE, \
711 .parity = LCR_PARITY_NONE_VALUE, \
712 .rx_dma_enabled = false, \
713 .tx_dma_enabled = false, \
714 .rx_dma_buffer = NULL, \
715 .rx_dma_buff_length = 0, \
716 .raw_tx_buffer = NULL, \
717 .raw_tx_buff_length = 0, \
718 .rx_handler_function = NULL, \
719 .rx_bytes_before_trigger = FCR_TRIGGER_1_BYTE, \
720 .enable_chip_interrupts = true, \
721 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
722 .wake_on_interrupt = false, \
723 .event_handler_fx = NULL, \
724 .run_when_sleeping = false, \
725 }
726
727#define DEFAULT_UART2_CONFIG \
728 { \
729 .tx_pin = (tr_hal_gpio_pin_t) { UART2_TX_PIN_DEFAULT }, \
730 .rx_pin = (tr_hal_gpio_pin_t) { UART2_RX_PIN_DEFAULT }, \
731 .hardware_flow_control_enabled = false, \
732 .rts_pin = (tr_hal_gpio_pin_t) { TR_HAL_PIN_NOT_SET }, \
733 .cts_pin = (tr_hal_gpio_pin_t) { TR_HAL_PIN_NOT_SET }, \
734 .baud_rate = TR_HAL_UART_BAUD_RATE_115200, \
735 .clock_to_use = TR_HAL_CLOCK_32M, \
736 .data_bits = LCR_DATA_BITS_8_VALUE, \
737 .stop_bits = LCR_STOP_BITS_ONE_VALUE, \
738 .parity = LCR_PARITY_NONE_VALUE, \
739 .rx_dma_enabled = false, \
740 .tx_dma_enabled = false, \
741 .rx_dma_buffer = NULL, \
742 .rx_dma_buff_length = 0, \
743 .raw_tx_buffer = NULL, \
744 .raw_tx_buff_length = 0, \
745 .rx_handler_function = NULL, \
746 .rx_bytes_before_trigger = FCR_TRIGGER_1_BYTE, \
747 .enable_chip_interrupts = true, \
748 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
749 .wake_on_interrupt = false, \
750 .event_handler_fx = NULL, \
751 .run_when_sleeping = false, \
752 }
753
754
760#define TR_HAL_UART_EVENT_DMA_TX_COMPLETE 0x00000001
761#define TR_HAL_UART_EVENT_DMA_RX_BUFFER_LOW 0x00000002
762#define TR_HAL_UART_EVENT_DMA_RX_TO_USER_FX 0x00000004
763#define TR_HAL_UART_EVENT_DMA_RX_READY 0x00000008
764#define TR_HAL_UART_EVENT_TX_COMPLETE 0x00000010
765#define TR_HAL_UART_EVENT_TX_STILL_GOING 0x00000020
766#define TR_HAL_UART_EVENT_RX_TO_USER_FX 0x00000040
767#define TR_HAL_UART_EVENT_RX_READY 0x00000080
768#define TR_HAL_UART_EVENT_RX_ENDED_TO_USER_FX 0x00000100
769#define TR_HAL_UART_EVENT_RX_ENDED_NO_DATA 0x00000200
770#define TR_HAL_UART_EVENT_RX_MAYBE_READY 0x00000400
771#define TR_HAL_UART_EVENT_RX_ERR_OVERRUN 0x00000800
772#define TR_HAL_UART_EVENT_RX_ERR_PARITY 0x00001000
773#define TR_HAL_UART_EVENT_RX_ERR_FRAMING 0x00002000
774#define TR_HAL_UART_EVENT_RX_ERR_BREAK 0x00004000
775#define TR_HAL_UART_EVENT_HW_FLOW_CONTROL 0x00008000
776#define TR_HAL_UART_EVENT_UNEXPECTED 0x00010000
777
778
782
783
784#endif // T32CZ20_UART_H_
tr_hal_int_pri_t
values and a range checking function for setting the interrupt priority in the Trident HAL APIs
Definition tr_hal_platform.h:34
This file contains the CHIP SPECIFIC types and defines for the T32CZ20.
tr_hal_clock_t
enum for the different clocks some of these can be disabled and some cannot, the crystal oscillator c...
Definition T32CZ20_power.h:202
tr_hal_baud_rate_t
Definition T32CM11_uart.h:409
#define interrupt_identification_register
Definition T32CM11_uart.h:227
tr_hal_uart_id_t
Definition T32CM11_uart.h:78
#define TR_HAL_NUM_LOW_SPEED_BAUD_RATES
Definition T32CZ20_uart.h:432
tr_hal_data_bits_t
Definition T32CZ20_uart.h:173
#define TR_HAL_NUM_FULL_SPEED_BAUD_RATES
Definition T32CZ20_uart.h:430
tr_hal_baud_rate_t
Definition T32CZ20_uart.h:440
tr_hal_parity_t
Definition T32CZ20_uart.h:197
#define TR_HAL_NUM_LPM_BAUD_RATES
Definition T32CZ20_uart.h:431
UART_REGISTERS_T * tr_hal_uart_get_uart_register_address(tr_hal_uart_id_t uart_id)
void(* tr_hal_uart_receive_callback_t)(uint8_t received_byte)
Definition T32CZ20_uart.h:548
tr_hal_hw_fc_t
for setting up hardware flow control
Definition T32CZ20_uart.h:207
tr_hal_stop_bits_t
Definition T32CZ20_uart.h:186
tr_hal_fifo_trigger_t
values we can trigger on for receive FIFO
Definition T32CZ20_uart.h:160
tr_hal_uart_id_t
this type is used to specify a UART ID. On the T32CZ20 there are 3 UARTs available.
Definition T32CZ20_uart.h:78
#define TR_HAL_NUM_BAUD_RATES
Definition T32CZ20_uart.h:434
void(* tr_hal_uart_event_callback_t)(uint32_t event_bitmask)
Definition T32CZ20_uart.h:551
@ LCR_DATA_BITS_7_VALUE
Definition T32CZ20_uart.h:176
@ LCR_DATA_BITS_INVALID_VALUE
Definition T32CZ20_uart.h:178
@ LCR_DATA_BITS_6_VALUE
Definition T32CZ20_uart.h:175
@ LCR_DATA_BITS_5_VALUE
Definition T32CZ20_uart.h:174
@ LCR_DATA_BITS_8_VALUE
Definition T32CZ20_uart.h:177
@ TR_HAL_UART_BAUD_RATE_LPM_19200
Definition T32CZ20_uart.h:472
@ TR_HAL_UART_BAUD_RATE_1000000
Definition T32CZ20_uart.h:461
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_57600
Definition T32CZ20_uart.h:492
@ TR_HAL_UART_BAUD_RATE_115200
Definition T32CZ20_uart.h:458
@ TR_HAL_UART_BAUD_RATE_230400
Definition T32CZ20_uart.h:459
@ TR_HAL_UART_BAUD_RATE_LPM_14400
Definition T32CZ20_uart.h:471
@ TR_HAL_UART_BAUD_RATE_ERROR
Definition T32CZ20_uart.h:503
@ TR_HAL_UART_BAUD_RATE_57600
Definition T32CZ20_uart.h:456
@ TR_HAL_UART_BAUD_RATE_LPM_2400
Definition T32CZ20_uart.h:468
@ TR_HAL_UART_BAUD_RATE_500000
Definition T32CZ20_uart.h:460
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_19200
Definition T32CZ20_uart.h:489
@ TR_HAL_UART_BAUD_RATE_2400
Definition T32CZ20_uart.h:449
@ TR_HAL_UART_BAUD_RATE_LPM_28800
Definition T32CZ20_uart.h:473
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_4800
Definition T32CZ20_uart.h:486
@ TR_HAL_UART_BAUD_RATE_76800
Definition T32CZ20_uart.h:457
@ TR_HAL_UART_BAUD_RATE_LPM_2000000
Definition T32CZ20_uart.h:481
@ TR_HAL_UART_BAUD_RATE_LPM_115200
Definition T32CZ20_uart.h:477
@ TR_HAL_UART_BAUD_RATE_LPM_38400
Definition T32CZ20_uart.h:474
@ TR_HAL_UART_BAUD_RATE_LPM_57600
Definition T32CZ20_uart.h:475
@ TR_HAL_UART_BAUD_RATE_SLOW_CLOCK_4800
Definition T32CZ20_uart.h:499
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_76800
Definition T32CZ20_uart.h:493
@ TR_HAL_UART_BAUD_RATE_LPM_9600
Definition T32CZ20_uart.h:470
@ TR_HAL_UART_BAUD_RATE_LPM_1000000
Definition T32CZ20_uart.h:480
@ TR_HAL_UART_BAUD_RATE_SLOW_CLOCK_9600
Definition T32CZ20_uart.h:500
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_38400
Definition T32CZ20_uart.h:491
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_2400
Definition T32CZ20_uart.h:485
@ TR_HAL_UART_BAUD_RATE_19200
Definition T32CZ20_uart.h:453
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_28800
Definition T32CZ20_uart.h:490
@ TR_HAL_UART_BAUD_RATE_LPM_76800
Definition T32CZ20_uart.h:476
@ TR_HAL_UART_BAUD_RATE_LPM_230400
Definition T32CZ20_uart.h:478
@ TR_HAL_UART_BAUD_RATE_9600
Definition T32CZ20_uart.h:451
@ TR_HAL_UART_BAUD_RATE_28800
Definition T32CZ20_uart.h:454
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_9600
Definition T32CZ20_uart.h:487
@ TR_HAL_UART_BAUD_RATE_LPM_500000
Definition T32CZ20_uart.h:479
@ TR_HAL_UART_BAUD_RATE_4800
Definition T32CZ20_uart.h:450
@ TR_HAL_UART_BAUD_RATE_LPM_4800
Definition T32CZ20_uart.h:469
@ TR_HAL_UART_BAUD_RATE_14400
Definition T32CZ20_uart.h:452
@ TR_HAL_UART_BAUD_RATE_38400
Definition T32CZ20_uart.h:455
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_14400
Definition T32CZ20_uart.h:488
@ TR_HAL_UART_BAUD_RATE_LOW_SPEED_115200
Definition T32CZ20_uart.h:494
@ TR_HAL_UART_BAUD_RATE_2000000
Definition T32CZ20_uart.h:462
@ TR_HAL_UART_BAUD_RATE_SLOW_CLOCK_2400
Definition T32CZ20_uart.h:498
@ LCR_PARITY_EVEN_VALUE
Definition T32CZ20_uart.h:200
@ LCR_PARITY_NONE_VALUE
Definition T32CZ20_uart.h:198
@ LCR_PARITY_ODD_VALUE
Definition T32CZ20_uart.h:199
@ LCR_PARITY_INVALID_VALUE
Definition T32CZ20_uart.h:201
@ MCR_SET_CTS_ENABLED
Definition T32CZ20_uart.h:210
@ MCR_NO_FLOW_CONTROL_VALUE
Definition T32CZ20_uart.h:208
@ MCR_SET_RTS_READY
Definition T32CZ20_uart.h:209
@ LCR_STOP_BITS_TWO_VALUE
Definition T32CZ20_uart.h:188
@ LCR_STOP_BITS_ONE_VALUE
Definition T32CZ20_uart.h:187
@ LCR_STOP_BITS_INVALID_VALUE
Definition T32CZ20_uart.h:189
@ FCR_TRIGGER_14_BYTES
Definition T32CZ20_uart.h:164
@ FCR_TRIGGER_8_BYTES
Definition T32CZ20_uart.h:163
@ FCR_NO_TRIGGER
Definition T32CZ20_uart.h:165
@ FCR_TRIGGER_4_BYTES
Definition T32CZ20_uart.h:162
@ FCR_TRIGGER_1_BYTE
Definition T32CZ20_uart.h:161
@ UART_0_ID
Definition T32CZ20_uart.h:79
@ UART_2_ID
Definition T32CZ20_uart.h:81
@ UART_1_ID
Definition T32CZ20_uart.h:80
Definition T32CM11_uart.h:189
pin type
Definition tr_hal_platform.h:23
Definition T32CM11_uart.h:470
tr_hal_clock_t sleep_clock_to_use
Definition T32CZ20_uart.h:648
tr_hal_clock_t clock_to_use
Definition T32CZ20_uart.h:592
bool run_when_sleeping
Definition T32CZ20_uart.h:646
tr_hal_baud_rate_t sleep_baud_rate
Definition T32CZ20_uart.h:647
This is the common include file for the Trident HAL GPIO Driver.