TLC16550C ace(异步通行设备) 文档学习

 

TLC16550C含有 autoflow control.

auto_/RTS,  auto_/CTS  这种模式能防止覆盖接受端缓冲区,但是发射端缓冲区到底如何,就要看你的驱动程序了。

/RTS 是request to send, 是输出信号,意思是要对方发送数据。

/CTS是 clear to send ,是输入信号,意思是已收到/RTS,可以发送数据。

/DSR,/DTR也是类似理解。

硬件部分涉及各种读写时序图,电气特性,在电路图设计时有用。

 

软件寄存器功能及其设置。

 

 

void init_serial(void)

    CSR=CSR&0xfffffffe;//dsp register

   EXP=0x0;

    LCR = 0x80; //先设置波特率寄存器

    DLL = 0x30;   

    DLM = 0x00;  

    LCR = 0x03;    

    FCR = 0x01;    

    MCR = 0x20;      

    IER = 0x01;

    CSR=CSR|1;

 

}

LC16550C寄存器有只读/只写区分,IIR类似中断标志寄存器(IFR),这种外设一般都带有自己的一套中断控制系统,而暴露一个外中断。

编程经验:

 

按照上述模式设置寄存器,唯一没有考虑的问题是如何消除串口错误状态,这在我的程序实践中:是靠空闲时反复读一些只读寄存器来消除的。

实际上应该有更好的清除模式才对。

使用瑞泰DSP6713-A板的工程师们,可以一起来探讨这个问题,但是上述方案确实可以让串口重返正确状态。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章