我比較喜歡玩esp32開(kāi)發(fā)板,也制作一些esp32的小產(chǎn)品,所以也做過(guò)一些esp32燒錄器。以前制作的燒錄器是使用cp2102芯片制作的,現(xiàn)在國(guó)產(chǎn)化趨勢(shì)越來(lái)越多,我手上也有ch343p芯片沒(méi)使用,所以就打算做一款基于ch343p的燒錄器。
芯片介紹
CH343P是南京沁恒(WCH)推出的一款高性能USB轉(zhuǎn)高速異步串口橋接芯片,采用QFN-16封裝,兼具高集成度、低功耗和廣泛兼容性,適用于工業(yè)自動(dòng)化、物聯(lián)網(wǎng)、嵌入式系統(tǒng)等領(lǐng)域。
以下是其核心特性和應(yīng)用解析:
一、主要功能與參數(shù)
- 通信性能
- 高速傳輸:支持全速USB 2.0協(xié)議,串口波特率最高達(dá)6Mbps(是CH340系列的3倍),覆蓋50bps~6Mbps范圍,支持115200bps及以下波特率的動(dòng)態(tài)自適應(yīng)。
- 多協(xié)議兼容:支持UART異步串口協(xié)議,可配置5~8位數(shù)據(jù)位及奇/偶/無(wú)校驗(yàn)?zāi)J健?/li>
- 硬件流控:集成CTS/RTS硬件自動(dòng)流控,支持半雙工RS485通信(通過(guò)TNOW信號(hào)控制收發(fā)切換)。
- 電源與功耗
- 寬電壓支持:USB端支持5V供電,串口I/O獨(dú)立供電(1.8V~5V),兼容不同電平設(shè)備。
- 低功耗設(shè)計(jì):待機(jī)模式下電流僅2μA,適合電池供電場(chǎng)景。
原理圖介紹
由于燒錄器只需要3.3V電平,也不需要對(duì)外供3.3V電壓,所以直接使用芯片內(nèi)部的LDO作為VIO電壓源。所以我需要在V3引腳接一個(gè)1uf或者100nf的電容,由于我這邊只需要3.3V接VIO,不需要接LED或者其他,就沒(méi)必要接大電容了(而且芯片內(nèi)部LDO最大電流似乎也只有15ma)。
下圖是ch343p的外圍電路,可以看到外圍非常簡(jiǎn)單,VDD支持直接接5V,所以直接接USB的VBUS就可以了。
![]()
然后串口狀態(tài)指示燈可以直接用5V接限流電阻即可(不需要接3.3V),這邊實(shí)際使用的是2K或者4K的電阻,這樣LED的亮度剛好合適,不至于閃瞎眼,也不至于太小不明顯。
![]()
ESP32的自動(dòng)下載電路,其實(shí)和非常多開(kāi)源的方案一樣,一開(kāi)始我是使用了雙NPN三極管的元件(內(nèi)置基級(jí)電阻),后來(lái)出現(xiàn)點(diǎn)小問(wèn)題,才換了MOS實(shí)現(xiàn)。
其實(shí)esp32的自動(dòng)下載電路原理非常簡(jiǎn)單,就是使用了串口的DTR和RTS功能,去操作BOOT和EN信號(hào)。我們知道,ESP32的下載模式是,EN信號(hào)觸發(fā)時(shí)(低電平變高電平的上升沿),BOOT信號(hào)為0。
實(shí)現(xiàn)步驟如下:
步驟1:設(shè)置DTR=1(高電平)、RTS=0(低電平)
- EN被拉低(Q3.2導(dǎo)通),GPIO0保持高電平(內(nèi)部弱上拉或者外部上拉電阻)
步驟2:切換為DTR=0(低電平)、RTS=1(高電平)
- GPIO0被拉低(Q3.1導(dǎo)通),EN因電容充電仍保持低電平
步驟3:等待電容充電完成(約100ms)
- EN緩慢上升至高電平,形成上升沿,此時(shí)GPIO0已穩(wěn)定為低電平,觸發(fā)下載模式
完成后DTR和RTS引腳都恢復(fù)成高電平狀態(tài)。
這樣就實(shí)現(xiàn)了上位機(jī)控制串口芯片,實(shí)現(xiàn)一鍵下載的前提,也就是控制esp32進(jìn)入下載模式。
![]()
板子的3D預(yù)覽圖如下圖
![]()
焊接時(shí)出現(xiàn)的故障(插入U(xiǎn)SB無(wú)設(shè)備提醒,通電電流僅幾百ua)
由于通電電流極低,不符合正常工作電流3ma的情況,可以判斷就是ch343p芯片虛焊造成的,重新焊接ch343p芯片后就可以正常使用了。
使用時(shí)出現(xiàn)的特殊故障(ch343p比esp32先上電)
由于我有一些板子是比較特殊的,設(shè)計(jì)時(shí)加入了一鍵控制電源的電路,esp32在關(guān)機(jī)狀態(tài)下是沒(méi)有接電的。在使用這個(gè)燒錄器的時(shí)候,遇到一些問(wèn)題。
問(wèn)題復(fù)現(xiàn)如下: 若一鍵下載電路是使用三極管實(shí)現(xiàn),上電順序?yàn)閁SB燒錄器(ch343p)-> esp32模組(由于上電MOS導(dǎo)通有時(shí)間差,約幾十ms內(nèi)),會(huì)出現(xiàn)BOOT信號(hào)被一直拉低,芯片無(wú)法正常工作的情況(一直處在下載模式)。
后來(lái)經(jīng)過(guò)排查,發(fā)現(xiàn)是ch343p的DTR引腳一直輸出低電平,RTS一直是高電平,然后三極管拉低BOOT引腳,導(dǎo)致模組一直處于燒錄下載狀態(tài)。
查閱芯片規(guī)格書后發(fā)現(xiàn),ch343p的DTR引腳其實(shí)是和TNOW功能復(fù)用的,然后在ch343p上電的過(guò)程中,會(huì)檢測(cè)DTR引腳是否存在下拉電阻,在這個(gè)過(guò)程中,如果esp32未上電,會(huì)通過(guò)三極管漏電到boot或者en引腳,導(dǎo)致芯片誤認(rèn)為存在下拉電阻,從而切換到TNOW模式。
網(wǎng)上搜索到,可以將三極管換成MOS解決這個(gè)問(wèn)題。更換了MOS方案后,我這邊的esp32c2開(kāi)發(fā)板就沒(méi)有這個(gè)問(wèn)題,然后我這邊使用esp32、esp32c3,esp32s3開(kāi)發(fā)板測(cè)試后,依然有部分開(kāi)發(fā)板會(huì)引發(fā)這個(gè)故障(先插ch343p,再給開(kāi)發(fā)板上電)。然后我又嘗試在boot和en引腳加二極管防電流倒灌到開(kāi)發(fā)板,依然存在這個(gè)故障。
最后還是建議以后在設(shè)計(jì)板子的時(shí)候,還是盡量保證ch343p和模組同時(shí)上電,或者ch343p上電前給模組上電,熱插拔模式就不大建議了(先插ch343p再接燒錄線)。又或者更換成ch340e芯片,可能會(huì)更穩(wěn)妥一些,雖然速率沒(méi)有ch343p這么高,也夠用了。
當(dāng)初選擇ch343p這款芯片,也是覺(jué)得這塊芯片體積非常小,速率又高,沒(méi)想到會(huì)遇到這種問(wèn)題。
最后是曬一下成品燒錄器,還是很迷你的。
![]()
來(lái)源:電子工程世界(EEWorld) 作者:walker2048
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.