文檔上寫串口1?UART1 具有獨(dú)立的波特率發(fā)生器? 我想這獨(dú)立的發(fā)生器,起碼速率會(huì)更高更精確,結(jié)果超過115200就亂碼,低速4800以下更是不行。這個(gè)獨(dú)立波特率發(fā)生器是不是有什么使用秘訣,能夠傳授一下嗎
我也不需要多快的速度來代替340,有個(gè)接近1M速度就可以了,結(jié)果才115200。。。。 有點(diǎn)大跌眼睛啊。
?>?提供2個(gè)全雙工異步串口,都支持高波特率通訊,UART0為標(biāo)準(zhǔn)MCS51串口;
高波特率最高有多高,技術(shù)人員應(yīng)該知道吧,透露點(diǎn)。
芯片是有USB功能的,為了滿足USB的功能,主頻只有限定幾個(gè)可選
使用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一樣,使用定時(shí)器作為波特率發(fā)送,其中一種算法如下:
??? x = FREQ_SYS / UART0_BUAD / 16;?????????????????????????????????????? //如果更改主頻,注意x的值不要溢出????
串口協(xié)議規(guī)定波特率誤差不能大于2%,這個(gè)常識(shí)應(yīng)該都知道,這個(gè)也能解釋為什么有些波特率不能正常用。
了解了,51就是不行。ch340/341是RSIC吧。類似ch536這種。
你可以看看558、559,串口1,波特率產(chǎn)生不使用定時(shí)器產(chǎn)生,由內(nèi)部主頻產(chǎn)生獨(dú)立的分頻時(shí)鐘,支持波特率比較好。
請(qǐng)問你有什么應(yīng)用需求?或者產(chǎn)品側(cè)重哪一塊,可以探討下,按照簽名的聯(lián)系方式聯(lián)系我就可以。
也許我們可以給你推薦,省了你一個(gè)個(gè)翻芯片了。
ch554/552? 計(jì)時(shí)器是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