NXP LPC55S06 ADC 章節介紹及基本程式範例

  • ADC 簡介
           1.    ADC 名為 Analog–to–Digital Converter 是一種類比數位轉換器,根據取樣率與解晰度決定產生的數位訊號。
          2.    取樣率( Sampling rate ):對輸入的類比訊號進行取樣後再一次轉換。
          3.    解析度( Resolution ):將當下的類比值轉為數位值。
              
  • ADC 特徵
          1.    16 位或 13 位解析度的 Differential 操作;
          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 程式範例
          1.    設定 System control,AHBCLKCTRL 啟動 ADC 模塊的 clock,並於 PRESETCTRL 將其模塊重置。
                 

          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轉換實測
          1.    標準 12-bit 解析度 => ( Data >> 3 ) * ( Vref / (2^12 – 1 )) = ( 0x4990 >> 3) * ( 3.3 / ( 4096 – 1 ))
                                                                                                                 = 2354 *  0.000806 = 1.89 V

                 
                 * NXP LPC55S0x/LPC550x user maunal ( UM11424.pdf page 709 )

                 
                 
                 

* 註一 : 圖片來源 NXP LPC55S0x/LPC550x User manual ( UM11424.pdf )

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論