一、背景
最近在做一臺(tái)小機(jī)器,設(shè)備初步規(guī)劃使用幾個(gè)實(shí)體按鈕,這樣方便用戶戴手套操作。但因?yàn)樵O(shè)備有一些需要配置的參數(shù),有需要配備屏幕。但是開發(fā)時(shí)間比較緊??紤]再三,決定先在初步配備一個(gè)簡單的控制箱??刂葡渖喜粠聊弧:笃谂鋫湟粋€(gè)無線連接的屏幕。這樣用戶在需要設(shè)置參數(shù)的時(shí)候通過無線連接到設(shè)備上就可以配置。另一方面,如果用戶不想使用無線連接的屏幕,也可以在后期開發(fā)一個(gè)app,只要設(shè)備接入無線局域網(wǎng)也可以控制設(shè)備。這時(shí)候就想到了使用ESP32。以前用過幾次ESP32,但是ESP32-S3還是第一次用。因?yàn)镋SP32-S3帶有更多的IO,同時(shí)藍(lán)牙支持BLE5.[ESP32支持雙模藍(lán)牙,其實(shí)也不錯(cuò)。]這次就決定使用ESP32-S3.
二、發(fā)現(xiàn)問題
經(jīng)過一番電路設(shè)計(jì)、layout、制板、焊接之后,windows可以完美識(shí)別,并在設(shè)備管理器上呈現(xiàn)了兩個(gè)設(shè)備。
一個(gè)是USB串行設(shè)備,一個(gè)是 USB/JTAG設(shè)備。一切似乎很完美。然后在vscode里面的esp-idf用blink example來測試配置工程。編譯正常,但是令人疑惑的是當(dāng)我用vscode的flash直接下載的時(shí)候?!皊tart openocd”之后,就失敗了。
提示信息大概如下(因?yàn)椴幌朐俑‖F(xiàn)失敗了,就沒法截屏):
Warn : Transport "jtag" was already selected
[OpenOCD] Info : Listening on port 6666 for tcl connections Info : Listening on port 4444
[OpenOCD] for telnet connections
[OpenOCD] ? Error: libusb_open() failed with LIBUSB_ERROR_NOT_FOUND
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
[OpenOCD] ? Error: esp_usb_jtag: could not find or open device!
三、問題解決?
然后去官網(wǎng)瀏覽解決方案。找到一些openocd相關(guān)的教程。
測試發(fā)現(xiàn)openocd也正常運(yùn)行,說明openocd安裝本身沒有問題。
只看到有一個(gè)用命令行燒寫程序的教程,測試成功:
idf.py -p PORT flash
# 我這里將PORT改為了我的COM5
這再一次說明了我的設(shè)備,應(yīng)該是驅(qū)動(dòng)成功了。
四、最終解決方案
最終解決方案是在第二天解決的。其實(shí)就是按照前一天的思路找esp32-s3的官方usb/jtag驅(qū)動(dòng)。
官網(wǎng)的網(wǎng)頁如下:Configure ESP32-S3 built-in JTAG interface
里面提到windows系統(tǒng)可能會(huì)遇到LIBUSB_ERROR_NOT_FOUND 的問題??磥硖崾拘畔⒅械年P(guān)鍵字就是“LIBUSB_ERROR_NOT_FOUND?”,只是最初沒有想到。
解決方法如下:
在Powershell (wt命令)里面輸入以下命令
Invoke-WebRequest 'https://dl.espressif.com/dl/idf-env/idf-env.exe' -OutFile .\idf-env.exe; .\idf-env.exe driver install --espressif
windows就會(huì)自動(dòng)從上面提到的網(wǎng)址中下載驅(qū)動(dòng),并用idf-env去安裝驅(qū)動(dòng)。如果路徑設(shè)置的好,可以將驅(qū)動(dòng)直接下載到你已經(jīng)存在的.espressif下。如果配置不好也沒有關(guān)系,在安裝好之后,可以手動(dòng)將驅(qū)動(dòng)安裝文件轉(zhuǎn)移到你自己的文件夾下。以保證下次安裝的時(shí)候可以按照傳統(tǒng)的方法更換驅(qū)動(dòng)程序。
因?yàn)橹耙呀?jīng)配置成功。這里只展示我手動(dòng)刪除設(shè)備和驅(qū)動(dòng)之后,初次默認(rèn)安裝的驅(qū)動(dòng)和手動(dòng)選擇指定驅(qū)動(dòng)的地方。
?
?上圖說明:
1.? 2023/3/20/21:51:02的時(shí)候我手動(dòng)刪除了設(shè)備和驅(qū)動(dòng)
2.??2023/3/20/21:51:08 我手動(dòng)刷新,windows默認(rèn)安裝的驅(qū)動(dòng)。并啟動(dòng)了設(shè)備??梢钥吹绞请S后配置和更新的是WINUSB驅(qū)動(dòng)。
3.?2023/3/20/21:53:01 涉及的兩條是配置了oem205,但是winusb并未啟動(dòng)。
如果你深入進(jìn)去可以看到兩個(gè)驅(qū)動(dòng)的供應(yīng)商不一樣。一個(gè)是microsoft,另一個(gè)是libwdi。
總之在經(jīng)過以上配置之后,就可以使用自帶的usb/jtag下載程序了。
?
五、其它注意事項(xiàng)
idf-env的github鏈接,里面也提到了此命令。
上面命令成功的關(guān)鍵是設(shè)備的狀態(tài)正常。我的設(shè)備有時(shí)候會(huì)在啟動(dòng)的時(shí)候進(jìn)入特殊狀態(tài)。這時(shí)程序沒有正常跑,此時(shí)是不能正常燒寫程序的。文章來源:http://www.zghlxwxcb.cn/news/detail-437645.html
做完這一步下一步就是使用openocd調(diào)試了。任重而道遠(yuǎn),后會(huì)有期。文章來源地址http://www.zghlxwxcb.cn/news/detail-437645.html
到了這里,關(guān)于ESP32-S3 自帶usb/jtag初步嘗試體驗(yàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!