552/554的串口1,波特率发生器精度这么差?

文档上写串口1 UART1 具有独立的波特率发生器  我想这独立的发生器,起码速率会更高更精确,结果超过115200就乱码,低速4800以下更是不行。这个独立波特率发生器是不是有什么使用秘诀,能够传授一下吗

我也不需要多快的速度来代替340,有个接近1M速度就可以了,结果才115200。。。。 有点大跌眼睛啊。


 > 提供2个全双工异步串口,都支持高波特率通讯,UART0为标准MCS51串口;

高波特率最高有多高,技术人员应该知道吧,透露点。


芯片是有USB功能的,为了满足USB的功能,主频只有限定几个可选

使用USB可选主频如下:




/*
   Fxt = 24MHz(8MHz~25MHz for non-USB application), from external oscillator @XI&XO
   Fosc = bOSC_EN_INT ? 24MHz : Fxt
   Fpll = Fosc * 4 => 96MHz (32MHz~100MHz for non-USB application)
   Fusb4x = Fpll / 2 => 48MHz (Fixed)
   MASK_SYS_CK_SEL[2] [1] [0]



   Fsys = Fpll/3   =  32MHz:  1   1   1
   Fsys = Fpll/4   =  24MHz:  1   1   0
   Fsys = Fpll/6   =  16MHz:  1   0   1
   Fsys = Fpll/8   =  12MHz:  1   0   0
   Fsys = Fpll/16  =   6MHz:  0   1   1
   Fsys = Fpll/32  =   3MHz:  0   1   0
   Fsys = Fpll/128 = 750KHz:  0   0   1
   Fsys = Fpll/512 =187.5KHz: 0   0   0
*/


波特率和普通51一样,使用定时器作为波特率发送,其中一种算法如下:
    x = FREQ_SYS / UART0_BUAD / 16;                                       //如果更改主频,注意x的值不要溢出    
串口协议规定波特率误差不能大于2%,这个常识应该都知道,这个也能解释为什么有些波特率不能正常用。


以下是具体的可用波特率表格

icon_txt.gifCH5XX波特率.xlsx


包含CH559、CH558、CH554系列、CH54X系列,详情请看表格



了解了,51就是不行。ch340/341是RSIC吧。类似ch536这种。


你可以看看558、559,串口1,波特率产生不使用定时器产生,由内部主频产生独立的分频时钟,支持波特率比较好。

请问你有什么应用需求?或者产品侧重哪一块,可以探讨下,按照签名的联系方式联系我就可以。

也许我们可以给你推荐,省了你一个个翻芯片了。


ch554/552  计时器是1T还是12T的?


bTMR_CLK


timer0 internal clock frequency selection: 0=standard clock, Fsys/12, 1=faster clock, Fsys/4 if bTMR_CLK=0 or Fsys if bTMR_CLK=1


只有登录才能回复,可以选择微信账号登录