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板的工程師們,可以一起來探討這個問題,但是上述方案確實可以讓串口重返正確狀態。

 

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