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