第三章 弦波編碼器解碼實現
3.1 DSP-Based 線性化法解碼實驗
3.1.2 即時線上 ADC 校準
弦波編碼器的解碼過程中,ADC 取樣弦波信號用來解碼精細位置資訊,所以 ADC 的取樣信號可信度是影響弦波解碼後精度的最大因素之ㄧ。DSP-Based 的弦波編碼器解 碼是以線性化解碼法為主,使用的 ADC 是 TI 公司 TMS320F2812 數位信號處理器(DSP) 所內建的 12-bit ADC,由於所使用的實驗發展版 eZdsp 上並沒有設置校準 ADC 的周邊 硬體電路,而弦波取樣需要極為精確可信的取樣結果,所以我們使用一個 ADC 校準方
法,利用外部電路提供兩個穩定已知的電壓信號作為參考電壓,強制將這兩個取樣結果 指定到我們所要的輸出位置上,搭配上 DSP 本身所具有的運算功能,便可算出實際的 增益值及偏移量,在每次取樣時都能進行電壓的校準及補償。
上圖 3-5 是 ADC 的校準示意圖,我們假設理想的 ADC 方程式為
mi
x
y
= ×(3.1)
其中輸入為 x,輸出為 y,mi 是理想的增益值,以實驗用的 12-bit 對應到 0~3V 的 ADC 來說,增益值應該為 1365
0 3
1 2
12
− =
− 。而實際的 ADC 輸出方程式則是
b ma x
y
= × +(3.2)
ma 是實際的增益,b 則是實際偏移量(offset),這兩個數值在每次進行校準運算的時
候都會從新運算。校準的流程是在每次 ADC 取樣後,我們都會得到兩組輸入與三組輸出數據,分別 是已知輸入的高電壓輸出 y
H
、已知輸入的低電壓輸出 yL
及未知輸入的電壓輸出 y,在加 上我們原本做為基準的輸入 xH
與 xL
共五個參數。首先求出實際增益量 ma
L H
L H
x x
y ma y
−
= − (3.3)
接著求出實際偏移量 b
圖 3-5 ADC 校準示意圖 [9]
ma x y
b = L − L × (3.4)
估測出未知輸出 y 所應對應到的輸入
xˆ
ma b x y
−=
ˆ
(3.5)
最後將估測出的輸入
xˆ
經過理想的 ADC 輸出方程式得到理想輸出值mi
x
y
ˆ= ˆ×(3.6)
即時線上 ADC 校準流程如下:
1. 先以方程式(3.3)算出實際增益量 ma 2. 再以方程式(3.4)求出實際偏移量 b
3. 利用 ADC 取樣結果 y 與方程式(3.5)估測出目前輸入電壓
xˆ
4. 最後以方程式(3.6)將估測輸出電壓對應到理想輸出 yˆ經過上述四個步驟便可將原本未經校準補償的輸出 y 補償成理想輸出 yˆ ,而且在每 次 ADC 取樣時都執行這樣校準,以得到最佳的 ADC 取樣效果。實驗中所使用提供穩定 電壓的 IC 分別為 LD1117 與 LM317 兩種,LD1117 提供 2.5V 左右的穩定電壓,實際測 量後實驗所用的 LD1117 應為 2.485V,而 LM317 則是一顆可調整輸出的穩壓 IC,其最 低輸出電壓約為 1.25V,在實際測量後實驗用的 LM317 輸出為 1.260V。
以下實驗是在不同時間裡用同樣的電壓測試 ADC 輸出,經過實驗證實內建 ADC 在 不同時間下取樣可能會有時變問題,所以每次取樣都應該進行即時線上校準,不適合以 離線方式先行算出再補償。
0 200 400 600 800 1000 1200
1925 1930 1935 1940 1945 1950 1955
ADC Before Calibration in 1.352V
0 200 400 600 800 1000 1200
1925 1930 1935 1940 1945 1950 1955
ADC Before Calibration in 1.352V
(a) 第一次取樣 (b) 第二次取樣
0 200 400 600 800 1000 1200
ADC Before Calibration in 1.352V
0 200 400 600 800 1000 1200
1925
ADC Before Calibration in 1.352V
(c) 第三次取樣 (d) 第四次取樣
0 0.005 0.01 0.015 0.02 0.025 0.03
180
Output value
ADC Original output (0.136V)
0 0.005 0.01 0.015 0.02 0.025 0.03
180
Output value
ADC after Calibration and Average output (0.136V)
(a) 0.136V 校準前 (b) 0.136V 校準後
0 0.005 0.01 0.015 0.02 0.025 0.03
Output value
ADC Original output (0.471V)
0 0.005 0.01 0.015 0.02 0.025 0.03
600
Output value
ADC after Calibration and Average output (0.471V)
(c) 0.471V 校準前 (d) 0.471V 校準後
0 0.005 0.01 0.015 0.02 0.025 0.03
1930
Output value
ADC Original output (1.417V)
0 0.005 0.01 0.015 0.02 0.025 0.03
1930
Output value
ADC after Calibration and Average output (1.417V)
(e) 1.417V 校準前 (f) 1.417V 校準後
0 0.005 0.01 0.015 0.02 0.025 0.03
2200
Output value
ADC Original output (1.622V)
0 0.005 0.01 0.015 0.02 0.025 0.03
2200
Output value
ADC after Calibration and Average output (1.622V)
(g) 1.622V 校準前 (h) 1.622V 校準後
0 0.005 0.01 0.015 0.02 0.025 0.03
Output value
ADC Original output (2.53V)
0 0.005 0.01 0.015 0.02 0.025 0.03
3440
Output value
ADC after Calibration and Average output (2.53V)
(i) 2.53V 校準前 (j) 2.53V 校準後
0 0.005 0.01 0.015 0.02 0.025 0.03
3950 4000 4050 4100
Time(s)
Output value
ADC Original output (2.90V)
0 0.005 0.01 0.015 0.02 0.025 0.03
3950 4000 4050 4100
Time(s)
Output value
ADC after Calibration and Average output (2.90V)