MSP430精準(zhǔn)配置高速串口波特率的方法
3 系統(tǒng)工作頻率計(jì)算
對(duì)于定時(shí)器A0,其時(shí)鐘源頻率為F0,使定時(shí)器A0工作在計(jì)數(shù)器模式下并設(shè)置每計(jì)數(shù)T0次產(chǎn)生一次中斷,即每中斷一次的時(shí)間t0為:
對(duì)于定時(shí)器A1,其時(shí)鐘源頻率為F1,使定時(shí)器A1工作在計(jì)數(shù)器模式下并設(shè)置每計(jì)數(shù)T1次產(chǎn)生一次中斷,即每中斷一次的時(shí)問t1為:
4 波特率設(shè)置
對(duì)于給定串口時(shí)鐘源BRCLK,分頻因子N滿足:
N=BRCLK/Baudrate
分頻因子N常常不是整數(shù),因此,至少需要一個(gè)分頻計(jì)數(shù)器和一個(gè)調(diào)整器來產(chǎn)生一個(gè)近似于分頻因子N的數(shù)。
在低頻模式下,整數(shù)部分分頻因子滿足:
UCBRx=INT(N)
且分?jǐn)?shù)部分滿足下列公式:
UCBRSx=round[(N-INT(N))×8]
設(shè)置波特率程序如下:
division_factor=f_smclk/(Baudrate*1.0);
UCA0BR0=(int)division_factor;
UCA0BR1=((int)division_factor)>>8;
UCA0MCTL|=(int)((division_factor_(int)division_factor)*8);
5 方案驗(yàn)證
如方案3所述,先測(cè)出串口時(shí)鐘源的當(dāng)前頻率,再根據(jù)該頻率設(shè)置波特率寄存器及調(diào)整器的值。將修改后的程序下載到串口能通信和串口不能通信的多個(gè)設(shè)備進(jìn)行驗(yàn)證。通過示波器測(cè)試發(fā)現(xiàn),被測(cè)設(shè)備的時(shí)鐘頻率存在差異,各設(shè)備之間的頻率不一定相同,同時(shí)發(fā)現(xiàn)串口的實(shí)際波特率與理論波特率一致,其表現(xiàn)形式為串口能正常通信。至此,方案3通過驗(yàn)證,該方案可有效避免因串口時(shí)鐘源時(shí)鐘偏移導(dǎo)致不能通信的問題。
結(jié)語(yǔ)
實(shí)踐證明,計(jì)算出內(nèi)部時(shí)鐘經(jīng)過倍頻后的高頻時(shí)鐘,再根據(jù)該時(shí)鐘頻率設(shè)置串口波特率的方法可行。該方法從純軟件的角度有效地解決了單片機(jī)內(nèi)部時(shí)鐘頻率不穩(wěn)定,單片機(jī)因環(huán)境溫度、氣壓、電磁等導(dǎo)致系統(tǒng)時(shí)鐘頻率偏差,以及單片機(jī)器件之間的差異性等因素導(dǎo)致串口通信失敗的問題。
本文引用地址:http://butianyuan.cn/article/153443.htm
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理 塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 晶振相關(guān)文章:晶振原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評(píng)論