AVR analog ingång ostabil
Re: AVR analog ingång ostabil
Eventuellt går jag över till en 16bitars adc med i2c interface, finns en uppsjö av på tex elfa, kostar 20-30sek endast.
Jag trodda att de skulle vara astronomiskt dyra men tydligen inte!
Jag har testat med ett batteri på analogingången, då har jag HELT stabil mätning, 240 är det digitala värdet. Detta säger mig att noise från uC själv ej är problem. Skall dock testa med adc läsning under sleep-state
Har för övrigt fått ner läsningen till 175-176 med 90% av läsningarna hamnande på 175 mha ett LPF.
har matat med usb, usb med stabiliserings konding, samt med späningsstabb.
Bör stå i tråden.
EDIT, man kan utan problem använda alla 10bitar linjärt. ej så att man endast får ut "8bitars upplösning"
Testat med en späningsdelare och matat 0-5V och får ut ett helt linjärt värde av 0-1023
Jag trodda att de skulle vara astronomiskt dyra men tydligen inte!
Jag har testat med ett batteri på analogingången, då har jag HELT stabil mätning, 240 är det digitala värdet. Detta säger mig att noise från uC själv ej är problem. Skall dock testa med adc läsning under sleep-state
Har för övrigt fått ner läsningen till 175-176 med 90% av läsningarna hamnande på 175 mha ett LPF.
har matat med usb, usb med stabiliserings konding, samt med späningsstabb.
Bör stå i tråden.
EDIT, man kan utan problem använda alla 10bitar linjärt. ej så att man endast får ut "8bitars upplösning"
Testat med en späningsdelare och matat 0-5V och får ut ett helt linjärt värde av 0-1023
Re: AVR analog ingång ostabil
Ja, en extern "bättre" ADC låter ju vettigt med tanke på applikationen.
> Jag har testat med ett batteri på analogingången, då har jag HELT stabil mätning,
Alltså med allt annat lika, matning o.s.v? Det låter som att
spänningen från givaren och förstärkaren inte är helt stabila.
Kanske inte helt orimligt. Ett oscilloskop skulle kunna svara på det.
> EDIT, man kan utan problem använda alla 10bitar linjärt. ej så att man endast får ut "8bitars upplösning"
Ja, var kanske lite väl kategoriskt där från TomasL...
> Jag har testat med ett batteri på analogingången, då har jag HELT stabil mätning,
Alltså med allt annat lika, matning o.s.v? Det låter som att
spänningen från givaren och förstärkaren inte är helt stabila.
Kanske inte helt orimligt. Ett oscilloskop skulle kunna svara på det.
> EDIT, man kan utan problem använda alla 10bitar linjärt. ej så att man endast får ut "8bitars upplösning"
Ja, var kanske lite väl kategoriskt där från TomasL...

