TI中文支持网
TI专业的中文技术问题搜集分享网站

求助:关于MSP430 6723波特率小数的问题,debug的寄存器和手册明显不一样

如图,左边是 6723 的 技术参考手册,左下角页码916页。 右边是debug时候出来的寄存器内容——MCTL这个寄存器明显对不上啊。

我现在在32768hz下设置9600波特率,  整数部分是 3 ,小数部分必须是5300才可以(不过采样  ucos == 0),为什么最高4位必须害的有5啊      不是round((32768/9600-3)) = 3吗,那个5是干嘛的。

还有4800波特率 怎么还是0x5300(实践)才准,0x5600(理论推测)不准。

望官方给出答复!

灰小子:

不是ti官方。建议楼主提供下代码。

不知道楼主用的什么开发软件?UCAxMCTL是一个字节的长度,这里确显示两个字节0x0000

澐碁:

回复 灰小子:

P1SEL |= (BIT4 + BIT5);// P1.4,P1.5 = USCI_A1 RXD,TXD// PMAP_CONTROL->PMAPKEYID = PMAPKEY;;P1MAP->P1MAP45 |=( PM_UCA1RXD| ((u16)PM_UCA1TXD <<8));// P1MAP->P1MAP45 |=( PM_UCA1TXD| ((u16)PM_UCA1RXD <<8));
//PMAP_CONTROL->PMAPKEYID = 0;//用完记得Lock上P1DIR &= ~BIT4;P1REN |= BIT4;P1OUT |= BIT4;P1DIR |=BIT5;P1DS|= BIT5;P1OUT |= BIT5;// P1DS|= (BIT4 + BIT5);UART1->CTLW0 |= UCSWRST;UART1->CTLW0 |= UCSSEL_1 ;// UART1->CTLW0 |= UCSSEL_1 |UCMODE0 |UCPEN | UCPAR ;//Dormant、ACLK、IDLE,,带偶检验UART1->BRW= 32768/2400;//鸟玩意不能9600,4800也不稳定UART1->MCTLW= 0x5300;UART1->CTLW0 &= ~UCSWRST;//关闭复位UART1->IE|= UCRXIE;// Enable USCI_A1 RX interrupt
Jacky Xu:

关于在32.768khz下来配置UART好还是采用高频的内部时钟好。不是不可以,而是官方给出的参考误码率,已经可以说明一些问题。即使是在2400这么低的频率下,采用32.768k所可能产生的误码率也是大大高于高频时钟的。采用内部高频时钟,虽然可能由于电压的变化和温湿度环境不同可能也会有误差。但即使将所有这些DCO的频率变化因素考虑进去,其实误码率也是要大大小于采用低频时钟时所造成的误码的。

对于计算值不准,实践值准的问题,这个是基于你的实验测试板来说。并不能cover所有的问题。

澐碁:

回复 Jacky Xu:

我是问问,那个小数怎么算啊。手册给的和Debug明显不一样啊

灰小子:

回复 澐碁:

例如,用32768的晶振频率,配置9600波特率

32768/9600=3.41

取整就是3,所以UCBRx=3

(3.41-3)*8=3.31

取整是3,所以UCBRSx=3

澐碁:

回复 灰小子:

是的。但是还是不对。必须是0x5300. 没有5还是乱码。

我用的6723.不止这个,其他6723的设备也是

灰小子:

回复 澐碁:

你用的什么开发软件?

灰小子:

回复 灰小子:

另外,建议上传下代码

Jacky Xu:

回复 澐碁:

32.768K时钟,根本不适合做9600波特率通讯的时钟

20% 40%的误码率。。。

这应该是为什么你按照理论值收不准的原因。

赞(0)
未经允许不得转载:TI中文支持网 » 求助:关于MSP430 6723波特率小数的问题,debug的寄存器和手册明显不一样
分享到: 更多 (0)