:::


Browsing this Thread:   1 Anonymous Users




(1) 2 »


使用ADC時配合FVR的問題
#1
資深會員
資深會員


查看用戶資訊
我現時有一些專案會用到LM35DZ來測量空氣溫度,原本的ADC讀取程序是不使用FVR(以VDD作為正參考這樣)。LM35DZ在不低於最低操作電壓時,輸出都是在0.00V至1.00V這範圍,代表攝氏0度至100度。在供應電壓有至少5V時MCU讀取的ADC值屬正常範圍,但供應電壓一旦低於5V時讀取值就會偏高(對於固定的LM35DZ輸出範圍,越低VDD電壓會顯得輸出比例越高)。所以有想到改用FVR作為協調用,然而在測試時得到一些似乎不太符合預期的結果。

這個測試使用16F1939。分多次在不同電壓的環境下,每隔100毫秒讀取一次ADC,每個設定讀取4次,然後寫到EEPROM。測試時LM35DZ的輸出在以下任一的VDD電壓都是非常穩定的0.28V,意味著環境溫度約為28度,在5V下期望ADC值在56至58左右。

使用FVR的情況所用到的設定值如下:
FVRCON=0x81//1.024V VREF+
ADCON1=0x83//結果置右,使用FVR作為VREF+

LM35DZ的輸出永遠無法超過FVR所設定的1.024V所以理應上不會發生讀取值超過1023的結果。

測試結果:
VDD 5.12V
使用FVR:A0 A0 A0 A0
不使用FVR:20 20 20 20

VDD 
4.6V
使用FVR:AF AF AF AF
不使用FVR:2F 2E 2F 2F

VDD 
3.98V
使用FVR:BF BD BF BF
不使用FVR:3F 3F 40 3F


對於不使用FVR的情況下,讀取值變得越來越高是預料到的。而FVR的輸出電壓一直沒超過VDD電壓喔,但為什麼有使用FVR的情況也是會同樣出現失準的情況呢?

至於為什麼實際讀取值比期望值還要少一半我自行再探討。

發表於: 2018/9/28 16:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#2
初級會員
初級會員


查看用戶資訊
看了一下 datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/41364C.pdf

在電氣特性(P379)提到使用 ADC 時,Vref 有範圍限制(1.8~VDD)

FVR 選 1.024V 應該太低,改用 2.048V 試看看

Attach file:



jpg  (0.00 KB)


發表於: 2018/9/28 17:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#3
版主
版主


查看用戶資訊
溫度感應器的輸出電壓範圍很窄的話,一般會使用 OP 將仄輸出做適當的放大與位移後變成 0 ~ 5V 後再送進 ADC 做轉換。

你的需求與 APP001 的讀取 TC1047A 的溫度方式差不多,你可以參考一下這電路的設計。

Attach file:



jpg  (0.00 KB)


發表於: 2018/9/29 12:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#4
資深會員
資深會員


查看用戶資訊
就Ryang你提到的電路參考我就得再補充一下了。

有部分的在設計時已經考慮到輸出範圍太窄可能會取得極不準確數值的問題,所以我有針對這個加設LM358的放大電路,使其輸出上限放大到5倍左右,然而因為選用的電阻值誤差,實際倍率約為5.25,所以在計算實際溫度前要把收集到的數據乘以0.95。然而這個設計在VDD電壓出現負載效應或其他導致電壓偏低的情況下,以相同的公式計算結果也是會出現數值偏大的問題(例如環境29度但在VDD電壓4.9V以下時計算出來有34度以上)。

現在就考慮到如果配合FVR使用的話,或者可以省略這組放大電路,同時又不會這麼容易因為VDD的高低而影響到ADC讀取的結果。

稍後我會把FVR調成2.048V然後再測試。

發表於: 2018/9/29 21:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#5
資深會員
資深會員


查看用戶資訊
規格書
http://ww1.microchip.com/downloads/en/DeviceDoc/40001574C.pdf

TABLE 30-8: PIC16(L)F1938/39 A/D CONVERTER (ADC) CHARACTERISTICS:(1),(2),(3)
的註解中,有提到...

