stabilnosc Uref w Atmega oraz dziwne pomysly odnosnie pomiaru...

Tak sobie kombinuje woltomierz + amperomierz + dodatki na avr, do zasilacza laboratoryjnego, i po przetestowaniu partii (~20szt) atmega16 w dil40 rozrzut Uref wewnetrznego (ktory mialby miec 2.56v) jest na poziomie 2.2v do 2.7v! Moze i jest stabilne to napiecie, ale nijak nie jest "rowne". Co dziwne - w tqfp rozrzut uref jest duzo mniejszy (na poziomie 2.45 - 2.60v), ale nadal jest to mocno krzywe... Z takim uref blad pomiaru bylby zdecydowanie zbyt duzy. Do bledow pomiaru dochodza jeszcze bledy np rezystancji w dzielniku napiecia, stad pomiar robi sie conajmniej marny. Kalibracja po prostu jest wymagana, po stronie cyfrowej przy 10bit przetworniku nie ma ona sensu, potencjometru tez bym chcial uniknac... I tak sobie wymyslilem - moze Uref wytwarzac z PWM 16bit ? Stabilnosc zegara (chocby nawet z RC wewnetrznego, ale raczej kwarc) jest dosc duza, rozdzielczosc 16bit daje dosc duze pole manewru, przy duzej czestotliwosci filtr nie musialby byc jakis okrutny... Uref moglbym wystrugac w zakresie 0 - Ucc (prawie)... Po pierwsze slyszalem ze ADC w avr nie lubi malych Uref (<2v) - czy to potwierdzone, bo np do pomiaru pradu bardzo by mi pasowalo Uref 1.023v :) Po drugie - kalibracja - poleganie na zasilaniu +5v idealnym i przyjecie ze np 0x00ff da mi 2.5v - to chyba nie najlepsze rozwiazanie. Zasilanie moze sie zmienic, byc niestabilne, filtr pwm tez nie bedzie idealny... Wymyslilem cos takiego:

- procesor ustawia (bo ma taka mozliwosc, np przekaznikiem) pomiar z nozki na ktorej jest Uref z jakiegos dobrego scalonego Uref np 5v i tak kombinuje z PWM by zmierzone na ADC napiecie bylo odpowiednie, np dla zakresu pomiarowego 0.00 - 40.95v pomiar 5.00v dalby wynik z ADC 0x007D (125). Jesli tak by bylo (i pomiar 0v bylby 0x0000 bo z tym tez bywa roznie w avr, czasem 0 daje 0x0001 albo 0x0002), to mamy skalibrowane.

Moze za bardzo kombinuje? moze da sie to zrobic prosciej jakos, bez dobrego Uref wsadzanego do ukladu, moze jednokrotna taka kalibracja i zapisanie wartosci PWM do eepromu wystarczy?

Reply to
BartekK
Loading thread data ...

BartekK napisał(a):

Czytales datasheet? Strona 295 - internal voltage reference min 2,3V, max 2,7V, typical 2,56V. I wszystko jasne.

Nie prosciej dac zewnetrzne napiecie odniesienia?

Znowu datasheet sie klania - str. 295 - Reference Voltage - for single ended and differential conversion minimum 2,0V.

Ale jesli masz juz to Uref to po co kombinowac, nie prosciej je podlaczyc jako napiecie referencyjne do procka?

Reply to
T.M.F.

T.M.F. napisał(a):

Czytalem, wiem. Co nie znaczy ze mi sie to podoba :) dlatego tez szukam innego rozwiazania. Niedawno mnie tu ktos zjechal "przeciez atmega ma bardzo dobre, stabilne, wewnetrzne, zawsze rowne 2.56v uref"...

Nie, bo raz potrzeba takie, a raz inne... A najwygodniej by bylo miec mozliwosc zmieniania - np (w uproszczeniu) miec Uref=4.095v dla pomiaru do 40.95v (z krokiem 0.01v), a gdy zmierzone napiecie jest <20v to przelaczyc Uref = 2.047v i mnozyc wynik x2, uzyskujac krok/rozdzielczosc

0.005v itd... A przy pomiarze pradu jeszcze inaczej...

Tez to widzialem, ale co to oznacza? Ponizej 2.0v wybuchnie, nie bedzie mierzyc, bedzie zle mierzyc... ?

Jak wyzej...

Reply to
BartekK

Desoft napisał(a):

Tak, tylko ze wszelka korekcja po stronie cyfrowej jest juz bezsensowna, przynajmniej przy rozdzielczosci 10bit wewnetrznego przetwornika. W tym caly sens manewrowania z Uref, by krok/rozdzielczosc pomiaru wychodzila "rowna" - tzn np. 1bit = 0.1v, bo co mi z pomiaru przy ktorym zmiana o jeden bit jest rowna 0.082456v ? Jak to wyswietlac? Zaokraglac? To co pare bitow wyjdzie przeskok o 0.2v zamiast o 0.1v...

Reply to
BartekK

BartekK napisał(a):

