ESP32的ULP 協處理器筆記


1.ULP 協處理器是一個功耗極低的協處理器設備,無論主 CPU 是處於正常運行模式還是 Deep-sleep 模式,ULP 協處理器都可以獨立運行。超低功耗協處理器的補充使得 ESP32 能夠勝任一些對低功耗要求較高的應用場合。ULP 協處理器的主要特性有:

  • 采用 8 MHz 頻率和 8 KB 內存
  • 內建 ADC 和 I2C 接口
  • 支持正常模式和 Deep-sleep 模式
  • 可喚醒主 CPU 或向主 CPU 發送中斷
  • 能夠訪問主 CPU 的外圍設備、內部傳感器及 RTC 寄存器

 

2.ULP 協處理器能夠在消耗較低電流的情況下,完成 ADC 采樣,進行 I2C Sensor 的讀寫,驅動 RTC GPIO 口動作,可以在某些超低功耗場景中完全替代主 CPU。ULP 協處理器的理想工作狀態是周期性喚醒,短暫工作之后,繼續進入休眠狀態,以短時間高效的工作和長時間的休眠換取低功耗平衡。

 

3.ULP(Ultra Low Power 超低功耗)協處理器是一種簡單的有限狀態機 (FSM),可以在主處理器處於深度睡眠模式時,使用 ADC、溫度傳感器和外部 I2C 傳感器執行測量操作。ULP 協處理器可以訪問 RTC_SLOW_MEM 內存區域及 RTC_CNTL、RTC_IO、SARADC 等外設寄存器。ULP 協處理器使用 32 位固定寬度的指令,32 位內存尋址,配備 4 個 16 位通用寄存器。

 

4.ULP 協處理器由定時器啟動,而調用 ulp_run 則可啟動此定時器。定時器為 RTC_SLOW_CLK 的 Tick 事件計數(默認情況下,Tick 由內部 150 KHz 晶振器生成)。使用 SENS_ULP_CP_SLEEP_CYCx_REG 寄存器 (x = 0..4) 設置 Tick 數值。第一次啟動 ULP 時,使用 SENS_ULP_CP_SLEEP_CYC0_REG 設置定時器 Tick 數值,之后,ULP 程序可以使用 sleep 指令來另外選擇 SENS_ULP_CP_SLEEP_CYCx_REG 寄存器。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM