CH340B 搭配 ESP32 速度的問(wèn)題

最近我在用 CH340B 制作一個(gè) UEFI Shell 助手工具(開(kāi)源硬件),但是在設(shè)計(jì)時(shí)發(fā)現(xiàn)串口無(wú)法達(dá)到需要的波特率。最高只有 115200*2 和我預(yù)期的 1Mhz 相差甚遠(yuǎn)。為了排除我代碼問(wèn)題,特別設(shè)計(jì)測(cè)試程序如下:

word?checksum=0;
word?counter=0;
unsigned?long?elsp=0;
?
void?setup()?{
??Serial.begin(1000000);
??delay(300);
}
?
void?loop()?{
??while?(Serial.available())?{
??????char?c=Serial.read();
??????checksum=checksum+c;
??????counter++;
??????elsp=millis();
????}
?
??if?(((millis()-elsp>1000)&&(elsp!=0)))?{
??????Serial.print("Received?");Serial.println(counter);
??????Serial.print("Checksum?");Serial.println(checksum,HEX);
??????checksum=0;
??????counter=0;
??????elsp=0;
????}
}

這個(gè)代碼是運(yùn)行在 ESP32 上的 Arduino 代碼,動(dòng)作非常簡(jiǎn)單:不斷從串口接收數(shù)據(jù),如果1s以內(nèi)沒(méi)有數(shù)據(jù)就將收到數(shù)據(jù)的 checksum 和收到的數(shù)量打印出來(lái)。測(cè)試使用你們家的工具發(fā)送一個(gè) 64K 文件,其中65535個(gè)0,1個(gè)為1因此checksum 輸出應(yīng)該為1。下面是我遇到的問(wèn)題:


這是我制作的設(shè)備,我使用 CH340B 芯片:

1629117100290680.jpg


測(cè)試可以看到每次發(fā)送都會(huì)有多接收漏數(shù)據(jù)和出錯(cuò)的情況,如果我將波特率降低為 115200 那么是完成正常的。

1629117100187407.png


下面是我的電路圖

1629117100173836.png

CH340B 在背面, RX/TX 有一個(gè)過(guò)孔連接到 ESP32上:

1629117100102110.png


作為對(duì)比,我進(jìn)行如下實(shí)驗(yàn)


1.使用DFRobot FireBeetle, 它用的是 CH340C 的芯片:

1629117100438410.jpg


同樣的代碼,運(yùn)行結(jié)果如下,可以看到?jīng)]有問(wèn)題。這個(gè)實(shí)驗(yàn)?zāi)軌蛘f(shuō)明前面的測(cè)試代碼沒(méi)有問(wèn)題。

1629117100938095.png


2.使用nanoESP32 開(kāi)發(fā)板,測(cè)試結(jié)果和前面類似,在1M波特率下工作一塌糊涂,這個(gè)使用的是 Ch340C 芯片

1629117100123653.jpg


3. ESP32-S2-Saola-1 樂(lè)鑫科技 ESP32-S2 開(kāi)發(fā)板,這是 ESP32 官方開(kāi)發(fā)板使用的是 CP210X 的芯片,可以看到工作良好。

1629117100251628.png


所以,我現(xiàn)在不清楚我遇到的問(wèn)題是什么原因?qū)е碌摹N矣X(jué)得有如下可能性:

1.????? 假的 CH340B;

2.????? 布線問(wèn)題. 我發(fā)現(xiàn)之前的也有同樣的問(wèn)題,例如:CH340B 在頂部,也有同樣的現(xiàn)象

1629117100198674.png

希望得到大佬的指點(diǎn),以便解決這個(gè)問(wèn)題。謝謝!


您好,確認(rèn)串口信號(hào)線是否直連,若串聯(lián)電阻或經(jīng)過(guò)三極管等均會(huì)影響其速率,根據(jù)上面的pcb,串口信號(hào)受布線影響可能性很小。為方便排查問(wèn)題,可以考慮在ESP32的接收引腳同時(shí)再并聯(lián)接到另一個(gè)USB轉(zhuǎn)串口芯片的接收引腳(用于監(jiān)控),這樣可以明確是否為發(fā)送本身問(wèn)題。


二者之間是直接相連的,中間沒(méi)有任何元件。晚上我會(huì)嘗試并聯(lián)一個(gè)USB轉(zhuǎn)串口芯片進(jìn)行實(shí)驗(yàn)。


