 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3360 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Tor Feb 08, 2011 1:17 pm Naslov sporočila: ADC - koliko je 'normalno', da trosi rezultate |
|
|
Merim tok. Vodim ga skozi upor 1 Ohm 10%
Napetost na uporu vodim na adc pin na MEGA8. Uporabljam interno referenco 2.56V
Na referenčnem pinu C = 100nF AVCC je vezan na VCC
Ko merim napetost na uporu z univerzalnim instrumentom, stoji meritev kot pribita, no občasno se spemeni zadnji digit.
Na ADC pretvorbi pa skoraj ne dobim dve enaki meritvi zaporedoma.
Rezultat :
Citiram: |
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 151 pomeni 377mV
Konverzija 158 pomeni 395mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 156 pomeni 390mV
Konverzija 161 pomeni 402mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 155 pomeni 387mV
Konverzija 180 pomeni 450mV
Konverzija 156 pomeni 390mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 143 pomeni 357mV
Konverzija 157 pomeni 392mV
Konverzija 158 pomeni 395mV
Konverzija 157 pomeni 392mV
Konverzija 158 pomeni 395mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 158 pomeni 395mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 159 pomeni 397mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 156 pomeni 390mV
Konverzija 157 pomeni 392mV
Konverzija 157 pomeni 392mV
Konverzija 159 pomeni 397mV
Konverzija 152 pomeni 380mV |
|
|
Nazaj na vrh |
|
 |
LinuxFuter Član

Pridružen-a: Pon 18 Jun 2007 14:40 Prispevkov: 389 Aktiv.: 1.78 Kraj: Novo mesto
|
Objavljeno: Tor Feb 08, 2011 1:52 pm Naslov sporočila: |
|
|
Opeltanje vhoda, očitno opleta za 1/2 vrednosti zadnjega bita (1/2 najmanjše razlike, ki jo lahko izmeri ADC). |
|
Nazaj na vrh |
|
 |
silvo_v Član

Pridružen-a: Pon 11 Jul 2005 22:00 Prispevkov: 146 Aktiv.: 0.62 Kraj: Domžale
|
Objavljeno: Tor Feb 08, 2011 2:12 pm Naslov sporočila: |
|
|
Pri uporabi AD pretvornika je potrebno upoštevati naslednje:
- ADC CLOCK SOURCE mora biti med 50 kHz in 200 kHz,
- AVCC in DVCC morata biti ločena z dušilko, dodan mora biti še kondenzator 100 nF med DVCC in GND,
- analogna in digitalna masa morata biti ločeni, skupaj sta lahko spojeni samo v eni točki,
- pomaga tudi spanje CPU-ja med trajanjem AD pretvorbe...
Vse skupaj je lepo opisano v podatkovnem listu v poglavju ADC Noise Canceler.
Kljub vsemu je po mojih izkušnjah potrebno dodati še programsko povprečenje.
Lp |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Tor Feb 08, 2011 2:41 pm Naslov sporočila: |
|
|
Vilko, pred konverzijo uporabi power - ADCNOISE
mikro bo pred konverzijo šel malce "počivat" deloval bo samo ADC, tako bo manj motenj, drugo kar je uporabi poprečenje, 8soslednih meritev, potem pa rezultat deliš z 8. Bo bistveno bolje
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Tor Feb 08, 2011 4:14 pm Naslov sporočila: |
|
|
RGorazd je napisal/a: |
drugo kar je uporabi poprečenje, 8soslednih meritev, potem pa rezultat deliš z 8 |
Ena taka "quick&dirty" varianta povprečenja:
Koda: |
#define AVG(a,x) ((((a)<<3)+(x)-(a))>>3) |
3 je nekako ekvivalent 8 zaporednih meritev (2^3), ta vrednost se lahko po potrebi poveča/pomanjša.
Vilko, tole je ravno zate, da malo naštudiraš C makroje  _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Tor Feb 08, 2011 5:42 pm Naslov sporočila: |
|
|
Sam sem mu mislil predlagati isto, vendar v bascomu to ne gre. Dalo bi se s shiftanjem.
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
silvo_v Član

