Idee lihtsa aga väga praktilise mõõteriista tegemiseks
#21
Siinust saab Sin(); funktsiooniga. Pmst kuskile mälu alasse genereerid lookup tabeli ja siis lased DMA-l seda timeri triggeri peale DAC väljundisse logistada.
, madalatel sagedustel mõttekas hoopis interruptis kohe välja arvutada.

(02-05-2010, 03:20 PM)tonuonu Kirjutas: Roheline nagu ma olen, uurin siinuse tegemise võimalusi. Esiteks jäi näppu selline dokk
http://www.ece.ucsb.edu/courses/ECE137/1...lators.pdf
Teiseks vaatasin oma jupivarusid ning avastasin, et suvalisi 8 jalaga DIP korpuses op võime on mul kõrvale pandud. Näiteks LM833 ja 574UD2.
http://www.national.com/ds/LM/LM833.pdf on datasheet, kus on Wein Bridge Oscillator näidete all samasugune, nagu esimesed dokis.

Antud ülesandes vist siinuse ideaalse täpsuse taga ajamine pole oluline, seega lihtsaim skeem peaks sobiv olema.
Vasta
#22
Siinustabeli puhul ei maksa unustada et vaja on ainult 0-90 kraadi, ülejäänud saab märgi muutmisega paika.

Kui kasutad floati, siis on polünoomid mõistlikumad, eriti eksponentfunktsioonide korral. Mingi kõhutunne ütleb vahel et võiks ju interpoleerida tabelit, aga see tulemus on "sakiline" ja vahel on polünoomide "sujuv" käitumine parem, olgugi et absoluutne täpsus võib veidi halvem tulla.

Ja tihtipeale tasub kohe FPUga DSP haarata, sest mitte mingi nipiga ei saa puhtalt integeridega kõiki arvutusi tehtud, float on põhimõtteliselt erinev andmetüüp (teatud mõttes on float logaritmiline, integer on lineaarne)

Ja veel lõpetuseks: kui kogu matemaatika paberile kirjutada, siis vana hea taandamine ja lihtsustamine võib teatud juhtudel tülikad tehted puu taha saata. Täpsuse analüüs tuletiste abil on kah vajalik - kui sul lõpptulemus on 128 pikslisel ekraanil, siis pole tarvis 32bitist täpsust.
Vasta
#23
Murphy vist juba nägi aga mul on R32C111 prosega (FPU!) plaat tegemisel. Ja sellisega siinust teha oskan küll. Aga mina nokerdan teemat õppimise pärast ning analoogtehnika on minu jaoks väga võõras. Eile panin LM833 peal skeemi kokku ning uurisin seda. Üks eelis MCU ees on siinuse pinge pluss-miinus 12V. MCU puhul tuleks sellise asja jaoks naguinii lisakivi panna MCUs asja tegemine hakkab mõtet kaotama. Ja mina sain elu esimese siinust tegeva skeemi tööle Smile.
Mind rohkem paneb muretsema see, et kas igasse skeemi tohib üldse sellist pinget sisse lasta. Datasheetides on silma jäänud, et max rating on tihti miinuse suunas 0,5V. Kuidas Fluke seadmel on voolu ja pinge piiramine lahendatud. Kuidagi valitav? Mis vahemikus?

EDIT: Eile siinusgeneraatorit ossiga uurides tuli mõte, et äkki mitte jamada OLEDi, ADC jms asjadega vaid suskaks kogu asja ossi X ja Y sisendite vahele? Oss on elektroonikul olemas ning kogu skeem olekski üks LM833.
Vasta
#24
Sisendi kaitseks on vaja dioode - üks vastu maad ja teine vastu toidet. Toide omakorda on kaitstud varistori ja suure kondekaga.
Sisendisse otse varistori või zenerit ei tohi panna - muudab karakteristiku mittelineaarseks ja täpsus kaob ära.
Korralik sisendahela skeem on tegelikult omaette teadus, kõige lihtsam on patuga pooleks natuke reverse-engineerida mõnda "well known" mõõteriista Smile
Vasta
#25
KaruTEC, sa ajasid mind nüüd segadusse. Et räägi, mis ikkagi vaja on. +-12V? mitu mA? Saad miski skeemi visandada nende dioodide ja asjade suhtes? Anna mõni link lugemiseks?
Vasta
#26
Nojh ma lihtsalt rääkisin täpsusest sest funktsioonina võiks veel mahtuvust ja induktiivust ka näidata + signaalikujusid. Ehk nagu
http://www.advancedevices.com/products_tw.htm
aga suti soodsamalt kui 4k tükk.
Dioodi mõõtmiseks piisab +-2V.
Mu veendumus et kõik analoog signaalid tuleb kähku digiks teha enne kui nendest jura saab. Hiljem siis vajadusel analoogiks tagasi kui kõik operatsioonid tetud. Digi signaal ei korja müra, lisaks kasvõi filtri väärtust saab ilma kolvita muuta.
Vasta
#27
Karuonu kirjeldatud kaitselülitus on väga paljudes kivides juba sees olemas: prosed, loogikakivid jne. Ehk siis dioodid on olemas, võiks veel kasutada voolu piiravat takistit sisendi ees.
Muide, sellise nipiga pandi PIC võrgusiinust lugema: 4,7M takisti kaudu otse võrku. Toite võtab ka sealt aga natuke keerukama lülituse kaudu.
http://www.microchip.com/stellent/idcplg...e=en012050
Vasta
#28
(04-05-2010, 08:03 AM)felch Kirjutas: Karuonu kirjeldatud kaitselülitus on väga paljudes kivides juba sees olemas: prosed, loogikakivid jne. Ehk siis dioodid on olemas, võiks veel kasutada voolu piiravat takistit sisendi ees.
Muide, sellise nipiga pandi PIC võrgusiinust lugema: 4,7M takisti kaudu otse võrku. Toite võtab ka sealt aga natuke keerukama lülituse kaudu.
http://www.microchip.com/stellent/idcplg...e=en012050

