前言
使用過51單片機(jī)的朋友會(huì)清楚:51單片機(jī)在燒寫程序的時(shí)候需要斷一下電再上電;使用過STM32單片機(jī)的朋友會(huì)清楚:燒寫程序時(shí)需要設(shè)置Boot模式。ESP8266在燒寫程序時(shí)也需要手動(dòng)設(shè)置模式,STM32的ISP自動(dòng)下載電路都有了,那么ESP8266有沒有自動(dòng)下載電路呢?答案是有的。下面來分析。
自動(dòng)下載電路設(shè)計(jì)
ESP8266下載過程中發(fā)現(xiàn)每次都需要去設(shè)置GPIO0的狀態(tài),如何實(shí)現(xiàn)自動(dòng)給實(shí)現(xiàn)GPIO0電平狀態(tài)的切換呢?看下面的電路。 可以看到這個(gè)下載電路相對(duì)于普通的CH340G下載電路,這個(gè)電路是把CH340G芯片中的DTR和RTS引腳引出到兩個(gè)S8050的三極管上,去控制nRST和GPIO0的電平。
ESP8266下載模式
根據(jù)ESP8266芯片資料要求的下載流程,必須在GPIO0為低電平的狀態(tài)下,復(fù)位芯片,才會(huì)進(jìn)入U(xiǎn)SART下載模式。 我們看看該自動(dòng)下載電路是怎么實(shí)現(xiàn)這個(gè)流程時(shí)序的,首先我們還是得從核心器件CH340G分析入手。
核心器件CH340系列
CH340G 是一個(gè)USB轉(zhuǎn)串口的集成芯片,關(guān)鍵性能參數(shù)如下: 可以看到數(shù)據(jù)手冊(cè)中的引腳描述:DTR#引腳是MODEM聯(lián)絡(luò)輸出信號(hào),數(shù)據(jù)終端就緒,低(高)有效,在USB配置完成之前作為配置輸入引腳,可以外接4.7KΩ的下拉電阻在USB枚舉期間產(chǎn)生默認(rèn)的低電平。RTS#引腳MODEM聯(lián)絡(luò)輸出信號(hào),請(qǐng)求發(fā)送,低(高)有效。這兩個(gè)MODEM聯(lián)絡(luò)信號(hào)是由計(jì)算機(jī)應(yīng)用程序控制并定義其用途的,在軟件下發(fā)點(diǎn)擊下載按鈕后,通常會(huì)給DTR#拉低、RTS拉高,然后延時(shí)一段時(shí)間后,拉高DTR#,RTS#恢復(fù)到低電平。 注意: 新設(shè)計(jì)的電路板可以選用CH340C,內(nèi)置晶振,無需外接晶振。 從原理圖中可以看到這個(gè)兩個(gè)引腳連接的邏輯電路如下:
端口真值表
根據(jù)該電路,可以知道當(dāng) DTR為1, RTS為0時(shí), nRST復(fù)位引腳拉低,反之,GPIO0 引腳拉低,得到的邏輯關(guān)系圖如下:
這樣的化,在點(diǎn)擊下載按鈕后,CH340G芯片的DTR處于低電平,RTS處于高電平,此時(shí)ESP8266的GPIO0被拉低,復(fù)位RST信號(hào)為高,ESP8266進(jìn)入下載模式,CH340G的DTR和RTS電平翻轉(zhuǎn)后,RST為0,GPIO0變1,ESP8266進(jìn)入Flash運(yùn)行模式,程序正常運(yùn)行。這樣就實(shí)現(xiàn)了ESP8266自動(dòng)下載。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!