Sari la conținut
ELFORUM - Forumul electronistilor

ADC Attiny24, discutii.


nickrvl

Postări Recomandate

La 100Vcc plaja la intrare, 1 LSB = 100/1024 = 0,097Vcc deci 1LSB este aproximativ 0,1V.Conform datasheet precizia este de +/- 2LSB Absolute Accuracy, adică 0,2Vcc abatere deci e normal.Dacă tot nu scoate sursa ta 100V, pune divizor pentur o măsurătoare de maxim 30V caz în care 1LSB va fi 0,03 iar abaterea totală 0,06Vcc.L.E. am făcut niște teste cu voltmetrele mele, comparate cu același și singurul multimetru.Voltmetrul cu mega8 avea o abatere de 0,1 la 1V reglat la sursă și de 0,2V la 25V reglat la sursă (care e maxim posibil la sursa respectivă), abaterea fiind în sens invers.Voltmetrul cumpărat de pe forum (model cu 3 digiti led, integrat specializat, 15 lei) nu avea abatere la tensiuni minime, spre maxim 25-30 căpăta abatere de 0,1 la 25 și 0,2 la 30V. Acel voltmetru e pe altă sursă care duce pînă în 31-32V.Cred că ține de ADC și calitatea lui.

Link spre comentariu
  • Răspunsuri 90
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • nico_2010

    31

  • nickrvl

    30

  • ratza

    11

  • Liviu M

    8

Top autori în acest subiect

Imagini postate

La 100Vcc plaja la intrare, 1 LSB = 100/1024 = 0,097Vcc deci 1LSB este aproximativ 0,1V.Conform datasheet precizia este de +/- 2LSB Absolute Accuracy, adică 0,2Vcc abatere deci e normal.Dacă tot nu scoate sursa ta 100V, pune divizor pentur o măsurătoare de maxim 30V caz în care 1LSB va fi 0,03 iar abaterea totală 0,06Vcc.L.E. am făcut niște teste cu voltmetrele mele, comparate cu același și singurul multimetru.Voltmetrul cu mega8 avea o abatere de 0,1 la 1V reglat la sursă și de 0,2V la 25V reglat la sursă (care e maxim posibil la sursa respectivă), abaterea fiind în sens invers.Voltmetrul cumpărat de pe forum (model cu 3 digiti led, integrat specializat, 15 lei) nu avea abatere la tensiuni minime, spre maxim 25-30 căpăta abatere de 0,1 la 25 și 0,2 la 30V. Acel voltmetru e pe altă sursă care duce pînă în 31-32V.Cred că ține de ADC și calitatea lui.

Cu divizor pentru ADC = 1023 la 20V, 4,48v pe pin mc, am abatere de 0.06V la minim, in loc de 0.5V indica 0.44V, abaterea o are intodeauna in jos, la maxim cap de scala indica exact 20,00V.Cred ca pentru a obtine o precizie cit de cit buna trebuiesc doua divizoare calculate pentru 100V maxim si 30V maxim (probabil), ambele sa citeasca aceasi tensiune iar mc-ul sa treaca de pe un divizor pe altul la pragul de 30V, dar si atunci trebuie un al mc.Deocamdata tot "calitatea" ADC-ului/Mc-ului o banuiesc.Oare C.I. dedicate cum ar fi ICL-urile ce abateri au?L.E. In aceleasi conditi, mai testai un Atmega8 gasit prin fund de sertar, aceasi abatere in jos!!!!Cu referinta interna si divizor pentru cap de scala 10V deviatie tot in jos 0.02V la minim.
Link spre comentariu

Eroarea nu e constanta pe intreg intervalul de masurare (din cauza divizorului rezistiv), e mai mica la tensiuni mici si viceversa.

Uite aici cateva date generate de un script matlab. Sper sa nu fi gresit ceva.

 

Valoare referinta : 2.500V

Precizie referinta : +/-0.020%

Eroare ADC : 2.0LSB

Numar biti ADC : 10

Precizia rezistoarelor : +/-0.100%

Tensiunea maxima intrare : 100.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 39000.00Ohm

Tensiunea de masurat (cunoscuta) : 10.00V

Interval valori ADC plauzibile : ( 100 - 104 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 9.744652 10.275976 ) V

 

Valoare referinta : 2.500V

Precizie referinta : +/-0.020%

Eroare ADC : 2.0LSB

Numar biti ADC : 10

Precizia rezistoarelor : +/-0.100%

Tensiunea maxima intrare : 100.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 39000.00Ohm

Tensiunea de masurat (cunoscuta) : 90.00V