Rozwiazaniem jest pomiar wielokrotny i usrednianie wyniku. Jako zrodlo referencyjne proponuje LM431 (np.

formatting link
sie bardzo dobrze w takich zastosowaniach.

Pozdr AK

>
Reply to
AK

BartekK napisał(a):

No to podlacz pod stabilizowane 5V zasilajace uklad poprzez filtr.

Skoro potrzebujesz rozne to wewnetrzne Uref i tak ci nic nie daje. Poza tym okresl z jaka dokladnosci potrzebujesz dokonac pomiaru. ATMega umozliwia uzyskanie rozdzielczosci rzedu 2mV, Obnizajac Uref i tak wiekszej nie uzyskasz. Pomysl nad wykorzystaniem mozliwosci wzmocnienia sygnalu przez ATMege, masz o ile sie nie myle do wyboru 10 i 200x.

Pewnie bedzie mierzyc, niesadze zeby wybuchlo. Ale policzmy

2,0V/2^10=1,95mV. Poniewaz rozdzielczosc przetwornika jest na poziomie 2mV (gdzies o tym pisza w datasheet) to zmniejszajac napiecie odniesienia nic nie zyskujesz. A wrecz tracisz.
Reply to
T.M.F.

Desoft napisał(a):

Widze ze dalej nie rozumiesz problemu. Dla ulatwienia przyjmijmy przetwornik 2bitowy - 4 poziomy

11 = Umax = Uref 10 = 2/3*Uref 01 = 1/3*Uref 00 = 0 * Uref I teraz chcialoby sie wyswietlic zmierzone napiecie w postaci "dziesietnej" - powiedzmy na wyswietlaczu lcd tekstowym zeby byla duza dowolnosc. Napiecie wejsciowe (mierzone) dzielisz dzielnikiem rezystancyjnym - aby zakres napiec sie zmiescil (lub z lekkim zapasem, by krok byl wygodny do wyswietlenia) miedzy 0 a Uref. Powiedzmy ze chcemy mierzyc napiecia w okolicy 0-9v, czyli 0v, 3v, 6v i 9v. Ustawiamy w takim wypadku Uref na 3v, podzial na dzielniku rezystancyjnym /3, wynik (binarnie) mnozymy przez 3 i wyswietlamy i gotowe ? Niestety nasz dzielnik na opornikach nie jest idealny, oporniki maja jakas tam precyzje i wyszedl nam podzial /3.8 Jak to skompensujesz po stronie cyfrowej? Nijak, bo zmierzysz 9v/3.8 = 2,368v, co zalapie sie moze na wartosc binarna 10, a moze na 11? (zaleznie od histerezy komparacji napiecia w ADC). Ale wystarczyloby zmodyfikowac Uref dla tago nieidealnego dzielnika na 2.368v, i juz mamy skale i dokladnosc zachowana.
Reply to
BartekK

A stronie cyfrowej to dokładnie wisi -

Ja bym raczej porównał ADC do analogowego miernika wskazówkowego : pamiętasz tam zasadę działania ? tam był zakres, ilość działek na skali, z tego otrzymywało się ilość np. woltów na działkę i MNOŻYŁO przez ilość odczytanych działek już w głowie aby otrzymać odczyt w woltach... Przy kwantyzacji ADC masz podobnie : masz zakres przetwornika i ilość możliwych kombinacji bitów; reszta to już tylko matematyka; część 'głowy' przeniesiona do elektroniki.

2.368 < 3.0 więc 'załapie się' na 00.

Lepiej poczytaj o przetwornikach analogowo - cyfrowych i co one tak naprawdę mierzą.

el es

(no offence :)

Reply to
Lukasz Sokol

BartekK napisał(a):

Napięcie odniesienia z marnego źródła Uref, które jest w procesorze, może się zmieniać w zależności od temperatury i samopoczucia procesora :) w dość szerokim zakresie, cytowano tu już odpowiedni fragment PDFa.

Najlepiej byłoby robić autokalibrację okresowo (np. co minutę) a jeżeli robisz rzadko szybkie pomiary to przed każdym pomiarem. Wystarczy, że zasilasz procesor z porządnego stabilizatora liniowego (dającego np. równe 5V) i możesz zmierzyć napięcie VBG wybierając VCC (twoje 5V) jako Uref. A wtedy szybkie wyliczenie poprawki i po problemie.

Nie ma sensu przejmować się "nierównymi" wynikami obliczeń. Wystarczy liczyć wszystko np. w uV na całkowitych liczbach 32-bitowych. A jeżeli poprawka do wprowadzenia wyjdzie na przykład 2,3845 to po prostu wykonaj operację (x * 23845) / 10000.

Przykładowe wyświetlenie napięcia podanego w uV do 3 cyfr po przecinku: printf_P (PSTR ("%lu,%03lu"), x / 1000000UL, (x / 1000UL) % 1000UL);

Reply to
Adam Dybkowski
Reply to
Greg(G.Kasprowicz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.