- ADC 簡介
2. 取樣率( Sampling rate ):對輸入的類比訊號進行取樣後再一次轉換。
3. 解析度( Resolution ):將當下的類比值轉為數位值。
- ADC 特徵
2. 16 位或 12 位解析度的 Single-ended 操作;
3. MCU 內部類比訊號源的測量;
4. 搭配 FIFO 可使用多達 16 個觸發源進行觸發檢測;
5. 中斷、DMA ( DIRECT MEMORY ACCESS ) 或輪詢操作;
6. 具有線性和增益偏移校準邏輯;
- ADC GCALR ( Gain Calibration Result ) 計算
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 714 )
1. GCCa[GAIN_CAL] 將會在自動校準期間計算並存儲在 GCCa 寄存器中以供用戶計算;
2. 透過算式,可得一介於 1 和 2 中間的 gian_calibration 值;
3. GCRa[GCALR] 為 gian_calibration – 1 的 16 位元小數部分;
4. 將上述公式轉換後可得下方 SDK 之計算公式獲得 GCRa[GCALR] 該值;
- ADC 程式範例
2. 設置 ADC clock 來源為 96 MHz,並做 2 倍的除頻。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 66 )
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 77 )
3. 設置 ADC 電源開啟。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 295 )
4. 將 ADC logic 和 FIFO0 和 FIFO1 重置。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 703 )
5. 設置 ADC control,在 Doze mode 的使用,和轉換平均數。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 703 )
6. 配置 ADC 功能,ADC 在遇到高優先權的觸發時,將中斷現行的轉換而執行高優先權的任務。使用最低電源設置。
Vrefh 為 VDDA pin。上電延遲為 0x80。僅在需 ADC 轉換時才將 ADC 電路開啟。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 707 )
7. 關閉 ADC Pause 運作和 FIFO 的 Watermark,並開啟 ADC 功能。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 708 )
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 713 )
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 703 )
8. 設置 ADC offset calibration,並等待 ADC 校正完成狀態。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 703 )
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 704 )
9. 設置 ADC Auto-calibration 要求,並等待 GCC[BAIN_CAL] 計算完成。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 703 )
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 714 )
10. 透過計算,將其值帶入 GCR[GCALR] 中。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 715 )
11. 設置 ADC Gain Calculation ready,並等待校正計算完成。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 715 )
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 704 )
12. 設置 CMDL,選擇 ADC 輸入通道、轉換類型和解析度。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 695 )
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 715 )
13. 設置 CMDH,將 Compare 關閉,自動執行指令,硬體平均關閉,迴圈關閉,無下一道指令。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 716 )
14. 設置 TCTRL 觸發控制,將執行 CMD1 的指令,結果存入 FIFO0。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 712 )
15. 設置 SWTRIG 軟體觸發,Trigger0 由軟體觸發執行 CMD 指令。
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 709 )
- 1.9V ADC轉換實測
= 2354 * 0.000806 = 1.89 V
* NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 709 )
* 註一 : 圖片來源 NXP LPC55S0x/LPC550x User manual ( UM11424.pdf )
評論