Interval valori ADC plauzibile : ( 917 - 925 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 89.358456 90.624323 ) V

 

Daca schimbam precizia referintei si a rezistoarelor cu valori ceva mai uzuale, lucrurile stau destul de diferit.

 

Valoare referinta : 2.500V

Precizie referinta : +/-0.100%

Eroare ADC : 2.0LSB

Numar biti ADC : 10

Precizia rezistoarelor : +/-0.500%

Tensiunea maxima intrare : 100.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 39000.00Ohm

Tensiunea de masurat (cunoscuta) : 10.00V

Interval valori ADC plauzibile : ( 99 - 105 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 9.564601 10.463450 ) V

 

Valoare referinta : 2.500V

Precizie referinta : +/-0.100%

Eroare ADC : 2.0LSB

Numar biti ADC : 10

Precizia rezistoarelor : +/-0.500%

Tensiunea maxima intrare : 100.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 39000.00Ohm

Tensiunea de masurat (cunoscuta) : 90.00V

Interval valori ADC plauzibile : ( 909 - 933 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 87.820426 92.196818 ) V

 

Lucrurile se remediaza prin cresterea numarului de biti ai convertorului.

 

Valoare referinta : 2.500V

Precizie referinta : +/-0.100%

Eroare ADC : 2.0LSB

Numar biti ADC : 16

Precizia rezistoarelor : +/-0.500%

Tensiunea maxima intrare : 100.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 39000.00Ohm

Tensiunea de masurat (cunoscuta) : 90.00V

Interval valori ADC plauzibile : ( 58349 - 59621 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 88.081581 91.959292 ) V

 

Sau un caz ideal.

 

Valoare referinta : 2.560V

Precizie referinta : +/-0.000%

Eroare ADC : 2.0LSB

Numar biti ADC : 24

Precizia rezistoarelor : +/-0.000%

Tensiunea maxima intrare : 100.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 38062.50Ohm

Tensiunea de masurat (cunoscuta) : 90.00V

Interval valori ADC plauzibile : ( 15099487 - 15099500 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 89.999929 90.000066 ) V

 

Toate datele presupun un convertor SAR.

Ex:

Convertor pe 3 biti,

Vref = 10V,

Cuvant la iesire = 2, => 1LSB = 10/2^3 = 1.25 V,

Tensiunea reala >= 2.5 dar < 2.75, adica rezultatul este un interval de incredere, nu o valoare fixa.

Pentru valoarea 0 intervalul de incredere este (-inf 1.25)V iar pentru 7 intervalul este [8.75 inf).

 

Semnalati orice greseala va rog.

Link spre comentariu

Eroarea nu e constanta pe intreg intervalul de masurare (din cauza divizorului rezistiv), e mai mica la tensiuni mici si viceversa........

Poti pune date si in situatiile urmatoare? mai ales divizorul "optim":-Referinta 5V-ADC 10 biti-Tensiunea maxima 100Vsi aceasi situatie dar tensiunea maxima 20V
Link spre comentariu

Valoare referinta : 5.000V

Precizie referinta : +/-0.100%

Eroare ADC : 2.0LSB

Numar biti ADC : 10

Precizia rezistoarelor : +/-0.100%

Tensiunea maxima intrare : 100.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 19000.00Ohm

Tensiunea de masurat (cunoscuta) : 10.00V

Interval valori ADC plauzibile : ( 100 - 104 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 9.737342 10.283682 ) V

 

Valoare referinta : 5.000V

Precizie referinta : +/-0.100%

Eroare ADC : 2.0LSB

Numar biti ADC : 10

Precizia rezistoarelor : +/-0.100%

Tensiunea maxima intrare : 20.00V

Rezistenta R2 : 1000.00Ohm

Rezistenta R1 : 3000.00Ohm

Tensiunea de masurat (cunoscuta) : 10.00V

Interval valori ADC plauzibile : ( 508 - 515 ) LSB

Interval valori tensiune plauzibile (dupa conversie) : [ 9.897100 10.103351 ) V

 

Codul il rulezi aici : http://www.compileonline.com/execute_matlab_online.php, paste apoi "Execute script".

 

Divizorul rezistiv fie il faci cu o precizie cat mai mare, fie ii faci o caracterizare buna si compensezi pentru ea, fie il faci reglabil si faci o calibrare cu o sursa/aparat masura.

script.txt

Link spre comentariu

