自中科昊芯推出專題講解SCI串口通信以來,第一期主要講解SCI串口FIFO通信原理,本期主要講解SCI串口自動波特率,F(xiàn)IFO中斷通信邏輯將在下期內(nèi)容中講解。
HX2000系列SCI模塊原理框圖如下,自動波特率時,模塊將工作于標準SCI模式,其功能可通過SCIFFTX[SCIFFENA]置零選擇,其發(fā)送、接收與讀取過程為:DSP端通過CPU,將數(shù)據(jù)裝載到發(fā)送緩沖寄存器SCITXBUF中。使其能發(fā)送TXENA信號,通過TXSHF移位寄存器,逐步將SCITXBUF中的數(shù)據(jù),移位到SCITXD引腳上。通過GPIOMUX配置發(fā)送SCITXD引腳,通過CH340等串行數(shù)據(jù)傳輸線向PC發(fā)送數(shù)據(jù),以實現(xiàn)發(fā)送功能。通過GPIOMUX配置SCIRXD引腳,使得DSP端接收,PC端通過CH340等串行數(shù)據(jù)傳輸線發(fā)送的數(shù)據(jù)。使能接收RXENA信號,通過RXSHF移位寄存器,逐步將接收數(shù)據(jù),移位到接收數(shù)據(jù)緩沖寄存器SCIRXBUF,以實現(xiàn)接收功能。通過SCIRXST[RXRDY]可判斷,當前是否接收到數(shù)據(jù),以便于CPU讀取接收到的數(shù)據(jù)。
在HX2000系列SCI模塊中,通過SPIFFTX[SPIRST]使能,可使SCI自動波特率邏輯工作,其編程過程為:設(shè)置初始波特率為1或小于500kbps,以便于自動調(diào)整任意波特率。使能SCIFFCT[CDC]選擇標準SCI工作于自動波特率模式。使能SCIFFCT[ABDCLR]以清除ABD位,以備自動波特率。PC端發(fā)送“A”或“a”,等待主機接收“A”或“a”成功,以完成自動波特率與校準,同時產(chǎn)生SCI傳輸FIFO中斷TXINT;使能SCIFFCT[ABDCLR]以清除ABD位,以響應(yīng)中斷。清除CDC位以鎖定當前設(shè)置的波特率,以防止重復(fù)中斷。
由此設(shè)計SCI串口AutoBud通信實例:采用SCI與串口CH340,通過串口調(diào)試助手,向CPU發(fā)送41,PC端接收到41后,任意發(fā)送一組數(shù)據(jù),CPU接收所發(fā)送的數(shù)據(jù)。
基于以上分析,在CDK上開發(fā)SCI AutoBud自動波特率程序,代碼包括:SCI GPIO外設(shè)引腳配置,標準SCI功能配置程序,SCI自動波特率配置程序,發(fā)送與接收程序,主程序調(diào)用執(zhí)行。主要代碼如下:
CDK上開發(fā)SCI 串口自動波特率,其編譯結(jié)果為:
編譯通過后,就可以開始調(diào)試了,其調(diào)試結(jié)果如下:
調(diào)試后,可通過串口調(diào)試助手查看自動波特率狀態(tài)、發(fā)送與接收到的數(shù)據(jù)如下圖:
-
寄存器
+關(guān)注
關(guān)注
31文章
5493瀏覽量
127722 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7292瀏覽量
93371 -
代碼
+關(guān)注
關(guān)注
30文章
4921瀏覽量
72209 -
SCI
+關(guān)注
關(guān)注
1文章
59瀏覽量
20719
發(fā)布評論請先 登錄
波特率是什么
可編程電源的通信波特率應(yīng)如何設(shè)置?
基于瑞薩64位MPU RZ/G2L的uboot串口多波特率支持介紹

MAX13051 ±80V故障保護CAN收發(fā)器,具有自動波特率模式技術(shù)手冊

RS232通信的波特率設(shè)置說明
波特率設(shè)置中的常見問題解析
波特率與串行通信的關(guān)系 各種設(shè)備波特率轉(zhuǎn)換的方法
常見的波特率標準和協(xié)議
Wi-Fi與藍牙的波特率對比分析
波特率設(shè)置在串口通信中的重要性
波特率的定義和計算方法 波特率與數(shù)據(jù)傳輸速度的關(guān)系
MCU串口自動識別波特率原理分析

評論