查看: 3395|回复: 23
|
PIC ADC (pressure sensor 讀取的问题)
[复制链接]
|
|
我有一個 pressure sensor,經過放大后,用万用表量voltage時是沒有問題的
壓力增加時,output voltage 也同時增加,linearity 也很理想。
可是我一把它接到 PIC 的 ADC pin 時,問題就來了
ADC 能夠把別的 sensor 成功讀取, 可是就是不能把 pressure sensor 的output讀取!
當然,program 也改了,還是不能,所讀到的再傳到 hyperterminal 一看,都相差很遠。
btw, 我之前用的是 thermal sensor, 直接能接到 ADC pin
現在問題出在 pressure sensor, 需要靠 amplifier 來放大 voltage
兩個 sensors 的輸出都是 1。00v ~ 2.20V 醬。。。
現在不只如何是好,請各位大大幫忙了。。。 謝謝!
[ 本帖最后由 pic 于 11-3-2007 09:08 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 12-9-2006 07:41 PM
|
显示全部楼层
原帖由 attention 于 12-9-2006 08:39 AM 发表
我有一個 pressure sensor,經過放大后,用万用表量voltage時是沒有問題的
壓力增加時,output voltage 也同時增加,linearity 也很理想。
可是我一把它接到 PIC 的 ADC pin 時,問題就來了
ADC 能夠把別的 ...
Impedance 的问题?
注:PIC 的ADC输入阻抗是10Kohm。 |
|
|
|
|
|
|
|
楼主 |
发表于 13-9-2006 07:33 PM
|
显示全部楼层
原帖由 pic 于 12-9-2006 07:41 PM 发表
Impedance 的问题?
注:PIC 的ADC输入阻抗是10Kohm。
還是。。。power 的問題? |
|
|
|
|
|
|
|
发表于 14-9-2006 01:30 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 14-9-2006 03:11 PM
|
显示全部楼层
原帖由 ychenfei 于 14-9-2006 01:30 PM 发表
需要pull up resistor 吗??
怎麽說?就是把一顆 電阻 連接ADC pin 和 Vdd 。。 然後再把sensor 的 output 接進去嗎? |
|
|
|
|
|
|
|
发表于 15-9-2006 10:38 AM
|
显示全部楼层
我有一個 pressure sensor,經過放大后,用万用表量voltage時是沒有問題的壓力增加時,output voltage 也同時增加,linearity 也很理想。
1。如果没有"經過放大", 用万用表量voltage時有沒有問題?
2。你用的是什么pressure sensor? 型号? 有DataSheet 吗? |
|
|
|
|
|
|
|
楼主 |
发表于 15-9-2006 01:54 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 15-9-2006 06:55 PM
|
显示全部楼层
看了MPXM2010GS 的datasheet, sensor 的Output impedance 是3Kohm (太大了), 但PIC ADC 的input impedance 是10Kohm, 直接用PIC ADC 是很难得到准确的读数。阻抗很不匹配 (match)。
你说能够直接用电表,请在电表的红黑棒加上10Kohm的电阻的load,(就是输出并联(parallel)一个10Kohm), 看是否还能得到精确的读数。
如果你还是希望直接用PIC ADC, 你需要有一个很精确的30mV的参考电压(reference Voltage), 输入到PIC的Pin5 ,RA3,(Vref).
Firmware 方面, 在Analog port setup,你要启用RA3 为Vref 模式, 那么理论上你就可以测量 30mV(max)的电压, 10bit resolution。
一般上, PIC ADC都是默认用VDD (5V)作为Vref, 所以full scale 是5V(max)。
如果Vref是30mV,那full scale 是30mV(max), 所以可以量到25mV。
但在你的case来说,也不会理想,因为阻抗不匹配(match)。
所以,建议你还是需要放大信号,在送入PIC 的adc之前.
我说得比较简单,如果你还是不很明白, 请再问。
P/S:
Output impedance (输出阻抗),愈小愈好,最好是0Ohm
Input impedance (输入阻抗),愈大愈好,最好是>10MOhm |
|
|
|
|
|
|
|
发表于 15-9-2006 07:04 PM
|
显示全部楼层
--我有一個 pressure sensor,經過放大后,
##如何放大? 有用 amplifier circuit 吗?
如果没有,在 MPXM2010GS 的 output 接到 voltage amplifier circuit, 再将 voltage amplifier circuit output 接到 PIC ADC input。
* voltage amplifier circuit 必须是 differential amplifier circuit design.
http://www.allaboutcircuits.com/vol_3/chpt_8/9.html
(此 circuit 的 ground = 2。5V, opamp Vcc = 5V)
[ 本帖最后由 GeMan 于 15-9-2006 07:13 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 15-9-2006 09:33 PM
|
显示全部楼层
有放大了,是由一個 input buffer -> differntial amplifier -> output buffer
我也有想過 output impedance 問題, 所以才加一個output buffer。。。
不過還是不能准卻的讀取。
我把signal 放大 500 倍了,Vref 是RA3, 5V (Vdd).
同時,我有用到另外一個 thermal sensor 在 AN0, pressure sensor 在 AN1
所以如果說用 30mv 作reference 的話, thermal sensor 就不能了。
//電表接電阻的實驗,遲些我再update。。。
好了,試了。。 用了一個10KR 的電阻來試
得到的還是一樣,電表的讀取很穩,
PIC adc 的還是一樣很不穩定。。。
慘了。。。
p/s : amplifier 是用TLC082
http://focus.ti.com/docs/prod/folders/print/tlc082.html
[ 本帖最后由 attention 于 15-9-2006 10:51 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 16-9-2006 08:22 AM
|
显示全部楼层
-電表 是 测量 TLC082 的 output?
-thermal senaor 用 PIC ADC 测量 很准?
如果是这样的话,那就是 pic program 写错了?
ADC input 从 thermal sensor output switch 到 pressure sensor output 100% 没错? 有试过 AN0 及 AN1 掉换吗?
如果 program 100% 没问题, 那就有可能是 pressure sensor amplifier circuit 有 noise, 放大 500倍 会把 noise 也放大。
---可以放你的 amplifier circuit 在这里让大家看吗?
電表是测量 DC voltage (low frequency), 而 PIC ADC 可以 测量很高的 frequency。 一般的 noise 都是 high frequency 的。
你一定要用 oscilloscope 来测量 pressure sensor amplifier output。 看看是否有noise。
如果没有 oscilloscope (不可能的), 就用 電表 的 Vac 来测量, 看看 pressure sensor amplifier output 的 Vac 是否有很高的 reading; 有的话,more than 500mV,就是noise 了。 |
|
|
|
|
|
|
|
楼主 |
发表于 16-9-2006 10:11 AM
|
显示全部楼层
原帖由 GeMan 于 16-9-2006 08:22 AM 发表
-電表 是 测量 TLC082 的 output?
-thermal senaor 用 PIC ADC 测量 很准?
如果是这样的话,那就是 pic program 写错了?
ADC input 从 thermal sensor output switch 到 pressure sensor output 100 ...
哦, 是醬。。。
現在是沒有 osc 在手,所以就只好量 Vac, 得到的大概是 5~6 Vac....
是noise嗎?如果我加lowpass filter 有用嗎?
我是量 TLC082 后的output, program 是沒有問題, AN0, AN1也調換使用過。。。
///////////////////////////////
加了個lowpass filter...
得到更不穩定的讀取,彈跳幅度更大。。。
ps:circuit 遲些再放。。。
[ 本帖最后由 attention 于 16-9-2006 10:44 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 17-9-2006 09:05 AM
|
显示全部楼层
原帖由 attention 于 16-9-2006 10:11 AM 发表
哦, 是醬。。。
現在是沒有 osc 在手,所以就只好量 Vac, 得到的大概是 5~6 Vac....
是noise嗎?如果我加lowpass filter 有用嗎?
我是量 TLC082 后的output, program 是沒有問題, AN0, AN1也 ...
TLC082 的 voltage supply 是 5V 吗?
如果是,
--5~6 Vac!!!
##肯定是noise。
你的问题是 500倍 放太大,也把 noise 放大。 lowpass filter 在这里完全没用的。
理论上, voltage supply = 5V, pressure sensor change = 20mV, gain = 50~100就够了, 不必 500。
你先把 amplifier 调到 gain = 1, input = output。 看看 电表 Vac 是 多少。 再看看 PIC ADC 正常吗。
然后,一步一步增加 gain, X 2, X4, 。。。。同时看看 电表 Vac 是 多少,PIC ADC 正常吗。
一直到一个 gain setting, noise 开始不能接受了。 然后 加 capacitor 做为 noise filter。
暂时到这, 等你的 circuit 再做调整。 |
|
|
|
|
|
|
|
楼主 |
发表于 17-9-2006 06:30 PM
|
显示全部楼层
是,TLC082 是 5V Powered.
如果調 G=1,ADC 讀不到了。。。 因爲,Vref = 5V
換了gain=100, 得到的跳幅變小了,Vac 是 0.1V
然後想加 cap 作filter 了,
用一個 CAP 要怎樣連接才正確呢?
我的電路圖:
[ 本帖最后由 attention 于 17-9-2006 06:37 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 17-9-2006 08:30 PM
|
显示全部楼层
试下这个:
MPXM2010 supply voltage = 5V
|
|
|
|
|
|
|
|
楼主 |
发表于 19-9-2006 01:55 PM
|
显示全部楼层
好了,Gain 換成200, 再換 Vref 去 2V。。。
讀到的都還算穩定,跳幅變小了,相差 5% 左右。。。
不知道還有沒有辦法使它更穩定的呢? |
|
|
|
|
|
|
|
发表于 20-9-2006 12:38 AM
|
显示全部楼层
原帖由 attention 于 19-9-2006 01:55 PM 发表
好了,Gain 換成200, 再換 Vref 去 2V。。。
讀到的都還算穩定,跳幅變小了,相差 5% 左右。。。
不知道還有沒有辦法使它更穩定的呢?
--不知道還有沒有辦法使它更穩定的呢?
##10 ohm 及 100k ohm 电阻 多加 parallel 10nF 或其它 value 的 ceramic capacitor。
[ 本帖最后由 GeMan 于 20-9-2006 12:39 AM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 20-9-2006 02:14 AM
|
显示全部楼层
原帖由 GeMan 于 20-9-2006 12:38 AM 发表
--不知道還有沒有辦法使它更穩定的呢?
##10 ohm 及 100k ohm 电阻 多加 parallel 10nF 或其它 value 的 ceramic capacitor。
是醬子嗎?
|
|
|
|
|
|
|
|
发表于 20-9-2006 07:58 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 23-9-2006 12:38 AM
|
显示全部楼层
原帖由 attention 于 12-9-2006 08:39 AM 发表
可是我一把它接到 pin 時,問題就來了
ADC 能夠把別的 sensor 成功讀取, 可是就是不能把 pressure sensor 的output讀取!
當然,program 也改了,還是不能,所讀到的再傳到 hyperterminal 一看,都相差很遠。
ADC 的稳定性有没有测试过?
就是用Variable resistor 做 voltage divider来接进ADC。
从一楼看来,你应该试过了。
sensor output 进ADC后有没有变小?
sensor power supply 和 PIC 是不是相同?
如不相同,就用osc量/看power supply 有没有ripper? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|