-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: AVR analog ingång ostabil
Om värdet hoppar mellan flera siffror är det perfekt, summera 32st värden och ta medel av dem, då har du >10bitars UPPLÖSNING.
Men om ditt brus är centrerat runt det "sanna" värdet och någorlunda jämt fördelat så får du även högre noggrannhet.
Men om ditt brus är centrerat runt det "sanna" värdet och någorlunda jämt fördelat så får du även högre noggrannhet.
Re: AVR analog ingång ostabil
Oavsett om jag tar 32 mätningar och medlet av dem så blir det fladdrigt.
Medlet ena gången blir 175 och andra 176 etc.
Har löst det nu med ett lågpassfilter samt i min kod tar bort mätning spär +/- 1 från föregående.
Får duga tills jag tar hem en 16 bitars ABC med spi interface på måndag
Medlet ena gången blir 175 och andra 176 etc.
Har löst det nu med ett lågpassfilter samt i min kod tar bort mätning spär +/- 1 från föregående.
Får duga tills jag tar hem en 16 bitars ABC med spi interface på måndag
Re: AVR analog ingång ostabil
Battrimätningen var med usb matning.
Enligt Skåpet är den förstärkta signalen skitig, därav lågpassfiltret. Fungerar bra filtrerar bort allt. Igen enligt skåpet.
Dock fladdras det
Enligt Skåpet är den förstärkta signalen skitig, därav lågpassfiltret. Fungerar bra filtrerar bort allt. Igen enligt skåpet.
Dock fladdras det
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: AVR analog ingång ostabil
Du ska inte ta medlet på det viset, du kan ALDRIG komma under 1lsb.
Du summerar 32 eller annan siffra gånger, sedan antingen har du en float/double som kan spara decimalerna, eller så hanterar du bara talet som 32 gånger större.
Om du summerar och trunkerar decimalerna har du slängt all din nya information.
Du summerar 32 eller annan siffra gånger, sedan antingen har du en float/double som kan spara decimalerna, eller så hanterar du bara talet som 32 gånger större.
Om du summerar och trunkerar decimalerna har du slängt all din nya information.
Re: AVR analog ingång ostabil
Vad jag menar naturligtvis är att manaldrig kan lita på de sista bitrarna, eftersom omvandlaren har en onogrannhet på +/- 2 lsb, så filtrera bort dem, dvs sätt dem till noll.sodjan skrev:> EDIT, man kan utan problem använda alla 10bitar linjärt. ej så att man endast får ut "8bitars upplösning"
Ja, var kanske lite väl kategoriskt där från TomasL...
Vi kör med 24bitars omvandlare och skalar bort de lägsta 8 bitarna, så resultatet blir 16 bitar, typ. (delvis för att det räcker och delvis för att få stabilare mätningar)
Re: AVR analog ingång ostabil
> ...så blir det fladdrigt.
> Medlet ena gången blir 175 och andra 176 etc.
Vad är "Medlet" ??
Jag tror helt enkelt att du helt enkelt bara inte förstår.
Det där är bara kvantiseringseffekter, det har inte ett
smack med något "fladder" att göra! Du kan i princip
ALDRIG undvika att värdet rör sig mellan +/- 1 LSB.
Möjligtsvis i ett extremfall med väldigt stabila förhållanden
och en spänning som råkar ligga "mitt i" LSB, så att säga.
Men spänningen kan lika gärna ligga just i en brytpunkt.
> ... samt i min kod tar bort mätning spär +/- 1 från föregående.
Det är lite märklig svenska där, så jag är inte helt säker på vad du menar.
Menar du kanke "samt att min kod tar bort mätning med +/- 1 från föregående".
Eller vad ska det egentligen stå? Hur som helst, hur vet du att det var den
föregående som var korrekt? Det var kanske den som skulle tas bort!
Men oavsett det så är det helt feltänkt i alla fall...
Om din applikation inte tollererar en osäkerhet på +/- 1 LSB, så är det
fel ADC för uppgiften.
> Medlet ena gången blir 175 och andra 176 etc.
Vad är "Medlet" ??
Jag tror helt enkelt att du helt enkelt bara inte förstår.
Det där är bara kvantiseringseffekter, det har inte ett
smack med något "fladder" att göra! Du kan i princip
ALDRIG undvika att värdet rör sig mellan +/- 1 LSB.
Möjligtsvis i ett extremfall med väldigt stabila förhållanden
och en spänning som råkar ligga "mitt i" LSB, så att säga.
Men spänningen kan lika gärna ligga just i en brytpunkt.
> ... samt i min kod tar bort mätning spär +/- 1 från föregående.
Det är lite märklig svenska där, så jag är inte helt säker på vad du menar.
Menar du kanke "samt att min kod tar bort mätning med +/- 1 från föregående".
Eller vad ska det egentligen stå? Hur som helst, hur vet du att det var den
föregående som var korrekt? Det var kanske den som skulle tas bort!
Men oavsett det så är det helt feltänkt i alla fall...