Pridružen-a: Pon 11 Jul 2005 22:00 Prispevkov: 146 Aktiv.: 0.62 Kraj: Domžale
|
Objavljeno: Tor Feb 08, 2011 6:04 pm Naslov sporočila: |
|
|
S pomikanjem (shiftanjem) se lahko množi ali pa deli s potencami števila 2, ne pa povpreči. Tako naprimer pomik za 1 v desno pomeni deljenje z 2.
Lp |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Tor Feb 08, 2011 6:12 pm Naslov sporočila: |
|
|
8 sledečih meritev sešteješ in pomakneš 3 bite v desno, in imaš deljenje z 8 seštevek 8 meritev brez deljenja.
V bascomu nekako takole
Dim A As Integer , B As Integer , C As Long , D As Byte
B = 0
For D = 1 To 8
A = 124
B = B + A
Next D
Shift , B , Right , 3
C = B
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.67 Kraj: KOPER
|
Objavljeno: Tor Feb 08, 2011 6:21 pm Naslov sporočila: |
|
|
Malo daljša varjanta:
Koda: |
Ix = Channel
If Channel = 0 Then
W = Getadc(channel)
Ix1_volt(index_volt(ix)) = W
Ix1_volt(6) = Ix1_volt(6) + Ix1_volt(index_volt(ix))
Incr Index_volt(ix)
If Index_volt(ix) = 6 Then
Index_volt(ix) = 1
W = Ix1_volt(6) / 5
Ix1_volt(6) = 0
End If
End If
|
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Tor Feb 08, 2011 6:24 pm Naslov sporočila: |
|
|
Napetost iz Shunt upora najprej ojačaj.
Multimeter ima že vgrajeno povprečenje, zato ne vidiš opletanja. _________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3360 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Tor Feb 08, 2011 6:26 pm Naslov sporočila: |
|
|
Kot razumem, da ADC trosi rezultate okrog prave vrednosti, je običajno.
Potrebno je programsko izboljšati rezultat s pomočjo povprečenja zadnjih n (3,4,8) meritev. Bom tako naredil, hvala. |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Tor Feb 08, 2011 7:46 pm Naslov sporočila: |
|
|
Ja.
Če bi hotel, da je vrednost "pribita", bi moral mnogo eksperimentirat okrog ločenega napajanja, dušenja, induciranih motenj, šuma v samem mikrokontroelrju,... Oziroma vzeti ločen diferencialni ADC, diferencialni predojačevalnik in se tam hecati z napajanji in masami.
Poleg tega ti sigurno šumi tudi sama merjena vrednost. Navsezadnje meriš precej majhne napetosti - imaš izkoriščen zelo majhen del celotnega dosega ADC-ja.. _________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
chaos Član


Pridružen-a: Sob 16 Sep 2006 22:12 Prispevkov: 1063 Aktiv.: 4.66 Kraj: Zagorje ob Savi
|
Objavljeno: Tor Feb 08, 2011 8:04 pm Naslov sporočila: |
|
|
Bi samo dodal, da kadar se uporablja shiftanje v desno v smislu deljenja, je pametno rezultat primerno zaokrožiti. Shiftanje v desno namreč zmeraj zaokrožuje navzdol.
Pravilno zaokrožiti rezultat je zelo preprosto: preden (v tem primeru seštevek) shiftamo desno, prištejemo bite, ki jih bomo odrezali, npr. za deljenje z osem:
Koda: |
val = (val_sum + (val_sum & ((1<<3)-1))) >> 3 |
LP! |
|
Nazaj na vrh |
|
 |
bostjang Član

Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3469 Aktiv.: 14.65 Kraj: Postojna
|
Objavljeno: Tor Feb 08, 2011 8:41 pm Naslov sporočila: |
|
|
Vrednost bi vseeno morala biti bolj 'pribita', tudi brez spanja procesorja. Vsaj jaz imam boljše izkušnje.
V podatkovnem listu piše, da je absolutna točnost +/- 2 LSB, tebi pa pleše precej več. Kot so že predlagali, preveri kako je z napajanjem.
Mogoče pa šumi tudi merjena vrednost. Njeno filtriranje (RC člen) bi tudi znalo izboljšati rezultate. Kondenzator pa naj bo pri mikrokrmilniku, priključen v analogno maso. |
|
Nazaj na vrh |
|
 |
|
|
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: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|