TMS320C32扩展异步串口的方法
TL16C550A一共使用8个地址对内部寄存器进行访问和控制。相对DSP C32系统而言,如果使用了上面的译码逻辑电路,则占用的8个地址为:0X818000~0X818007。
TLl6C550A串行接口寄存器的寻址表如表1所示。
表1 TL16C550A的寄存器寻址表
DLAB* | A2 A1 A0 | 寄 存 器 名 | 属 性 | 地址值 |
0 | 0 0 0 | 接收缓冲寄存器RBR | 只读 | 0X818000 |
0 | 0 0 0 | 发送缓冲寄存器TBR | 只写 | 0X818000 |
0 | 0 0 1 | 中断使能寄存器IER | 读/写 | 0X818001 |
X | 0 1 0 | 中断标志寄存器IIR | 只写 | 0X818002 |
X | 0 1 0 | FIFO控制寄存器FCR | 只写 | 0X818002 |
X | 0 1 1 | 线路控制寄存器LCR | 读/写 | 0X818003 |
X | 1 0 0 | MODEM控制寄存器MCR | 读/写 | 0X818004 |
X | 1 0 1 | 线路状态寄存器LSR | 读/写 | 0X818005 |
X | 1 1 0 | MODEM状态寄存器MSR | 读/写 | 0X818006 |
X | 1 1 1 | 便签寄存器SCR | 读/写 | 0X818007 |
1 | 0 0 0 | 除数低字节锁存器DLL | 读/写 | 0X818000 |
1 | 0 0 1 | 除数低字节锁存器DLH | 读/写 | 0X818001 |
DLAB表示线路控制寄存器的第7位的逻辑值。
在程序中,使用逻辑地址0X818000~0X818007对TLl6C550A的各个寄存器进行寻址就可以了。
本文介绍的三种实现C32异步串行口的方法,前两种方法使用不是非常方便,而且占用了大量的C32系统资源,一般都使用第三种方法来实现C32和PC机之间的通信。
使用TL16C550实现DSP和PC机的通信,接口方便、控制简单、编程灵活,试验证明它是非常简便可靠的实现方法。
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论