自中科昊芯推出專題講解SCI串口通信以來,第一期主要講解SCI串口FIFO通信原理,本期主要講解SCI串口自動(dòng)波特率,F(xiàn)IFO中斷通信邏輯將在下期內(nèi)容中講解。
HX2000系列SCI模塊原理框圖如下,自動(dòng)波特率時(shí),模塊將工作于標(biāo)準(zhǔn)SCI模式,其功能可通過SCIFFTX[SCIFFENA]置零選擇,其發(fā)送、接收與讀取過程為:DSP端通過CPU,將數(shù)據(jù)裝載到發(fā)送緩沖寄存器SCITXBUF中。使其能發(fā)送TXENA信號(hào),通過TXSHF移位寄存器,逐步將SCITXBUF中的數(shù)據(jù),移位到SCITXD引腳上。通過GPIOMUX配置發(fā)送SCITXD引腳,通過CH340等串行數(shù)據(jù)傳輸線向PC發(fā)送數(shù)據(jù),以實(shí)現(xiàn)發(fā)送功能。通過GPIOMUX配置SCIRXD引腳,使得DSP端接收,PC端通過CH340等串行數(shù)據(jù)傳輸線發(fā)送的數(shù)據(jù)。使能接收RXENA信號(hào),通過RXSHF移位寄存器,逐步將接收數(shù)據(jù),移位到接收數(shù)據(jù)緩沖寄存器SCIRXBUF,以實(shí)現(xiàn)接收功能。通過SCIRXST[RXRDY]可判斷,當(dāng)前是否接收到數(shù)據(jù),以便于CPU讀取接收到的數(shù)據(jù)。

在HX2000系列SCI模塊中,通過SPIFFTX[SPIRST]使能,可使SCI自動(dòng)波特率邏輯工作,其編程過程為:設(shè)置初始波特率為1或小于500kbps,以便于自動(dòng)調(diào)整任意波特率。使能SCIFFCT[CDC]選擇標(biāo)準(zhǔn)SCI工作于自動(dòng)波特率模式。使能SCIFFCT[ABDCLR]以清除ABD位,以備自動(dòng)波特率。PC端發(fā)送“A”或“a”,等待主機(jī)接收“A”或“a”成功,以完成自動(dòng)波特率與校準(zhǔn),同時(shí)產(chǎn)生SCI傳輸FIFO中斷TXINT;使能SCIFFCT[ABDCLR]以清除ABD位,以響應(yīng)中斷。清除CDC位以鎖定當(dāng)前設(shè)置的波特率,以防止重復(fù)中斷。
由此設(shè)計(jì)SCI串口AutoBud通信實(shí)例:采用SCI與串口CH340,通過串口調(diào)試助手,向CPU發(fā)送41,PC端接收到41后,任意發(fā)送一組數(shù)據(jù),CPU接收所發(fā)送的數(shù)據(jù)。
基于以上分析,在CDK上開發(fā)SCI AutoBud自動(dòng)波特率程序,代碼包括:SCI GPIO外設(shè)引腳配置,標(biāo)準(zhǔn)SCI功能配置程序,SCI自動(dòng)波特率配置程序,發(fā)送與接收程序,主程序調(diào)用執(zhí)行。主要代碼如下:
1.intmain(void)2.{3./*初始化系統(tǒng)控制:PLL,WatchDog,使能外設(shè)時(shí)鐘*/4.InitSysCtrl();5./*初始化pie中斷控制*/6.InitPieCtrl();7.8./*禁止CPU中斷并清除所有中斷標(biāo)志*/9.IER=0x0000;10.IFR=0x0000;11.12./*初始化PIE向量表,為PIE向量表中的所有中斷向量配置對(duì)應(yīng)向量的入口地址*/13.InitPieVectTable();14.15./*配置Scia_Gpio*/16.Scia_Gpio();17.18./*SCIA標(biāo)準(zhǔn)模式配置*/19.SCIA_Init();20.21./*SCIA自動(dòng)波特率配置*/22.SCIA_AutobaudLock();23.while(1)24.{25./*等待SCI接收到數(shù)據(jù),以從RXBUF中讀取PC端發(fā)送的數(shù)據(jù)*/26.while(SciaRegs.SCIRXST.bit.RXRDY!=1){}27./*將SCI接收的數(shù)據(jù)裝載到,發(fā)送緩沖寄存器TXBUF中*/28.SciaRegs.SCITXBUF=SciaRegs.SCIRXBUF.bit.RXDT;29.}30.return0;31.}CDK上開發(fā)SCI 串口自動(dòng)波特率,其編譯結(jié)果為:

編譯通過后,就可以開始調(diào)試了,其調(diào)試結(jié)果如下:

調(diào)試后,可通過串口調(diào)試助手查看自動(dòng)波特率狀態(tài)、發(fā)送與接收到的數(shù)據(jù)如下圖:

關(guān)于中科昊芯
“智由芯生 創(chuàng)享未來”,中科昊芯是數(shù)字信號(hào)處理器專業(yè)供應(yīng)商。作為中國(guó)科學(xué)院科技成果轉(zhuǎn)化企業(yè),瞄準(zhǔn)國(guó)際前沿芯片設(shè)計(jì)技術(shù),依托多年積累的雄厚技術(shù)實(shí)力及對(duì)產(chǎn)業(yè)鏈的理解,以開放積極的心態(tài),基于開源指令集架構(gòu)RISC-V,打造多個(gè)系列數(shù)字信號(hào)處理器產(chǎn)品,并構(gòu)建完善的處理器產(chǎn)品生態(tài)系統(tǒng)。產(chǎn)品具有廣闊的市場(chǎng)前景,可廣泛應(yīng)用于工業(yè)控制及電機(jī)驅(qū)動(dòng)、數(shù)字電源、光伏、儲(chǔ)能、新能源汽車、消費(fèi)電子、白色家電等領(lǐng)域。
-
芯片
+關(guān)注
關(guān)注
463文章
54007瀏覽量
465952 -
通信
+關(guān)注
關(guān)注
18文章
6391瀏覽量
140038
發(fā)布評(píng)論請(qǐng)先 登錄
使用內(nèi)置晶振的話,串口波特率最大可以設(shè)置多少,不會(huì)丟包嗎?
支持小數(shù)波特率的意義是什么
請(qǐng)問支持小數(shù)波特率接收數(shù)據(jù)的意義在哪兒?
UART波特率計(jì)算及UART收發(fā)回顯實(shí)驗(yàn)
【作品合集】中科昊芯Core_DSC280025C開發(fā)板測(cè)評(píng)
芯新聞|昊芯亮相第五屆RISC-V中國(guó)峰會(huì),共繪開源芯片新紀(jì)元
波特率是什么
【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+SCI測(cè)試與代碼解讀
【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+3.DSP基礎(chǔ)外設(shè)調(diào)試(含源碼)
可編程電源的通信波特率應(yīng)如何設(shè)置?
【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+1.開箱之浮點(diǎn)計(jì)算對(duì)比
喜訊!中科昊芯完成Pre-B+輪融資,加速RISC-V DSP芯片的技術(shù)創(chuàng)新與應(yīng)用推廣
MAX13051 ±80V故障保護(hù)CAN收發(fā)器,具有自動(dòng)波特率模式技術(shù)手冊(cè)
加速高關(guān)稅下國(guó)產(chǎn)替代!昊芯攜全自研RISC-V DSP家族亮相上海慕尼黑電子展
芯教程丨平頭哥助力中科昊芯HX2000系列芯片專題SCI串口通信(二)AutoBaud自動(dòng)波特率
評(píng)論