欢迎来到天天文库
浏览记录
ID:50812002
大小:29.00 KB
页数:2页
时间:2020-03-14
《MSP430串口波特率的设置与计算.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MSP430波特率的计算给定一个BRCLK时钟源,波特率用来决定需要分频的因子N: N=fBRCLK/Baudrate分频因子N通常是非整数值,因此至少一个分频器和一个调制阶段用来尽可能的接近N。如果N等于或大于16,可以设置UCOS16选择oversamplingbaudRate模式注:Round():指四舍五入。Low-FrequencyBaudRateModeSetting 在low-frequencymode,整数部分的因子可以由预分频实现: UCBRx=INT
2、(N) 小数部分的因子可以用下列标称公式通过调制器实现: UCBRSx=round((N–INT(N))×8) 增加或减少UCBRSx一个计数设置,对于任何给定的位可能得到一个较低的最高比特误码率。如果确定是这样的情况UCBRSx设置的每一位必须执行一个精确的错误计算。 例1:1048576Hz频率下驱动以115200波特率异步通讯 ACLK=REFO=~32768Hz,MCLK=SMCLK=defaultDCO=32xACLK=1048576Hz。 N=fBRCLK/Baudrate =104
3、8576/115200=~9.10 UCBRx=INT(N)=INT(9.10)=9 UCBRSx=round((N–INT(N))×8) =round((9.10–9)×8)=round(0.8)=1 UCA0CTL1
4、=UCSSEL_2;//选SMCLK为时钟 UCAxBR0=9; UCAxBR1=0; UCAxMCTL=0x02;//7-4:UCBRFx,3-1:UCBRSx,0:UCOS16 UCBRSx为寄存器UCAxMCTL的1-3位,所以写入0x02
5、(00000010) 例2:32768Hz频率下驱动以2400波特率异步通ACLK=REFO=~32768Hz,MCLK=SMCLK=DCO~1.045MHz N=fBRCLK/Baudrate =32768/2400=~13.65 UCBRx=INT(N)=INT(13.65)=13 UCBRSx=round((N–INT(N))×8) =round((13.65–13)×8)=round(5.2)=5 UCA0CTL1
6、=UCSSEL_1;
7、 //选ACLK为时钟 UCAxBR0=13;UCAxBR1=0; UCAxMCTL=0x0A;//7-4:UCBRFx,3-1:UCBRSx,0:UCOS16 UCBRSx为寄存器UCAxMCTL的1-3位,所以写入0x0A(00001010)OversamplingBaudRateModeSetting在oversamplingmode与分频器设置如下: UCBRx=INT(N/16)第一个调制阶段设置如下: UCBRFx=round(((N/16)–INT(N
8、/16))×16)当要求更精确时,UCBRSx也可以被设置成0-7。例1:1048576Hz频率下驱动以9600波特率异步通讯 UCBRx=INT(N/16)=INT(fBRCLK/Baudrate/16) UCBRx=INT(1048576Hz/(16*9600))=INT(~6.8) UCBRFx=round(((N/16)–INT(N/16))×16) =round(( 6.8–6)×16)=13 UCAxCTL1
9、=UCSSEL_2;//选SMCLK为时钟 UCAxBR0=6
10、; //1MHz9600 UCAxBR1=0; //1MHz9600 UCAxMCTL=0xD1; //7-4:UCBRFx,3-1:UCBRSx,0:UCOS16 UCBRFx为寄存器UCAxMCTL的4-7位,UCOS16为0位,所以写入0xD1(11010001) 具体的寄存器值设置在MSP430F5438User'sGuide的
此文档下载收益归作者所有