4. ADC Reference Voltage (Ref+) is the selected reference input, VREF+ pin, VDD pin or the FVR Buffer1. When the FVR is
selected as the reference input, the FVR Buffer1 output selection must be 2.048V or 4.096V, (ADFVR<1:0> = 1x).

發表於: 2018/10/1 0:42
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#6
版主
版主


查看用戶資訊
1. 建議先排除硬體所造成的誤差,LM358 是個骨董級的元件,他無法支援 Rail to Rail 的動態範圍,且放大的線性很差。可以考慮改用具有 Real to Real 的 OPA,範例電路中是使用 MCP604 的 Microchip Low Cost 的運算放大器。

2. 電路圖所用的 3.3V LDO 穩壓器,原先的設計是使用 4.096V 的參考電壓元件(MCU Vdd= 5V)。後來應低壓 3.3V Vdd 的需求改成 3.3V 電壓送給溫度感應器 TC1047A 來做 0V ~ 3.3V 範圍的 ADC 的轉換。

3. 現今大部分的溫度感應器(熱電偶除外) 都改用數位型的溫度感應器,可直接用 I2C 介面直接讀取溫度,誤差可到 0.5度 C。我最常使用的是 MCP9800 系列的溫度 Sensor.

4. PIC 所送出來的 FVR,其阻抗較大無法再驅動有電流需求的應用,建議用 OPA 當個緩衝器後再去驅動別人。

Attach file:



jpg  (0.00 KB)


發表於: 2018/10/1 10:25

Edited by Ryang on 2018年10月01日 12:42:10
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#7
資深會員
資深會員


查看用戶資訊
就jason680提及的FVR最低電壓,剛比較了利用1.024V和2.048V的FVR作為ADC的VREF+來源,再比較使用VDD的。

以LM35DZ輸出0.29V作為基準:
5.1V
1.024V:111 111 112 111
2.048V:89 8A 89 89
VDD:36 36 36 36

4.6V
1.024V:111 110 111 111
2.048V:88 88 89 89
VDD:45 45 45 45

3.79V
1.024V:110 111 110 110
2.048V:85 88 89 88
VDD:55 56 55 54


使用1.024V和2.048V的FVR情況下,當VDD開始下降時,數值有稍為下降,但平均幅度僅最多2個值;然而使用VDD的則大幅上升(預料到的結果)。

根據使用FVR所得出的數據,得出1.024V的平均值所指向為26.6度,而2.048V的平均值約為27.3度,都比期望值29度為低,但2.048V的比較接近期望值。而使用VDD的在3.79V下量出41.5度,可見利用VDD是非常不可靠。

在使用ADC時利用FVR允許最低電壓為1.8V,然而從上述結果來看,使用1.024V參考除了準確度較遜,其數值顯示出ADC在執行時並沒有因為其下限而改變參考值,那麼有關限制的主要目的和作用是在哪呢?

而Ryang的建議,因為資源所限,所以我只能作為有用參考,無法實作。

發表於: 2018/10/4 21:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#8
版主
版主


查看用戶資訊
我記得 PIC16F1xxx 的 ADC 的參考電壓有最低的限制,一般是不可低於 3V 的。過低的參考電壓會引響 ADC 的轉換值。

可以使用 4.096V 內建的 AVR 來當作參考電壓源嗎?

發表於: 2018/10/5 9:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#9
版主
版主


查看用戶資訊
PIC16F1939 的參考電壓是從 1.8V ~ Vdd,但低於 3V 的參考電壓就有比較大的誤差。

如下表所示:

Attach file:



jpg  (0.00 KB)


發表於: 2018/10/5 10:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用ADC時配合FVR的問題
#10
資深會員
資深會員


查看用戶資訊
因為專案本身電壓使用範圍可低至3.8V,在這個VDD電壓下使用4.096V會造成極大誤差的結果(FVR輸出不能高於VDD),不過我還是會再測試一下。

發表於: 2018/10/8 17:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
You cannot start a new topic.
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]