MCP3201 okuma sorunu

Başlatan frederic, 23 Mayıs 2011, 21:12:23

frederic

Merhabalar,bu entegreyi ilk kez kullanmaktayım,haberleşmeyi vs. sağladım değerleride doğru okuyorum fakat,değerlerde büyük çapta salınım var.

Donanımın sağlam olduğuna eminim,haberleşme yazılımınıda aşağıda belirtiyorum,bir fikri olan varsa eğer yardımcı olabilirse sevinirim hoşçakalın.

Low  CS0
SHIn DO,SK,msbpost,[B0\2,W0\12]
High CS0
Low  CS0
High CS0


F.T

entegre referans voltajı stabil değilse yapabilir.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

frederic

Ona epet dikkay ettim açıkçası ve ölçü aleti ile 5 voltta uzun süre sabit kaldığını gördüm,sorun okuma ile ilgili sanırım bir ayrıntıyı kaçırıyor olmalıyım ama ne.

F.T

sanırım 12 bit tek adc bunun referansı için mcp nin ref entegresi var 4.096 tam bu iş için adamlar üretmiş.kullanılması faydalı olur.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ByTEK

Merhaba..

Daha önce bende mcp3201 kullandım. referans voltajlarını gerilim izleyici bir opamp ile ayarlarsanız ve adc sinyali filtrelerseniz salınımları minimuma indirmiş olursunuz..Aynı zamanda yazılımsal basit bir filtreleme de kullanırsanız daha verimli olacaktır.. hassas terazi yapımında kullanmıştım.. Salınımlar yok denecek kadar küçüktü..

Kolay gelsin..

frederic

Sayın elektro yardımınız için teşekkürler,sizin okuma rutuniniz nasıldı peki benim okuma rutinimde bir sorun varmı ?

ByTEK

Ben jalv2 dilini kullandım.. Sizin 4 satırlık kod bende 10 satır veya daha fazla.. O yüzden sizin okuma rutinıni pek analiz edemem.. Daha önce proton ile yazan arkadaşlar daha iyi yardımcı olacaklardır..

Maxim

adamın biri bu kod ile sorunsuz okuyormuş

dim adres as word
dim var1 as byte

symbol cs porta.0
symbol di porta.1
symbol ck porta.2

trisa=%00000010
delayms 1

set cs'deselect chip
clear ck'low clock

loop:

call convert
delayms 100
goto loop
'--------------------
convert:
clear cs'start conversion
delayus 1

'2 clock for conversion & 1 clock for null bit

for var1 = 0 to 2 step1
set ck
delayus 80
clear ck
delayus 80
next
call capture ' this capture msb bit-11

for var1 = 0 to 10
set ck
delayus 80
clear ck
delayus 80
call capture
next
set cs 'deselect chip
'now adres contains your 12 bit data
return


capture:
if di = 1 then
clear status.0
adres = adres << 1
set adres.0
return
else
clear status.0
adres = adres << 1
return


'for testing of this code, put supply 5v. connect pin to gnd & connect 1k pot on pin-2, which will change voltage onpin-2. vref is connected to vcc. 
'i am using this ic with 8 channel multiplexed to read 8 different channel data & working fine.