MSP430精準配置高速串口波特率的方法
3 系統工作頻率計算
對于定時器A0,其時鐘源頻率為F0,使定時器A0工作在計數器模式下并設置每計數T0次產生一次中斷,即每中斷一次的時間t0為:

對于定時器A1,其時鐘源頻率為F1,使定時器A1工作在計數器模式下并設置每計數T1次產生一次中斷,即每中斷一次的時問t1為:


4 波特率設置
對于給定串口時鐘源BRCLK,分頻因子N滿足:
N=BRCLK/Baudrate
分頻因子N常常不是整數,因此,至少需要一個分頻計數器和一個調整器來產生一個近似于分頻因子N的數。
在低頻模式下,整數部分分頻因子滿足:
UCBRx=INT(N)
且分數部分滿足下列公式:
UCBRSx=round[(N-INT(N))×8]
設置波特率程序如下:
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 方案驗證
如方案3所述,先測出串口時鐘源的當前頻率,再根據該頻率設置波特率寄存器及調整器的值。將修改后的程序下載到串口能通信和串口不能通信的多個設備進行驗證。通過示波器測試發現,被測設備的時鐘頻率存在差異,各設備之間的頻率不一定相同,同時發現串口的實際波特率與理論波特率一致,其表現形式為串口能正常通信。至此,方案3通過驗證,該方案可有效避免因串口時鐘源時鐘偏移導致不能通信的問題。
結語
實踐證明,計算出內部時鐘經過倍頻后的高頻時鐘,再根據該時鐘頻率設置串口波特率的方法可行。該方法從純軟件的角度有效地解決了單片機內部時鐘頻率不穩定,單片機因環境溫度、氣壓、電磁等導致系統時鐘頻率偏差,以及單片機器件之間的差異性等因素導致串口通信失敗的問題。
本文引用地址:http://www.104case.com/article/153443.htm
數字通信相關文章:數字通信原理
通信相關文章:通信原理
負離子發生器相關文章:負離子發生器原理 塵埃粒子計數器相關文章:塵埃粒子計數器原理 晶振相關文章:晶振原理 離子色譜儀相關文章:離子色譜儀原理
評論