昨天寫了一個ADC的文章,感覺浮于表面,今天會完整的剖析這個外設(shè),畢竟樂鑫給的太多了。
比較傻逼的一點是ADC這么屌的一個外設(shè)給我歸類在這里
我其實有點沒看懂,應(yīng)該是有兩個ADC,但是這么多的引腳是支持而已
這個是倆種測量方式,就是精度的區(qū)別
具體的測量方式在這里
這個是驅(qū)動的流程框圖
GPIO的引腳
測量公式
支持DMA的傳輸方式
還支持數(shù)據(jù)的濾波
直接中斷
我這里就隨便寫個寄存器
這是所有的寄存器
OKOK,具體的手冊就是這樣了,因為就是個轉(zhuǎn)換器而已,手冊里面沒有過多的說明一些技術(shù)的細節(jié),接下來的任務(wù)是看,IDF SDK的ADC API。
就是這里了,我們直接看
這個就是ADC的創(chuàng)建實例
里面包括的內(nèi)容
細分到一個
這是ADC的初始化配置結(jié)構(gòu),第一個參數(shù)是要啟用的ADC單元,在下面有
第二個參數(shù)是時鐘源
超低功耗協(xié)處理器 (ULP, Ultra-Low-Power coprocessor) 是一種功耗極低的處理器設(shè)備,可在芯片進入 Deep-sleep 時保持上電(詳見章節(jié) 10 低功耗管理 (RTC_CNTL)),允許開發(fā)者通過存儲在 RTC 存儲器中的專用程序,訪問 RTC 外設(shè)、內(nèi)部傳感器及 RTC 寄存器。在對功耗敏感的場景下,主 CPU 處于睡眠狀態(tài)以降低功耗,協(xié)處理器可以由協(xié)處理器定時器喚醒,通過控制 RTC GPIO、RTC I2C、SAR ADC、溫度傳感器 (TSENS) 等外設(shè)監(jiān)測外部環(huán)境或與外部電路進行交互,并在達到喚醒條件時主動喚醒主 CPU。
這個是配置ULP
這就是初始化的時候要寫一段語句,點是結(jié)構(gòu)體不需要按照順序賦值
這就是最上面的ADC單元的選擇
這個里面的宏定義
設(shè)置 ADC 的初始配置后,使用adc_oneshot_new_unit()準備好的adc_oneshot_unit_init_cfg_t.如果分配成功,該函數(shù)將返回 ADC 單元句柄。
里面的返回值
該函數(shù)可能會因參數(shù)無效、內(nèi)存不足等各種錯誤而失敗。具體來說,當要分配的ADC實例已經(jīng)注冊時,該函數(shù)將返回ESP_ERR_NOT_FOUND錯誤??捎?ADC 的數(shù)量由 記錄SOC_ADC_PERIPH_NUM。
如果之前創(chuàng)建的ADC實例不需要記錄器,則應(yīng)通過調(diào)用回收ADC實例adc_oneshot_del_unit(),相關(guān)的硬件和軟件資源也會被回收。
這個函數(shù)太長了,沒時間寫了,明天一定
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753069 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
adc
+關(guān)注
關(guān)注
98文章
6495瀏覽量
544461 -
樂鑫
+關(guān)注
關(guān)注
0文章
191瀏覽量
25437 -
ESP32
+關(guān)注
關(guān)注
18文章
971瀏覽量
17201
原文標題:ESP32-S3 ADC外設(shè).1-實例
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論