Kahjuks sa eksisid ja sulle peab määrama mingi karistuse, nt. surmanuhtlus.

Nimelt, kivide "sisendikaitsedioodid" on reeglina suht viletsad ja pool-parasiitdioodid, mis ei kannata voolu ega energiapiike. Vähegi tõsisema sisendi korral ei maksa nendega arvestada. Teatav analoog on MOSFETi sisemise dioodiga, mis on kah nagu diood aga tegelikult ei ole (v.a. MOSFETid, millele on spetsiaalselt korralik diood sisse ehitatud).
Voolu piirav takisti on .. nii ja naa. Suure takisti korral tekib RC filter ja ülemised sagedused on piiratud. Seega on vaja teha kompromiss sageduse, pinge ja kaitselülituse osas.
Ühesõnaga - tuleb paika panna sagedus, pingeamplituud, lubatud moonutused. Samuti sisendtakistus - mida väiksem, seda parem (on piiratud allika lubatud koormusega). Ja siis peab optimiseerima: sisendtakisti(voolupiiraja), ballasttakisti(koormustakisti), kaitsedioodid (toimivad kahjuks ka sisendmahtuvusena). Ei ole keeruline, kuid ei ole lihtne ka.
Tõnu-onu, ma soovitan skeemi üles joonistada ja läbi mõelda, see annab palju juurde ja kuna skeem on lihtne siis on lihtne ka analüüsida.
Vasta
#29
Minu skeemi hetkeseis on selline:
http://no.spam.ee/~tonu/riist.sch (Eagle 5.9.0) või http://no.spam.ee/~tonu/riist.pdf (Adobe Reader)
Võrreldes reaalse skeemiga ainukesed erinevused:
- Dioode mul pole. Püüan aru saada, et kuhu nad panna ja mille eest kaitsma?
- Hetkel on aukmontaaži jupid reaalselt maketiplaadis (poogen)
- DC-DC konverter on funktsionaalselt sama aga mõõdud on teised. Lihtsalt vedeleb neid mingi hulk.

Skeemis on 18k takistid ja 47n kondekad. 36k takisti peab olema 2xR väärtus. Need määravad siinuse sageduse valemiga
fOSC = 1/(2*pi*R*C)
fOSC = 1/(2*3,14*18e3*47e-9)
fOSC = 188Hz


Mõtted:
- Potekast annab siinuse kõrgust keerata. See jättagi sinna?
- Sageduse muutmine ilma vähemalt kahte kondekat või kolme takistit koos vahetamata pole võimalik?
- Probe1 on siis põhiline ots, mis torgatakse uuritavasse skeemi. Sõltuvalt otsa valikust saad siinust kas läbi nulli või alates nullist. Pinget keerad potekast.
- Probe2 otsa pealt pinget mõõtes saabki teada, palju voolu jookseb. Sinna ossi Y ots külge
- Probe3 oleks ossile X telje sisend. Pole iial seda kasutanud, ei tea mis ja kuidas.

EDIT: Väga hea dokk mikrokontrolleriga siinuse tegemise kohta http://focus.ti.com/lit/an/slaa116/slaa116.pdf
Vasta
#30
Asi nagu ei edene. Mul pole ka olnud aega edasi teha. Aga leidsin sellise projekti netist:
http://www.dos4ever.com/uscope/uscope_e.html
Huvitav mänguasi Smile
Tegelikult on mul plaan http://www.rickard.gunee.com/projects/vi...tetris.php veel kord kokku panna ja võimalikult miniatuurselt. Teha miski projekt just selleks, et uurida miski X ülesande võimalikult miniaturiseerimise teemat. Ma olen ülikoolis IT tudengitele antud projekti vahel näidiseks toonud, kui väheste ressurssidega tegelikult saab asjad aetud.
Vasta


Alamfoorumi hüpe:


Kasutaja, kes vaatavad seda teemat: 1 külali(st)ne