Prin amabilitatea lui "Nico", trimitindu-mi "cado`" un MAX6029 de 2.5V, si caruia ii multumesc, am verificat aparatul de masura, indica 2.48V pe scala de 20V si 2.4V-2.5V pe scala de 200V, deci, fata de aceasta valoare de referinta tolreanta aparatului meu este de 0.02%, asta inseamna ca abaterea de 0.2V la cap de scala spre minim pe o plaja de 0-23.9V o are mc-ul.-Am incercat cu doua Attiny24 si un Atmega8 pe care il am si acum in teste.-Aceasi abatere au avut-o toate indicind 0V cind sursa de tensiune debita 0.2V sau 1.3V cind sursa debita 1.5V.-Prin scriptul lui Ionut vad ca se da o tolernta de +-, la mine toate au avut aceasi abatere de 0.2 intodeauna in jos.-Indiferent de divizor, chiar daca e conceput pentru 20V cap de scala, abaterea tot persista, dar in aceasta plaja este de 0.1V.Acum i-mi dau seama ca nu am probat totusi si cu divizorul din script pentru 100V referinta 5V si anume 1k/1.9k, revin.

Link spre comentariu

Am gresit cind am spus ca o sa incerc (de fapt am incercat dar nu a mers) si cu divizor 1k/1.9K, nu am gindit atunci, 100V pe 1k?!!!! chiar si pe 1.9K tot nu e bine.....Revin pe R1 (R intrare) 100k si R2 (la masa) aproximativ 6k format din semireglabile conform calculelor pentru a avea pe pinul ADC maxim 5V.Mc-ul este Atmega8 acum.

@nickrvl:masoara si referinta de tensiune, ar trebui sa-ti afiseze 2.5V.

Banuiesc ca masuratoarea se face pe pinul AREF al mc-ului, tensiune alimentare 5.02V, pentru referinta interna masurind pe pin AREF am 2.58V, referinta tensiune alimentare AVCC masurind pe pin am 5.01V, aceasi abatere in ambele cazuri. Intre timp si din pura "greseala" se intimpla ceva "paranormal", cum am spus am incercat cam toate variantele posibile de referinte si calcule, intre timp tot sucind la montaj am uitat referinta externa de 4V formata cu TL431 conectata la pinul AREF si acum indica "la fix"!!!, cu toate ca in soft am setata referinta de alimentare AVCC iar ce-mi afisaza e ADC "pur" fara calcule sau convertiri. Daca in soft modific pe referinta externa de 4V abaterea revine. O sa incerc si cu Attiny24 dar nu cred ca azi....L.E. Xant, adica sa aplic maximul de 5V pe pin fara divizor? nu am incercat...., o sa incerc.
Link spre comentariu

Am gresit cind am spus ca o sa incerc (de fapt am incercat dar nu a mers) si cu divizor 1k/1.9K, nu am gindit atunci, 100V pe 1k?!!!! chiar si pe 1.9K tot nu e bine......

19000R = 19K + 1K = ~5mA la 100V.Vezi ca pentru referinta interna si AVCC, pin-ul aref e iesire (impedanta ridicata) si nu trebuie incarcata. Pune un condensator de valoare mica intre aref si masa.
Link spre comentariu

Fenomenul meu "paranormal" se reduce la a alimenta Atmega8 cu 4.5V in loc de 5V, referinta interna, divizorul 100k/6k si acum i-mi indica exact ca si multimetrul.Pinul AREF are condensator pentru decuplare si i-am scos si referinta externa.Deci alimentarea influenteaza!!! daca o cresc la 5V am deviatie.

Link spre comentariu

@nickrvl: Cand am spus (scris) sa masori referinta de tensiune, ma refeream la MAX6029 (pe care zici ca l-ai primit). Conecteaza iesirea referintei de tensiune la intrarea in ADC si verifica ce afiseaza pe LCD (ar trebui sa ai 2.5V +/-20mV). Pinul aferent referintei de tensiune interna a uC trebuie decuplat la masa cu un condensator de 100nF (daca folosesti referinta interna sau tensiunea de alimentare de 5V ca tensiune de referinta).Daca referinta interna este 2.58V, introdu aceasta valoare in formula de calcul/conversie a valorii ADC in tensiune si nu uita ca in aceasta situatie nu vei putea masura decat maximum 2,58V la intrarea in ADC.Masuratorile complarative le faci fara divizor si fara sa faci inmultirea cu 100 (in program).

Link spre comentariu

@nickrvl: Am revazut toate postarile tale de pana acum. Am totusi impresia ca nu folosesti programul modificat pentru a afisa tensiunea. Spun asta deoarece pe baza testelor facute de mine (unul dintre ele a fost chiar postat) nu ar trebui sa ai o eroare mai mare de 20mV (4LSB) fata de realitate.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări