|
Prodaja:
Alatka za digitalnu radionicu - VOJINA SONDA
Ovo je, skoro neizmjenjen, originalni tekst autora, iz časopisa PC kada je objavljen ovaj projekat:
Spakovali smo četiri instrumenta u malo kućište: logičku sondu,
jednokanalni analizator, analizator protokola za serijski kod i
frekvencmetar. Ugrađen je i sklop za optimalno održavanje Ni-Cd
baterija. I sve to sa samo jednim čipom!
I pored očigledne jednostavnosti, ovakav instrument može da zadovolji
većinu zahteva koje postavlja laboratorija za razvoj i servis digitalnih uređaja.
Sve nabrojane funkcije su smeštene u jedan mikrokontroler, pa su neke
performanse neizbežno morale da budu redukovane kako bi se postigao dobar
kompromis između jednostavnosti i „snage” instrumenta. Ipak, usuđujemo se
da kažemo da je u ovom slučaju taj odnos iznenađujuće dobar.
Logička sonda
Primenjena je uobičajena varijanta sa tri svetleće diode: L (Low), H
(High) i P (Pulse). Mada je ovo najjednostavnija funkcija instrumenta, potrebno
je najviše prostora za njen opis, jer je mikrokontroler ovde upotrebljen na
zaista netipičan način.
Hardversko rešenje bi bilo veoma jednostavno: invertor dovodi signal na
prvu diodu koja detektuje nivo (L ili H, u zavisnosti od toga da li se napajaju
anode ili katode dioda), pa sledeći invertor na drugu diodu. Da bi kratki impulsi
bili vidljivi, signal se vodi i na monostabilni multivibrator koji „produžava”
impuls na nekoliko stotina milisekundi, tako da se bljesak svetle će diode P lako
vidi.
Želeći da pojednostavimo hardver, izbacili smo bafere i monostabil i
zamenili ih softverom mikrokontrolera. Ovde bi rešenje „na prvu ruku” bilo da
mikrokontroler skenira ulaz i, u zavisnosti od očitanog stanja, pali ili gasi LEDove,
a da poseban „slobodnotrčeći” brojač zadržava LED P upaljen neko vreme
posle promene. Naizgled je ovo rešenje u redu, ali su moguća dva nepovoljna
slučaja: prvi je da signal koji želimo da očitamo menja stanje sa učestanošću
koja je bliska ili je derivat učestanosti testiranja ulaza, pa bismo na LED-ovima
dobili stabilno (pogrešno) stanje ili neku nisku (opet pogrešnu) učestanost
promene, kao rezultat interferencije ove dve učestanosti. Drugi slučaj je
podjednako neprijatan – postoji mogućnost da se kratak impuls „provuče”
neprimećen između dva testa ulaza (što može da potraje čak nekoliko
mikrosekundi), pa da se nikako ne detektuje.
Prvi problem je rešen na jednostavan način – softverski je učestanost
očitavanja namerno učinjena promenljivom i nestabilnom, pa je tako moguć
opseg u kome se javlja interferencija proširen, ali je i rezultat te interferencije
jedva primetno treperenje diode, u vremenu od samo nekoliko milisekundi, dok
traje ta koincidencija signala (učestanost jednog od njih se stalno menja). Ovo
treperenje je definitivno izbegnuto softverskim debaunserom, koji signal čini
nešto „tromijim”, ali daleko ispod granice percepcije.
Drugi problem nije mogao da se reši primenom softverskih trikova, pa je
trebalo iz osnova izmeniti pristup. Rešenje je pronađeno u korišćenju internog
brojača TMR0, jer je na njegov ulaz direktno doveden signal sa RA4, bez
registara koji bi usporili propagaciju. Tako softver može da resetuje ovaj brojač
i da prati kad mu je stanje promenjeno. Ulazni impulsi od 10 ns mogu da
uzrokuju uvećanje stanja brojača, pa je tako vreme reagovanja sonde čak
bolje nego kod standardnih hardverskih rešenja.
Softver još na jedan način učestvuje u prikazivanju logičkog stanja –
izlaz RB2 dovodi na ulaz sonde povorku impulsa preko otpronika R9 (220K),
tako da softver može da detektuje da li je vrh sonde priključen na definisan
logički signal, koji u svakom slučaju ima impedansu nižu od 220 K. Ako nije,
gase se sve diode, što kod „niskobudžetnih” sondi nije slučaj, jer kod njih
ulazni pull-up otpornik obično drži diodu H stalno upaljenom. Ovaj primenjeni
trik olakšava percepciju i u velikoj meri štedi baterije.
Otpornici R7 i R8, u sprezi sa inverzno polarisanim diodama koje su već
ugrađene u svaki CMOS čip, omogućavaju da se ulaz sonde priključi na napone
koji su znatno izvan standardnog TTL opsega. Ova performansa nije testirana,
ali se može očekivati da sonda podnese napon od stotinak ili više volti. U
svakom slučaju, signali na portu RS232C se mogu bez ikakve bojazni pratiti,
što smo često i radili.
Analizator
Kad se startuje analizator, on je spreman za početak ciklusa
semplovanja, ali ono neće započeti dok se na ulazu ne pojavi definisana
(rastuća ili opadajuća) ivica signala. Posle toga, obavi se 240 očitavanja stanja
ulaza sa vrha sonde i rezultati se upisuju u interni RAM. U prvom redu LCD-a
se prikazuju talasni oblici u četiri koraka (na komandu sa tastature) po 60
semplova.
Učestanost semplovanja je uniformna, jer se generiše interno. Izbor ove
učestanosti se vrši tasterom, a postoji 16 mogućnosti, od 200 Hz do 1 MHz.
Učestanosti iznad 1 MHz nažalost nisu moguće, dok se na tržištu ne pojavi brži
mikrokontroler. I ova brzina je skupo plaćena, kako prostorom u vrlo skučenoj
programskoj memoriji (svega 1 KB), pošto zaseban (prilično opširan)
podprogram sempluje ulaze samo pri ovoj brzini, tako i hardverski – ulaz RA0
služi samo za analizator, jer da bi se samo jednim rotiranjem u registru jedan
bit prepisao u fleg C (odakle će biti dalje rotiran u bafer), on mora da bude na
„ivici” registra. Osim toga, da bi instrukcija RRC PORTA, 1 bila nedestruktivna
(upis u W nije dolazio u obzir zbog vrlo specifične strukture ovog
potprograma), svi bitovi na portu A su morali da budu ulazni. I sve zbog jedne
stvari – da bi se jedno semplovanje (koje se sastoji od čitanja stanja na ulazu i
upisa u bafer) obavilo za tačno 2.5 taktova (u stvarnosti je to naizmenično
smenjivanje 2, 3 i 4 takta) i da bi se realizovao ciklus koji uvećava ciljni
registar (bafer) posle svakih 8 semplova, pa još da se omogući i izlaz iz ciklusa
posle 240 semplova... i sve to sa nenarušenim tajmingom.
Još jedno ograničenje softverski generisane funkcije analizatora jeste
zadrška nepredvidivog trajanja između ivice signala koja startuje analizator i
početka semplovanja. Ova zadrška može da iznosi između 0 i 3 mikrosekunde,
što kod najbržeg takta (1 MHz) čini isto toliko izgubljenih semplova. Kod
sledeće brzine (500 KHz) ona je dvaput manja (ispod 2 sempla), a na nižim
brzinama je zanemarljiva. Najveći deo krivice za ovu zadršku leži u testu
tastera dok traje čekanje na okidni impuls, kako bi bio moguć izlazak iz
„Ready” stanja tasterom; u protivnom bi postojala opasnost „zaglavljivanja”
softvera ako taj impuls ne dođe.
Upotrebljen je displej koji je isključivo alfanumerički, tako da ne postoji
mogućnost adresiranja na nivou piksela. Za prikazivanje talasnih oblika bila je
neophodna grafika, pa je primenjena mogućnost softverskog redefinisanja
karakter seta za 8 znakova. Tako su svi mogući talasni oblici za tri uzastopna
sempla (koliko fizički staje na mesto jednog znaka na displeju) ušli u karakter
set, pa se prilikom iscrtavanja upisuju kao karakteri.
Analizator protokola i frekvencmetar
Možda je naziv „analizator protokola” dat previše ambiciozno, jer se radi
samo o prijemniku serijskih signala i pokazivanju primljenih bajtova u
heksadecimalnom i ASCII kodu na displeju. Moguće je primiti do 42 bajta i
pokazati ih u šest koraka po sedam bajtova (priloženi modelirani crtež
instrumenta prikazuje ovaj slučaj, gde je pri brzini od 115200 bauda primljena
ASCII sekvenca „PCPress”).
Brzina prijema se bira u osam koraka, u opsegu od 1200 do 115200 bps.
Moguć je prijem serijskih signala koji sadrže osam bitova (mada instrument
bez problema prihvata i sedmobitne reči), sa propisanim Start i Stop bitovima,
bez bita parnosti. Bez ikakvih problema je moguća direktna „krađa” signala
direktno sa konektora RS232C.
I kod frekvencmetra je iskorišćen interni brojač TMR0, čime je dobijena
granična učestanost od (za ovakav instrument) zavidnih 50 MHz. Ipak, pošto je
za ovakvu brzinu bilo neophodno uposliti i preskaler, a povećan stepen deljenja
automatski znači i gubitak rezolucije očitavanja instrumenta, napravljen je
izbor faktora deljenja preskalera u pet koraka, od faktora 0 (pri čemu se dobija
granična učestanost od 5 MHz, uz rezoluciju očitavanja od dve jedinice), do
faktora 16 (50 MHZ / rezolucija 32). Gubljenje na rezoluciji ovde nema velikog
praktičnog značaja, jer je klasa tačnosti kvarc-kristala takva da ni greška koju
oni unose nije ništa manja.
Merenje frekvencije i prikazivanje rezultata se obavlja na svakih 500
milisekundi. Dok radi frekvencmetar, svetleće diode L, H i P nemaju funkciju.
Napajanje instrumenta
Ugrađene su četiri male Ni-Cd baterije od po 1.2 / 180 mAh (manje su
od uobičajenih baterija od 480 mAh, kakve najčešće srećemo). Sklopu za
održavanje baterija je posvećena posebna pažnja – ako izuzmemo LCD, bar
polovina hardvera je samo u službi optomalnog tretiranja ovih baterija.
Punjenje se obavlja iz bilo kakvog spoljnog ispravljača, napona 12-30 V.
Grec na ulazu nam dozvoljava da koristimo bilo koji polaritet napona, a LED5
signalizira da je punjenje u toku. Tranzistor T3 radi kao izvor konstantne struje
– promenom vrednosti otpornika R20 treba ga podesiti tako da struja iznosi
oko 22 mA, jer će za napajanje instrumenta trebati oko 4 mA, tako da će za
punjenje baterija ostati željenih 18 mA. Cener dioda ZD2 sprečava da visoki
napon sa ispravljača dođe do mikrokontrolera i LCD-a kada baterije nisu na
mestu.
Kad se instrument pomoću tastera dovede u režim punjenja, startuje se
časovnik (čije se stanje stalno vidi na ekranu) koji posle 14 sati punjenja
automatski isključuje instrument (a time i punjenje). S obzirom na to da se
često dopunjavanje (a naročito prepunjavanje) Ni-Cd baterija štetno odražava
na njihov životni vek, najbolje je da ih pre punjenja ispraznimo. I ovaj
postupak je automatizovan – u režimu pražnjena se propušta struja od oko 95
mA kroz R21 i R22 (pri čemu se pali LED4). Sklop sa tranzistorom T4 i cener
diodom ZD1 radi kao naponski monitor; kada napon na bateriji padne ispod 4
V, na ulazu RA1 će se pojaviti visok logički nivo, pa će instrument preći u režim
punjenja i posle 14 sati se isključiti.
Uređaj se uključuje pritiskom na bilo koji taster. Moguće je ručno
isključivanje, ali je ono uglavnom izlišno – ako se nijedan taster ne pritiska 8
minuta, uređaj se automatski isključuje. Potrošnja (kad nijedan LED nije
upaljen) iznosi svega 4 mA, pa gubitak energije iz baterija za tih 8 minuta
iznosi ispod 0.3% ukupnog kapaciteta. Tranzistor T1 je glavni ON-OFF
prekidač.
Pre svake upotrebe instrumenta, kabl „masa” treba spojiti na masu merenog sklopa.
Zbog toga je najbolje da na njegovom kraju imamo „krokodil” štipaljku.
Autorsko pravo
Ovaj projekat je originalno autorsko delo, zaštićeno Zakonom o autorskom
pravu. Dozvoljena je slobodna izrada uređaja za lične potrebe, ali je za
njegovu serijsku proizvodnju ili komercijalizaciju neophodna saglasnost autora.
Voja Antonić
AlfaNet informatika d.o.o. ima dozvolu autora za komercijalnu
proizvodnju i prodaju ovog uređaja!
Kao što vidite, originalnom tekstu autora se nema šta dodati. Radi se o izuzetnom uređaju
koji je ušao i u Microchip-ovu dokumentaciju kao primjer upotrebe PIC mikrokontrolera, i
nalazi se na njihovom sajtu.
Mi smo se potrudili da riješimo i pitanje kutije, jer to može biti priličan problem za ovako neuobičajen oblik uređaja. Kutija se izrađuje od providnog, laserski sječenog, pleksiglasa. Zbog neobičnog oblika bočna stranica se mora savijati ručno, grijanjem isječene trake pleksija, a kutija se zatvara lijepljenjem i vijcima. Sve to nije idealno, ali mislimo da smo postigli jako dobar odnos kvalitet-cijena sa ovom kutijom, a i konačni izgled sonde je odličan!
Vojinu sondu možete nabaviti kao zavrsen i testiran sklop, potpuno spreman za upotrebu. Nakon nekog vremena korištenja ove sonde pitaćete se kako ste uopšte do sada mogli raditi bez nje, kao što se desilo svima koji je koriste. Usuđujemo se ustvrditi da u oblasti digitalne elektronike je teško naći korisniji instrument za ovako malo novca!
Kutije od pleksiglasa, koje smo nekada imali u ponudi više nemamo, tako da se sada sonda prodaje kao gotov i testiran sklop, sa baterijama, bez kutije. Naknadno smo uradili novu sertiju kutija, ali nisu ispale dovoljno precizne, mada se mogu iskoristiti, uz malo uloženog truda i turpijanja. Zbog toga kutiju sada dajemo gratis, iako je cijena sonde snižena sa početnih 90KM na sadašnjih 80KM.
Prodaja
|
|
VOS-PCB : Profesionalna štampana pločica za vojinu sondu
|
10 KM
|
VOS-PCB-PIC : Profi dvoslojna štampana pločica za sondu i programiran PIC
|
20 KM
|
VOS-GUR : "Vojina sonda" kao završen i testiran uređaj + gratis kutija od pleksija
|
80 KM
|
Narudžbe na mail:
narudzbe@elektronika.rs.ba
|
|