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