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