www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

AD meritve
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
siljo
Član
Član



Pridružen-a: Tor 28 Okt 2003 8:08
Prispevkov: 1035
Aktiv.: 4.19
Kraj: Ribn'ca

PrispevekObjavljeno: Pet Jul 29, 2011 8:02 pm    Naslov sporočila:   Odgovori s citatom

problem je lahko "umiritev" signala na določenem mux-u!
Ko se zadeva preklaplja so problem kapacitete ....
Lahko je tudi problem referenca (če se vklaplja / izklaplja / spreminja)
Za vsak konkreten primer in konkreten mikroprocesor je potrebno "prežvečiti zadevo"!

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 5.22
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jul 29, 2011 9:49 pm    Naslov sporočila:   Odgovori s citatom

Predvsem za maksimalno dinamiko - beri: minimalni šum - je treba ločiti analogno in digitalno napajanje na plošči.
Če dinamika ni najpomembnejša ampak le točnost, je seveda najlažje po meritvi odrezati en ali dva LSB bita rezultata. S tem se izgubi resolucija. Veliko bolje je (če je dovolj časa za meritev) narediti povprečevanje. Povprečevanje pa povprečuje tudi šum! Za povečanje dimanamike vsekakor svetujem ločitev napajanja in filtriranje, kot je bilo že povedano.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 460
Aktiv.: 2.09

PrispevekObjavljeno: Sob Jul 30, 2011 8:45 am    Naslov sporočila:   Odgovori s citatom

Pozabil sem pripisati, da referenco nihamo s frekvenco 1kHz, tako da preko timerja generiramo nihanje te napetosti, za programsko povečanje resolucije naj bi bila ena izmed metod, da signalu dovedemo beli šum.

Kako je to mišljeno, da naj ločim analogno in digitalno napajanje?

Low pas filter je prikazan v aplikaciji na spodnji povezavi na strani 9.

Atmel aplikacija za prevzorčenje in decimacijo:

http://www.atmel.com/dyn/resources/prod_documents/doc8003.pdf
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 5.22
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jul 30, 2011 10:05 am    Naslov sporočila:   Odgovori s citatom

Hm, napotek o ločitvi obeh napajanj za analogno in digitalno stran izhaja iz ARM sveta tako, da morda tu ni relevanten.
Tista aplikacija za povečanje resolucije pa je zagotovo prava pot. Oversampling & decimation. Problem zadnjega bitka se pa ublaži z dodanim šumom - minimalnim.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 460
Aktiv.: 2.09

PrispevekObjavljeno: Sob Jul 30, 2011 11:18 am    Naslov sporočila:   Odgovori s citatom

Saj dela dobro prevzorčenje in decimacije le če je vklopljen samo en kanal, ko pa še dodam ostale pa vrednosti niso več takšne kot bi morale biti.


V programu gre branje adc-ja takole:

preberi kanal 5
počakaj nekaj ms
preberi kanal 4
počakaj nekaj ms
.
.
.

Ko pokličem kanal stem se določi iz katerega kanala želim prebrati vrednost, nato počakam nekaj us zaradi tistega hold kondenzatorja, počakam dokler se ne zaključi adc proces in shranim podatek v spremenljivko, na koncu še postavim bite tako da se lahko ponovno izvede adc konverzija, vse tako kot je opisano v datasheetu.

Merim namreč 6 serijsko vezanih li ionskih baterij, najbolj dober in natančen potatek je iz tiste celice, ki je takoj na masi, če imam vklopljene vse meritve, razen podatka na tej celici, ki pride na adc so ostale meritve napačne. Če pa berem podatke samo en kanal in noben druga na poljubni celici pa je podatek pravilen.

Med branjem in izbiru kanala je dovolj velik delay, da nebi prišlo do napačnih vrednosti.
Nevem zakaj pride do tega?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 5.22
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jul 30, 2011 2:35 pm    Naslov sporočila:   Odgovori s citatom

Poskusi s prekomerno povečanim delayem med branjem in preklopom na drug kanal, če se stanje meritev naslednjih kanalov s tem umiri, poskusi zmanjševati to zakasnitev. Vgrajeni multipleks ni idealen.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 57.58
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Sob Jul 30, 2011 5:58 pm    Naslov sporočila:   Odgovori s citatom

Predlagam ti sledeče:

Preberi kanal 5
zavrzi podatek..
počakaj par ms
preberi kanal 5
počakaj par ms
preberi kanal 4
zavrzi podatek
počakaj par ms
preberi kanal 4
...
..

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 460
Aktiv.: 2.09

PrispevekObjavljeno: Sre Avg 03, 2011 6:56 pm    Naslov sporočila:   Odgovori s citatom

S53DZ je napisal/a:
Poskusi s prekomerno povečanim delayem med branjem in preklopom na drug kanal, če se stanje meritev naslednjih kanalov s tem umiri, poskusi zmanjševati to zakasnitev. Vgrajeni multipleks ni idealen.


delay med branjem kanalov nima nobenega vpliva na meritev, ne glede na krajši ali prekomerno povečan delay prikazano v programski kodi:

Koda:

ad5 = adc_kanal(5);   // klic funkcije in branje deločenega kanala
delay_(1000);           // delay 6,4ms, ni nobenega vpliva če ga povečam ali zmanjšam
ad4 = adc_kanal(4);
delay_(1000);
ad3 = adc_kanal(3);
delay_(1000);
ad2 = adc_kanal(2);
delay_(1000);
ad1 = adc_kanal(1);
delay_(1000);
ad0 = adc_kanal(0);
delay_(1000);


se pa pojavi očitna razlika če povečam delay med preklopom kanala prikaz v programski kodi:


Koda:

   izbiraKanala = izbiraKanala << 2;       
   ADCON0 = ADCON0 | izbiraKanala;         
                                 
   ADFM = 1;      
   ADON = 1;      
   delay_(16);    // če povečam tale delay prekomerno pride do pravilnih rezultatov

   for(x = 0; x <16; x++)
   {
      // meritev               
   }
   
   ADCON0 = 0b0111.1101;   


ker imam zahtevo da se vseh 6 meritev izmeri v času 20ms, mi prekomerni delay odpade, je imel kdo s tem že izkušnje? pic, ki ga uporabljam je PIC16F887
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 17.60

PrispevekObjavljeno: Sre Avg 03, 2011 8:04 pm    Naslov sporočila:   Odgovori s citatom

Poglej datasheet, poglavje "9.3 A/D Acquisition Requirements". Vse lepo piše.
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 38.07
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Avg 03, 2011 8:50 pm    Naslov sporočila:   Odgovori s citatom

Če rabiš hitrejše ali bolj natančno vzorčenje vzemi enega ali več zunanjih AD-jev.

MUX v PIC-ih je pač namenjen osnovnim aplikacijam - branje potenciometrov ali fotouporov in podobne nenatančne stvari.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 233 dni


Powered by phpBB © 2001, 2005 phpBB Group