• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

ESP32初學(xué)者都要踩那些坑0?

03/13 15:01
1370
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

做產(chǎn)品的時候,我曾對ESP32嗤之以鼻,覺得它只不過是一個小玩具,可靠性,易用性,抗干擾等都沒辦法用來做到實際產(chǎn)品里面,直到后來,小米的一些智能家居用品開始大批量采用,讓我稍稍改變了一些觀念,但是,我依然不會在產(chǎn)品里面使用它。

不過,ESP的性價比以及可玩性確實非常牛逼,牛逼到我固守著“32們”的順手經(jīng)驗,都不敢去碰它。因為它看起來相對單片機要復(fù)雜。

實在抵擋不住它的高性價比和高可玩度,現(xiàn)在AI又盛行起來,必須要嘗試一下。

我從來都不是一個好學(xué)生,老老實實的啃幾天數(shù)據(jù)手冊也從來不是我的作風(fēng),所以直接擼,反正立創(chuàng)打板子免費,手里又有些破爛IC。

我直接按照官方推薦的最小系統(tǒng)設(shè)計圖復(fù)刻了一個,然后右面增加了一個PAN3029的無線收發(fā)器。不出所料,亂拳打死老師傅呀,而我就是那個老師傅。

花了半天的時間焊好了三塊,0402的小元件,逼瞎了我的眼睛,上電的一瞬間還是頗有成就感,出院兩年了,我得手終于不那么抖了。很快,電腦上的USB就彈出了端口6。

要說這esp32還真是方便,直接串口就可以燒寫,而且上電就能打印log信息,只要拉低GPIO0上電復(fù)位,系統(tǒng)就會進入下載狀態(tài),至少到這一步,我們能夠確認,板子上電沒問題,CP2102也沒問題,串口通信也OK。

接下來,怎么開發(fā)難住了我,有兩個選擇,一個是基于vs code的IDF,一個是基于arduino的IDE,由于我從來沒使用過arduino,本身也想帶孩子學(xué)習(xí)一下編程,那么首選就是arduino。

在ardiuno的IDE里面,我們需要安裝ESP32的開發(fā)板,可以從開發(fā)板管理器中直接搜索想要的芯片方案。

我選了官方出的這一個,至此,不得不說,這比“32們”搭建環(huán)境可方便太多了,這里也有stm32的一些開發(fā)板可以選,有空得玩一玩。除此之外,這里還有很多軟件庫,我簡單瀏覽了一下,非常全面。

我在開發(fā)板中隨便選了個一個ESP32 S3的板子,找到了最經(jīng)典的blink工程,編譯,下載,一氣呵…

嗯? ?打不開串口,原來是占用了,關(guān)掉其他的串口調(diào)試工具。再來一遍。

看來一氣呵成挺難的,這里的log顯示,沒有接收到串口數(shù)據(jù),我看上面信息顯示,它把波特率改為921600了,會不會是速度太快了呢?或者說沒有修改成功?

從上面的chip型號,晶振頻率和mac地址來看,串口的收發(fā)開始肯定是正常的,那么我只能懷疑是這個921600的波特率的changing有問題,我可以降低這個波特率,既然默認的115200可以讀取到mac地址等信息,直接用115200肯定沒錯。

這里還有很多選項可以設(shè)置,后續(xù)一定要逐一弄清楚才行,等實踐的時候再說,現(xiàn)在顧不上那么多了。編譯,下載…

還是有錯呀,這次提示說不能夠驗證Flash的鏈接,括號里的也挺詭異,依然是沒有接收到串口數(shù)據(jù)??墒乔懊婷髅鞫甲x到了mac地址等信息。

于是我Google這個No serial data received,chatGPT也問了,deepseek也問了,回答的都很全面,讓我檢查供電,檢查接線,檢查flash。

我也順著Google中的幾個帖子開始驗證,電源測量沒問題,又在電源引腳處堆了幾個電容,大的小的都加上,不起作用。

我又將ESP32芯片拆下來,短路了tx和rx,驗證了cp2102的功能,可以自發(fā)自收。

對于unable to verify flash chip connection,我查了一個小時的帖子,網(wǎng)絡(luò)上遇到這個的也是五花八門,有的說換一個USB線就好了,因為需要4pin的USB供電線,有的說電源要是用LDO供電,DCDC不行。這些都是國外的帖子,看起來國外玩這個出現(xiàn)問題的都是比較初級的。

看起來沒有捷徑了,只能去啃手冊了。

反復(fù)檢查電源系統(tǒng),一共5個地方是電源相關(guān)的,只有第五個地方我懸空了,這個地方按理說是對外部接入flash時候供電的。應(yīng)該沒有問題。

我把chip-pu和gpio0的邏輯也反復(fù)看了幾遍,我的板子能夠復(fù)位,通過拉低gpio0進入下載模式,這部分也不知道的懷疑。

直到最后,我才關(guān)注到自己的SPI用法,最開始畫圖的時候,我只是按照引腳映射表來規(guī)劃線路。

從上圖可以看出,對于28到35引腳,它們的第一功能F0是默認的SPI連接Flash,F(xiàn)1功能映射就是普通的GPIO了。我本來也像是用GPIO來模擬SPI的。

可氣至極的是,官方文檔提示:

官方的說明文檔里面還有一句話讓我誤解了

這里得避免應(yīng)該是說不要的意思,我給理解成盡量不要了。真的不如直接寫不要。我就想當(dāng)然得認為IO映射是可以更改的。

我立即把我的SPI通信的RF芯片拆焊下來,編譯,下載。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

多年硬件從業(yè)經(jīng)驗,專注分享從研發(fā)到供應(yīng)鏈,再到精益制造過程中的經(jīng)驗和感悟!