自中科昊芯推出專題講解SCI串口通信以來,第一期主要講解SCI串口FIFO通信原理,本期主要講解SCI串口自動波特率,FIFO中斷通信邏輯將在下期內容中講解。
HX2000系列SCI模塊原理框圖如下,自動波特率時,模塊將工作于標準SCI模式,其功能可通過SCIFFTX[SCIFFENA]置零選擇,其發送、接收與讀取過程為:DSP端通過CPU,將數據裝載到發送緩沖寄存器SCITXBUF中。使其能發送TXENA信號,通過TXSHF移位寄存器,逐步將SCITXBUF中的數據,移位到SCITXD引腳上。通過GPIOMUX配置發送SCITXD引腳,通過CH340等串行數據傳輸線向PC發送數據,以實現發送功能。通過GPIOMUX配置SCIRXD引腳,使得DSP端接收,PC端通過CH340等串行數據傳輸線發送的數據。使能接收RXENA信號,通過RXSHF移位寄存器,逐步將接收數據,移位到接收數據緩沖寄存器SCIRXBUF,以實現接收功能。通過SCIRXST[RXRDY]可判斷,當前是否接收到數據,以便于CPU讀取接收到的數據。
在HX2000系列SCI模塊中,通過SPIFFTX[SPIRST]使能,可使SCI自動波特率邏輯工作,其編程過程為:設置初始波特率為1或小于500kbps,以便于自動調整任意波特率。使能SCIFFCT[CDC]選擇標準SCI工作于自動波特率模式。使能SCIFFCT[ABDCLR]以清除ABD位,以備自動波特率。PC端發送“A”或“a”,等待主機接收“A”或“a”成功,以完成自動波特率與校準,同時產生SCI傳輸FIFO中斷TXINT;使能SCIFFCT[ABDCLR]以清除ABD位,以響應中斷。清除CDC位以鎖定當前設置的波特率,以防止重復中斷。
由此設計SCI串口AutoBud通信實例:采用SCI與串口CH340,通過串口調試助手,向CPU發送41,PC端接收到41后,任意發送一組數據,CPU接收所發送的數據。
基于以上分析,在CDK上開發SCI AutoBud自動波特率程序,代碼包括:SCI GPIO外設引腳配置,標準SCI功能配置程序,SCI自動波特率配置程序,發送與接收程序,主程序調用執行。主要代碼如下:
1.intmain(void)
2.{
3./*初始化系統控制:PLL,WatchDog,使能外設時鐘*/
4.InitSysCtrl();
5./*初始化pie中斷控制*/
6.InitPieCtrl();
7.
8./*禁止CPU中斷并清除所有中斷標志*/
9.IER=0x0000;
10.IFR=0x0000;
11.
12./*初始化PIE向量表,為PIE向量表中的所有中斷向量配置對應向量的入口地址*/
13.InitPieVectTable();
14.
15./*配置Scia_Gpio*/
16.Scia_Gpio();
17.
18./*SCIA標準模式配置*/
19.SCIA_Init();
20.
21./*SCIA自動波特率配置*/
22.SCIA_AutobaudLock();
23.while(1)
24.{
25./*等待SCI接收到數據,以從RXBUF中讀取PC端發送的數據*/
26.while(SciaRegs.SCIRXST.bit.RXRDY!=1){}
27./*將SCI接收的數據裝載到,發送緩沖寄存器TXBUF中*/
28.SciaRegs.SCITXBUF=SciaRegs.SCIRXBUF.bit.RXDT;
29.}
30.return0;
31.}
CDK上開發SCI 串口自動波特率,其編譯結果為:
編譯通過后,就可以開始調試了,其調試結果如下:
調試后,可通過串口調試助手查看自動波特率狀態、發送與接收到的數據如下圖:
關于中科昊芯
“智由芯生 創享未來”,中科昊芯是數字信號處理器專業供應商。作為中國科學院科技成果轉化企業,瞄準國際前沿芯片設計技術,依托多年積累的雄厚技術實力及對產業鏈的理解,以開放積極的心態,基于開源指令集架構RISC-V,打造多個系列數字信號處理器產品,并構建完善的處理器產品生態系統。產品具有廣闊的市場前景,可廣泛應用于工業控制及電機驅動、數字電源、光伏、儲能、新能源汽車、消費電子、白色家電等領域。
-
芯片
+關注
關注
453文章
50394瀏覽量
421788 -
通信
+關注
關注
18文章
5969瀏覽量
135851
發布評論請先 登錄
相關推薦
評論