如何快速了解ADC,查看Reference manual中ADC registers章節,初步了解到ADC
- ADC buffer register和ADC data register
- Analog Watchdog + Analog Watchdog High Voltage threshold+
- EOC,完成采樣后可以觸發中斷
- Continuous conversion和single conversion,Scan Mode
- External event觸發?
- 錯誤狀態Overrun Flag
- ADC schmitt trigger
- 左右對齊方式
- ADC時鍾
然后進行通關,理解ADC這8個方面的知識,這時為了快速弄懂,refer to STM32開發指南V1.2中關於ADC的章節,然后弄懂了
- 模擬看門狗允許應用程序檢測輸入電壓是否超出用戶定義的高/低閾值
- Single conversion指的是只執行單次,對應的是Continous conversion,Scan mode掃描模式指的是如果設置了幾個通道,依次掃描,此時最后一個通道完成才會產生EOC中斷
- External event觸發,指的是例如時鍾event觸發ADC中斷,對應的是軟件觸發,軟件程序中使能觸發
- ADC時鍾相關的有,ADC最大轉換速率、ADC時鍾,並且對於STM32系列,轉換時間=采樣時鍾+12.5個ADC時鍾周期(自己理解12.5周期為ADC處理需要的時間)
然后閱讀STM8S_StdPeriph_Lib中關於ADC的例子程序,了解一般如何應用,可以看出ADC的設置還是比較簡單的其中外部觸發關閉
然后帶着尚未解決的疑惑再次閱讀Reference Manual
- ADC有5個通道,分別為2-6通道,沒有1通道
- ADC buffer register和ADC data register,這兩個register的區別不大。buffer register是緩沖
- External trigger有2個事件,一個是ADC_ETR的上升沿觸發,查看STM8S103的datasheet,知道只有PB4和PD3;另外一個是Internal TIM1 TRGO event(待詳細補充)
- ADC schmitter trigger是關於IO口上的觸發器,ADC可以配置關閉AD相關IO口的觸發器以節省能耗
- ADC時鍾只介紹了ADC時鍾的分頻因子,最小衛2分頻,關於轉換速率沒有提及
- 左右對齊
然后測試AD,AD測試的環境搭建,很簡單,直接用直流源的正負分別接MCU的GND和AD輸入,因為電源為3.3V,將直流源調整至3.3V左右,觀測AD值,如果采樣AD值為1023左右(stm8S103的AD為10位),則表明AD功能正常。