會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



(1) 2 »


使用ADC時配合FVR的問題
資深會員
註冊日期:
2013/10/22 15:08
來自 香港
所屬群組:
註冊會員
文章: 212
等級: 13; EXP: 58
HP : 0 / 314
MP : 70 / 4595
離線
我現時有一些專案會用到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的情況也是會同樣出現失準的情況呢?

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

9月28日 16:52:39
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
新會員
註冊日期:
2017/02/12 20:58
所屬群組:
註冊會員
文章: 19
等級: 3; EXP: 9
HP : 0 / 52
MP : 6 / 257
離線
看了一下 datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/41364C.pdf

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

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

附加檔案:



jpg  2018-09-28_172034.jpg (165.28 KB)
50946_5badf2d289b51.jpg 1239X504 px

9月28日 17:23:27
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14501
等級: 73; EXP: 6
HP : 1080 / 1801
MP : 4833 / 76200
離線
溫度感應器的輸出電壓範圍很窄的話,一般會使用 OP 將仄輸出做適當的放大與位移後變成 0 ~ 5V 後再送進 ADC 做轉換。

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

附加檔案:



jpg  擷取.JPG (79.93 KB)
16_5baefeb381df4.jpg 983X644 px

9月29日 12:25:23
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
資深會員
註冊日期:
2013/10/22 15:08
來自 香港
所屬群組:
註冊會員
文章: 212
等級: 13; EXP: 58
HP : 0 / 314
MP : 70 / 4595
離線
就Ryang你提到的電路參考我就得再補充一下了。

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

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

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

9月29日 21:27:04
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 1007
等級: 28; EXP: 8
HP : 0 / 677
MP : 335 / 22510
離線
規格書
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).

10月01日 00:42:33
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14501
等級: 73; EXP: 6
HP : 1080 / 1801
MP : 4833 / 76200
離線
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 當個緩衝器後再去驅動別人。

附加檔案:



jpg  擷取.JPG (221.20 KB)
16_5bb186f47d857.jpg 1159X768 px

10月01日 10:25:34

Ryang 於 2018年10月01日 12:42:10
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
資深會員
註冊日期:
2013/10/22 15:08
來自 香港
所屬群組:
註冊會員
文章: 212
等級: 13; EXP: 58
HP : 0 / 314
MP : 70 / 4595
離線
就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的建議,因為資源所限,所以我只能作為有用參考,無法實作。

10月04日 21:00:34
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14501
等級: 73; EXP: 6
HP : 1080 / 1801
MP : 4833 / 76200
離線
我記得 PIC16F1xxx 的 ADC 的參考電壓有最低的限制,一般是不可低於 3V 的。過低的參考電壓會引響 ADC 的轉換值。

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

10月05日 09:52:30
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14501
等級: 73; EXP: 6
HP : 1080 / 1801
MP : 4833 / 76200
離線
PIC16F1939 的參考電壓是從 1.8V ~ Vdd,但低於 3V 的參考電壓就有比較大的誤差。

如下表所示:

附加檔案:



jpg  擷取.JPG (140.76 KB)
16_5bb6c6236f482.jpg 940X520 px

10月05日 10:02:11
轉換PDF檔 列印


Re: 使用ADC時配合FVR的問題
資深會員
註冊日期:
2013/10/22 15:08
來自 香港
所屬群組:
註冊會員
文章: 212
等級: 13; EXP: 58
HP : 0 / 314
MP : 70 / 4595
離線
因為專案本身電壓使用範圍可低至3.8V,在這個VDD電壓下使用4.096V會造成極大誤差的結果(FVR輸出不能高於VDD),不過我還是會再測試一下。

10月08日 17:11:46
轉換PDF檔 列印



(1) 2 »



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2018 Winter Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project