謝謝!


image.png


進(jìn)一步調(diào)試,忽然想起來(lái)我之前有打過(guò)單獨(dú)的 CH340B 的板子,于是直接測(cè)試 Loop.


正面如下,這個(gè)板子足夠小,因此應(yīng)該也沒(méi)有布線太長(zhǎng)的問(wèn)題:

1629197990151002.jpg


背后直接用跳線將TX 和 RX 接到一起:

1629197990421762.jpg

測(cè)試方法和之前的相同,可以看到有丟失數(shù)據(jù)的情況發(fā)生。比如:發(fā)送 30576 字節(jié),但是接收到的只有 30557字節(jié)。再右側(cè)能看到,中間有丟失逗號(hào)的情況發(fā)生。


ch340.png


您好,請(qǐng)問(wèn)測(cè)試時(shí)右下角定時(shí)時(shí)間設(shè)置多少,還是發(fā)送區(qū)中一次發(fā)送30576字節(jié)?若為單次發(fā)送大數(shù)據(jù),串口接收溢出的可能性較高。另,有時(shí)間可以做下如上的數(shù)據(jù)監(jiān)控測(cè)試?;蛘咭部梢詫⒛鷾y(cè)試的設(shè)備寄給我做對(duì)比驗(yàn)證,排查問(wèn)題點(diǎn)。


一次性發(fā)送 32K 數(shù)據(jù),然后測(cè)試多次。


我使用邏輯分析儀查看了, 每隔 1024 字節(jié)會(huì)有4ms的間隔,我猜測(cè)你們內(nèi)部緩沖是 1024字節(jié)的是吧?


然后我設(shè)置每次發(fā)送 1024字節(jié),有相同的問(wèn)題。這個(gè)能排除串口接收溢出了吧?


這幾天我從立創(chuàng)商城購(gòu)買(mǎi)了? CH340B 和? CH340C , 然后重新做了一個(gè) PCB 再試試。


如果不好用還請(qǐng)幫忙。謝謝!


我重新在立創(chuàng)商城下的訂單,購(gòu)買(mǎi)的 CH340B 和 CH340C 的芯片,驚奇的發(fā)現(xiàn)他們表現(xiàn)差別很大,CH340C 明顯好于 B。


例如,一次性發(fā)送 64K 的文件, 1M波特率,Ch340B 就會(huì)出現(xiàn)丟失數(shù)據(jù)的情況:

1629726421141240.png


但是 CH340C 不會(huì)

1629726421224640.png


二者使用相同的 PCB, Loopback 測(cè)試:


Ch340bC.jpg


請(qǐng)問(wèn)他們?cè)谑褂蒙希珺的需要做特別設(shè)定嗎?


您好,使用CH340B不需要特殊設(shè)定??船F(xiàn)象,CH340B應(yīng)為串口數(shù)據(jù)溢出。另,串口發(fā)送數(shù)據(jù)是不會(huì)發(fā)生丟失的,只會(huì)出現(xiàn)在接收側(cè)。如果要滿足高波特率通訊,也可以考慮使用收發(fā)效率和支持速率更高的新一代USB轉(zhuǎn)串口芯片:CH343。

http://special.wch.cn/zh_cn/produce/?

另,關(guān)于一開(kāi)始討論的ESP32接收數(shù)據(jù)丟失/出錯(cuò)現(xiàn)象并非同一類問(wèn)題。因USB轉(zhuǎn)串口側(cè)發(fā)送數(shù)據(jù)不會(huì)丟失,若接收不完整,懷疑是誤差率的問(wèn)題可能性較高。


您好,我前后說(shuō)的是同一個(gè)問(wèn)題。開(kāi)始我在 ESP32 上使用你們家的 CH340B 發(fā)現(xiàn)有問(wèn)題,


然后進(jìn)一步分析發(fā)現(xiàn) CH340 自身 loopback 都能看到同樣的現(xiàn)象。前后說(shuō)的是同一個(gè)事情的,


后者是前者分析的結(jié)果。


請(qǐng)問(wèn) CH340B 接收緩沖區(qū)有多大? 我可以修改ESP32 上程序代碼來(lái)避免這個(gè)問(wèn)題。


謝謝!


您好,可以先與我電話溝通相關(guān)測(cè)試情況,張工:18951773290


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频