Om din applikation inte tollererar en osäkerhet på +/- 1 LSB, så är det
fel ADC för uppgiften.
Re: AVR analog ingång ostabil
Allt fungerar som det skall nu,
Ett LPF på ingången till ADC pinnen.
Gör 32 st samplingar och letar efter vanligaste värdet. Det antar jag att är det "rätta värdet", ej idiotsäkert och helt rätt, men fungerar bra.
Sparas som mätvärde.
Nästa mätning gämförs emot föregående, ligger de +/- ifrån används föregående värdet.
Har oxå en liten formel för att kompensera för LPF påverkan när olika spänningar matas in.
Med min 10 bit ADC får jag nu strax under 200 steg per volt. Mäter mellan 1 och 4 volt. Använder ej alla 1023 stegen utan lite under 800. Det ger mig ca 10% bättre noggrannhet än vad jag siktade på/behöver
Skall dock testa med en spi ansluten ADC, ev 24 bitars. Skulle ev slippa ina128 instrumentförstärkaren jag idag förstärker signalen med innan jag matar in den i LPF / adc
Ett LPF på ingången till ADC pinnen.
Gör 32 st samplingar och letar efter vanligaste värdet. Det antar jag att är det "rätta värdet", ej idiotsäkert och helt rätt, men fungerar bra.
Sparas som mätvärde.
Nästa mätning gämförs emot föregående, ligger de +/- ifrån används föregående värdet.
Har oxå en liten formel för att kompensera för LPF påverkan när olika spänningar matas in.
Med min 10 bit ADC får jag nu strax under 200 steg per volt. Mäter mellan 1 och 4 volt. Använder ej alla 1023 stegen utan lite under 800. Det ger mig ca 10% bättre noggrannhet än vad jag siktade på/behöver
Skall dock testa med en spi ansluten ADC, ev 24 bitars. Skulle ev slippa ina128 instrumentförstärkaren jag idag förstärker signalen med innan jag matar in den i LPF / adc
Re: AVR analog ingång ostabil
För en lastcell (utan inbyggd elektronik) så blir det kanske
lite svårt utan ett anpassningssteg innan ADCn.
> och letar efter vanligaste värdet.
Är det inte enklare att bara summera och dela med 32?
Alltså bara ta summan och shifta 5 steg?
Hur gör du för att hitta det "vanligaste värdet"?
lite svårt utan ett anpassningssteg innan ADCn.
> och letar efter vanligaste värdet.
Är det inte enklare att bara summera och dela med 32?
Alltså bara ta summan och shifta 5 steg?
Hur gör du för att hitta det "vanligaste värdet"?
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: AVR analog ingång ostabil
Sortera och ta värdet i mitten av vektorn. Antar jag att du menar iaf.
Alltså median.
Alltså median.
Re: AVR analog ingång ostabil
lastcellen levererar 8mV vid den matning jag har till den vid min "maxlast"
Så jag behöver mäta 0-8mV givetvis. Med en 24bit ADC kan jag läsa det mycket mer högupplöst än en 10bits ADC där jag först har förstärkt upp till att maxa ut vid 5V ist för 8mV. Många många tusen gånger nogrannare.
Hur det fungerar i verkligheten återstår att testa. Har ju alltid min ina128 med mitt LPF att falla tillbaka på då den delen fungerar felfritt.
Jag gör 32st adc läsningar till en array.
Loopar igenom arrayen och letar efter det talet som påträffas flest antal ggr.
Jag vet att jag skall ha 175, med rutinen ovan får jag i princip alltid 175.
Jag har testat med ett räkna fram medelvärde etc, men då blir det ibland 175, 176, 174. dock oftast 175, men inte i princip ALLTID som min hitta flest antal av samma funktion åstadkommer.
Hur var och varför får proffsen treta över, jag kör bara på det som fungerar bäst i praktiken.
Så jag behöver mäta 0-8mV givetvis. Med en 24bit ADC kan jag läsa det mycket mer högupplöst än en 10bits ADC där jag först har förstärkt upp till att maxa ut vid 5V ist för 8mV. Många många tusen gånger nogrannare.
Hur det fungerar i verkligheten återstår att testa. Har ju alltid min ina128 med mitt LPF att falla tillbaka på då den delen fungerar felfritt.
Jag gör 32st adc läsningar till en array.
Loopar igenom arrayen och letar efter det talet som påträffas flest antal ggr.
Jag vet att jag skall ha 175, med rutinen ovan får jag i princip alltid 175.
Jag har testat med ett räkna fram medelvärde etc, men då blir det ibland 175, 176, 174. dock oftast 175, men inte i princip ALLTID som min hitta flest antal av samma funktion åstadkommer.
Hur var och varför får proffsen treta över, jag kör bara på det som fungerar bäst i praktiken.
Re: AVR analog ingång ostabil
> Sortera och ta värdet i mitten av vektorn. Antar jag att du menar iaf.
1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 3
Är "2" ovan det "vanligaste värdet" ???
Medianen måste inte alls vara det "vanligaste värdet".
> Jag vet att jag skall ha 175...
Om du redan vet vad du ska ha så behöver du ju inte mäta alls...
Skit samma, jag tycker bara du lurar dig själv med en påhittad rutin
som är mer anpassad till dina förväntningar än något annat.
> Har ju alltid min ina128 med mitt LPF att falla tillbaka på då den delen fungerar felfritt.
Ja, det låter ju dessutom som rätt metod för en lastcell
1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 3
Är "2" ovan det "vanligaste värdet" ???
Medianen måste inte alls vara det "vanligaste värdet".
> Jag vet att jag skall ha 175...
Om du redan vet vad du ska ha så behöver du ju inte mäta alls...

Skit samma, jag tycker bara du lurar dig själv med en påhittad rutin
som är mer anpassad till dina förväntningar än något annat.
> Har ju alltid min ina128 med mitt LPF att falla tillbaka på då den delen fungerar felfritt.
Ja, det låter ju dessutom som rätt metod för en lastcell

Re: AVR analog ingång ostabil
Eller också så tar du en precisions AD med inbyggda kalibrerade PGAer, så slipper du problem.
Re: AVR analog ingång ostabil
Vet inte riktigt vem du svarae sodjan, jag har aldrig sagt att jag tar medianen. Utan det mest förekommande värdet. Tex
1,1,1,2,2,3,3,2,1,1
Ger 1 i mitt fall medan medianen skulle ge något helt annat.
1,1,1,2,2,3,3,2,1,1
Ger 1 i mitt fall medan medianen skulle ge något helt annat.