TMS320F2812通过TL16C554扩展两个串口(串口A和串口B)。
TMS320F2812的/XCS0&1信号与TL16C554的/CSA相连,即TL16C554的串口A通道寄存器基地址为0x002000;TMS320F2812的/XCS2信号与TL16C554的/CSB相连,即TL16C554的串口B通道寄存器基地址为0x080000。
TMS320F2812使用查询方式控制TL16C554的两个串口。其中串口A收发数据正常;串口B收发数据均不正常。从LSR寄存器读回的值一直是0xFF00(表示发送保持寄存器和发送寄存器均不空,接收寄存器没有数据)。
其中TMS320F2812的XINTF的ZONE0和ZONE2的设置相同。
调试情况(仿真在RAM中调试):
1:配置TL16C554串口B时,通过示波器可以采到/CSB管教的变低(时间约200ns,TMS320F2812的ZONE2的LEAD/ACTIVE/TRAIL设置为3/7/3)。
2:配置TL16C554串口B时,通过观察窗口和内存试图可以看到相应内容随之变化;配置TL16C554串口B时,观察窗口和内存试图看不到内容变化,都是0xFF00。
3:偶然机会,发现在地址0x100000及后面的内容随TL16C554串口B配置内容变化。
4:不查询状态,隔一定时间直接往TL16C554串口B的发送寄存器写数据,可以发出正确数据;但硬读接收寄存器,还是读不到内容(循环给TL16C554串口B发送数据)。
关于芯片,使用了TI的样片,现象依旧。 |