Blame

1ac0eb Bob Green 2026-03-19 08:22:37
1
# Duart
2
3
## Definitions
113790 Bob Green 2026-03-29 13:22:30
4
### Duart
ff6730 Bob Green 2026-03-19 08:23:22
5
#### vasm
1ac0eb Bob Green 2026-03-19 08:22:37
6
```asm
7
8
```
ff6730 Bob Green 2026-03-19 08:23:22
9
#### gcc
1ac0eb Bob Green 2026-03-19 08:22:37
10
```c
b396d9 Bob Green 2026-04-16 11:23:26
11
/* Duart Register Base Addresses */
12
#define duart_base ((volatile uint8_t*) 0xad0001)
13
14
#define duart_mr1a ((volatile uint8_t*) duart_base)
15
#define duart_mr2a ((volatile uint8_t*) duart_base)
16
#define duart_sra ((volatile uint8_t*) duart_base+2)
17
#define duart_csra ((volatile uint8_t*) duart_base+2)
18
#define duart_cra ((volatile uint8_t*) duart_base+4)
19
#define duart_rba ((volatile uint8_t*) duart_base+6)
20
#define duart_tba ((volatile uint8_t*) duart_base+6)
21
#define duart_ipcr ((volatile uint8_t*) duart_base+8)
22
#define duart_acr ((volatile uint8_t*) duart_base+8)
23
#define duart_isr ((volatile uint8_t*) duart_base+10)
24
#define duart_imr ((volatile uint8_t*) duart_base+10)
25
#define duart_cur ((volatile uint8_t*) duart_base+12)
26
#define duart_ctur ((volatile uint8_t*) duart_base+12)
27
#define duart_clr ((volatile uint8_t*) duart_base+14)
28
#define duart_ctlr ((volatile uint8_t*) duart_base+14)
29
#define duart_mr1b ((volatile uint8_t*) duart_base+16)
30
#define duart_mr2b ((volatile uint8_t*) duart_base+16)
31
#define duart_srb ((volatile uint8_t*) duart_base+18)
32
#define duart_csrb ((volatile uint8_t*) duart_base+18)
33
#define duart_crb ((volatile uint8_t*) duart_base+20)
34
#define duart_rbb ((volatile uint8_t*) duart_base+22)
35
#define duart_tbb ((volatile uint8_t*) duart_base+22)
36
#define duart_ivr ((volatile uint8_t*) duart_base+24)
37
#define duart_opcr ((volatile uint8_t*) duart_base+26)
38
#define duart_start_counter ((volatile uint8_t*) duart_base+28)
39
#define duart_opr_set ((volatile uint8_t*) duart_base+28)
40
#define duart_stop_counter ((volatile uint8_t*) duart_base+30)
41
#define duart_opr_reset ((volatile uint8_t*) duart_base+30)
42
43
/* Status Register A and B */
44
#define SR_RXRDY 0x01
45
#define SR_RX_READY 0x01
46
#define SR_TXRDY 0x04
47
#define SR_TX_READY 0x04
48
#define SR_TX_EMPTY 0x08
49
50
/* Command Register A and B */
51
#define CR_NOP 0x00
52
#define CR_RESET_MR_PTR 0x10
53
#define CR_RESET_RX 0x20
54
#define CR_RESET_TX 0x30
55
#define CR_RESET_ERROR 0x40
56
#define CR_RESET_BREAK 0x50
57
#define CR_START_BREAK 0x60
58
#define CR_STOP_BREAK 0x70
59
#define CR_SET_EXT_RX 0x80
60
#define CR_CLEAR_EXT_RX 0x90
61
#define CR_SET_EXT_TX 0xa0
62
#define CR_CLEAR_EXT_TX 0xb0
63
#define CR_STANDBY_MODE 0xc0
64
#define CR_ACTIVE_MODE 0xd0
65
66
#define CR_ENABLE_TX 0x04
67
#define CR_DISABLE_TX 0x08
68
#define CR_ENABLE_RX 0x01
69
#define CR_DISABLE_RX 0x02
70
71
/* Interrupt Status Register */
72
#define GLOBAL_ISR_TXRDY_A 0x01
73
#define GLOBAL_ISR_RXRDY_A 0x02
74
#define GLOBAL_ISR_TXRDY_B 0x10
75
#define GLOBAL_ISR_RXRDY_B 0x20
76
77
#define ISR_TX_READY 0x01
78
#define ISR_RX_READY 0x02
1ac0eb Bob Green 2026-03-19 08:22:37
79
```