Risto,
Pošto nigde nisi pomenuo dozvoljene opsege tvog uređaja, a ni tolerancije, po slobodi i onog što sam nazreo iz tvog prvog teksta, pretpostavio sam da se radi o auto testeru za napone od 0-17V.
Na osnovu te pretpostavke je dimenzionisan full opseg od 24V kao maksimum, i za njega je napravljen razdelnik koji će dati 2V4 za tih 24V na pipcima.
To podrazumeva upotrebu referentnog napona od 2v4 na još jednom pinu čipa i automatski full scale od 2V4.
(mislio sam da imaš nekih iskustava)
Pri tom naponu, ako se izaberu male zener diode, sa malom strujom curenja, neće provesti na 2V4.
-------------------------
Međutim, to sa zenericama je moja paranoja za slučajeve da se odlučiš na mnogo niže otpornosti.
Goša je 100% u pravu, jer kod tako visokih ulaznih impendansi su problematični čak i faktori koji se odnose na zaprljanost PCB, a da ne pominjem struje curenja ulaznih pinova koje zavise od temperature čipa.
Prvo i najbolje rešenje kojim izbegavaš potrebe za linearizacijom merenja zbog parazitnih curenja pri tim impendansama je smanjenje ulaznih impendansi.
Za te automoto potrebe stvarno i nema nekog posebnog razloga da ulazna impendansa ima više od 100K.
Dalje, moja nesvesna paranoja oko ulaza je bespotrebna. Ako pogledaš u datasheet od nekog PIC na primer, videćeš da svaki pin do jednog, kada je proglašen kao ulaz, ima dozvoljenu klamp struju od čitavih +-20mA.
Iz prakse za PIC kontrolere pouzdano znam da su veoma robusni na situacije prekoračenja napona ulaza i da taj interni klamp odlično radi.
Dakle, što se zaštite tiče PIC će dopustiti šok od +- 24V sa svega nekoliko Kohm ispred ulaza, ukoliko je napajanje "tvrdo", a pošto je kod tebe litijumska baterija ili možda živina, to jeste tvrdo napajanje.
Najpreciznije, sa otporima od 10K do možda tih 1Mohm na ulazima, kao zaštitu tih ulaza je dovoljno ne staviti NIŠTA.
Interne klamp diode će perfektno zaštititi te ulaze.
Čak ni D2 nije neophodna i najkorisnije je tu staviti LED koja će ukazati na kontra polaritet kad obrneš pipke.
U takvom slučaju nemaš potrebe ni za kakvim dodatnim skaliranjem, pogotovo ako sniziš ulazne otpore na red veličine 100K.
Onda će ti od parazitnih struja curenja greška u merenju biti manja od 1%, što je ekstra za nešto što pokazuje pomoću LED i vrši test ispravnosti provodnika.
Ono što sam ti prethodno nacrtao je edukativnog tipa i ukazuje ti najpre na ratiometrijski način merenja zbog toga što su strujni izvori kod tako malih napona napajanja vrlo problematični i zahtevaju ozbiljne termo kompenzacije.
Korišćenje tog PNP tranzistora ti omogućava da pinom aktiviraš test otpora, i to nekim tasterom na meraču radi što manje potrošnje baterije.
Kada pritisneš taj taster za merenje otpora, ukoliko su ti otvoreni pipci imaćeš srazmerno pokazivanje napona baterije koje možeš očitati sa ADC3, sa malenim padom napona na Uce_sat na PNP tranzistoru, koji će biti mali i dosta konstantan jer je tada kolektor opterećen sa R7, R1 i R2 na red, struja kroz kolektor je malena i na ADC3 će ti se napon razlikovati par desetina mV od napona baterije.
Naravno, ako upotrebiš neki referentni napon za sve ADC, pošto se ne možeš pouzdati u Vdd od baterije jer se ona troši, onda na svakom ADC ulazu moraš napraviti razdelnike napona koji ograničavaju ulaz ADC na Vreff u svim mogućim situacijama.
Tu najpre mislim na ADC2 i ADC3, gde na oba može stići napon skoro jednak naponu baterije kad su pipci otvoreni.
--------------------------
E sad ovako, pošto vidim da očigledno nemaš iskustva sa tim stvarima,
evo ti šeme realnog izvođenja takve naprave sa nešto nižim impendansama ulaza i rešenim problemima zaštita za sigurnih +-24V na pipcima.
Tester_realni.pdf (Size: 15,91 KB / Downloads: 16)
Ovo je već "sažvakana" verzija koja će raditi ako napišeš ok program.
Za početak mala objašnjenja oko hardvera:
D2 LED ti je indikator obrnutog polariteta, imao napajanje iz baterije ili ne.
D4, D5 i D6 šotki diode BAT54 (može i neka druga iz te serije) obezbeđuju početno napajanje Vreff za vreme izlaska iz sleep moda i to naponom koji stiže sa pipaka.
Po buđenju iz sleep moda digneš izlaz Out_Vreff_supp i obezbediš korektno napajanje referentnog napona od 2V4.
Opseg merenja ADC-a ti je upravo od 0 - 2V4 i Vreff će biti korektno spreman za merenje za 10mS posle weak up.
To je stoti deo sekunde i za ljudskog korisnika transparentan period.
U sleep modu treba pin "Out_Vreff_supp" i pin"Out_contin" držati u tri state modu (kao input) radi toga da se ne drži PNP aktivnim i ne šentuju oba LM4041-1.2 sa 3k3.
LM4041-1.2 je IC koji radi od 60uA pa na više kao stabilan referent. To je referent od tipičnih 100ppm, jevtin je i sasvim dovoljan za LED merače. Takođe će održati tih 2V4 Vreff do oko 2.6V baterije, što je sasvim dovoljno jer je tada baterija od 3V i više nego "mrtva".
Wake up vršiš iz dva moguća izvora:
-pomoću ADC2 i(ili) ADC3, pojavljivanjem napona na njima, gde se privremeno napajanje Vreff obavlja kroz one tri šotki, i istovremeno obezbeđuje da svi ADC inputi ne moguimati više od 0.3V iznad Vreff. Za vreme weak up se ne vrši merenje jer nije validno i vrednosti sa bilo kog ADC služe samoza buđenje MCU. Meri se 10mS posle weak up jer tada je Vreff stabilan i napajan kroz 3K3.
-ili pritiskom tastera "Taster za aktiviranje contin. testa".
Weak up podrazumeva proglašavanje pin "Out_Vreff_supp" i pin "Out_contin" izlaznim pinovima, potom podizanje "Out_Vreff_supp" na stanje 1 čim se posle 10mS dobijaju uslovi za tačno merenje, a pin "Out_contin" se obavezno diže na stanje 1 i tako drži cotin. test neaktivnim osim ako buđenje nije izvršeno baš sa tim zahtevom.
U slučaju da je zahtev merenje contin. test, onda se pin "Out_contin" stavlja u stanje nula, tim otvara PNP.
-----------------------------------------
Merenje napona se vrši pomoću ADC1 klasičnim načinom. Razdelnik R1/R2 je takav da za 24V ulaznog napona imaš 2V4 na ADC1, dok su ostala dva ADC ulaza uklampovana na Vreff +0.3V.
Naravno, po buđenju ostaviš neko vreme koje će držati instrument u budnom stanju i ako niko ništa ne radi odeš u sleep mod da ne trošiš bateriju.
---------------------------------
Kod buđenja tasterom "Taster za aktiviranje contin. testa", dok su otvoreni pipci možeš iskoristiti ADC3 za saznavanje stanja baterije. Znak da ti ne teče struja kroz R7 za contin. test ti je mala razlika napona između ADC3 i ADC2 i tada možeš vršiti merenje baterije i indikovati ga neko blinkajućom LED tipa "low batt".
Merenje stanja baterije kad su u modu contin. test i kad su ti pipci otvoreni, imaće kao rezultt na ADC3: Vbatt-Vce_sat(BC857C) i naravno razdeljen odnosom R5/R8. To se lako nabaždari sa lab ispravljačem od 3,3V do 2.8V.
U slučaju da ti je razlika između ADC3 i ADC2 veća od neke vrednosti koja ti je zanimljiva za contin. test, onda se baviš čitanjem te otpornosti koju meriš.
To radiš na sledeći način:
-iz veličina sa ADC3 i ADC2 saznaješ razliku napona na R7 i obračunavaš trenutnu struju kroz njega, potom napon sa ADC2 deliš sa tom izrčunatom strujom kroz R7. Rezultat ti je direktno otpornost DUT, a ti posle arbitriraj sa njom kako ti već treba.
Saznavanje struje kroz R7 te oslobađa upotrebe kompleksnihi problematičnih strujnih izvora na svega 3V napajanja (jer trebalo bi ti bar jedno 5-6 tranzistora i poprilična parazitna potrošnja iz baterije za dobar strujni izvor), ujedno te oslobađa problema koji zavise od stanja baterije jer ti je obračun uvek korektan.
Pošto računanje struje kroz R7 i računanje otpora traju svega nekoliko destina MCU instrukcija, za to vreme će promena stanja baterije biti totalno nevidljiva i uzorak merenja će uvek biti korektan.
Naravno, contin. test držiš ograničeno vreme aktivnim jer troši par mA iz male baterije.
I tu možeš izvršiti nekakvu arbitraciju stanjem: ako na primer nemaš struju kroz R7 i nalaziš se u merenju stanja baterije, onda možeš duže ostati van sleep moda jer ti je manja potrošnja, ako na primer vršiš contin. test, onda je pametno vršiti ga impulsno, sa salnjem struje kroz R7 nekoliko puta u sekundi po 20mS, čim možeš veoma štedeti bateriju.
To isto važi za sve indikatorske LED gde je dovoljan duty od nekih 10% ili manje, sa par miliampera kroz njih da se led dobro vide i da malo troše.
Takođe je vrlo vidljiv agresivan ritam blinkanja tih led od nekih 8-10 Hz. Liči na brzo treperenje, odlično se vidi i malo troši. To je iritantna frekvencija za ljudsko oko i vrlo je primetna.
Eksperimentom skraćuješ vreme pulsa kroz indikatorske led na minimalno trajanje impulsa a da led ostanu pristojno vidljive.
To je baterijski uređaj, sa relativno malom baterijom, gde je sleep potrošnja veoma značajna stvar i treba da je što manja.
Takođe treba svim metodama redukovati i potrošnju u mernom, aktivnom stanju, jer prilično bi bilo besmisleno da baterija traje jedan dan.
Ako ima još kakvih nepoznanica pitaj.
Pozdrav