[ zoccy @ 04.05.2013. 19:10 ] @
Pozdrav svima. Da li je moguće pomoću PIC-a napraviti PC osciloskop skromnog budžeta za nas hobiste?Naišao sam uglavnom na projekte koji funkcionišu samo do frek. 10 kHz,te molim ako neko zna link za neki koji bi radio sa signalima do 100 ili 200 kHz da navede.Evo jedan dobar link za +- 16V 10 kHz preko PIC 18F2550 : [url=http://semifluid.com/2006/03/27/pic18f2550-usb-hid-oscilloscope/][/url]
[ bogdan.kecman @ 04.05.2013. 19:18 ] @
jeste moguce mada ti tu mikrokontroler ne radi nista pametno, ulazni stepen, memorija, triger to je ono sto je komplikovano... zavisi kakav signal hoces da gledas
[ zica49 @ 04.05.2013. 20:43 ] @
Ima nekoliko rjesenja osciloskop sa zvucnom kartom na PC-ju(bas za nekakve hoby namjene)...istrazi malo internet..
[ mikikg @ 04.05.2013. 20:44 ] @
Hmm, gde se tu spominje +/-16V ? Ja ne vidim nista oko toga na onim shemama. Direktni ulaz na PIC je limitiran na +5V tako da tu ispred fali jos neka elektronika ...

Opciono imas varijante sa zvucnim karticama, one mogu standardno meriti od 20Hz do 20kHz, a ako imas neke bolje zvucne kartice do 50kHz ili 100kHz (max sampling rate zvucne kartice podeljeno sa dva).

http://www.zeitnitz.de/Christian/scope_en
http://download.cnet.com/Zelscope/3000-2094_4-10782631.html
Ima dosta takvih programa sa sijaset funkcija.

Samo sa zvucnom karticom ne moze da se meri ispod 20Hz jer su one uglavnom AC coupled tj interno imaju sprezni kondenzator.
I tu vazi pravilo da treba nekakav "atenuator" tj razdelnik napona za vece naponske nivoe.
[ bogdan.kecman @ 04.05.2013. 21:13 ] @
nece se sa zvucnom nagledati 200KHz signala, sve i danadje zvucno koja moze 400KHz da sampluje (a ako to moze da priusti onda moze i da kupi 10MHz osciloskop za iste pare i da gleda te signale profi!!!) nece videti nista na 400KHz osim nekog sinusa i to ako je repetitivni signal ... tako da .. od toga nista ..

samplovanje direkt picom ne dolazi u obzir, da ides sa minimalno 3x vecim sample rate-om (a to nije dovoljno ni za sinus a kamoli ozbiljan signal) pricamo o 1M2 samplova u sekundi, prosto nemas dovoljno takta na picu da uradis bilo sta sa tim signalom

ono sto moze da se uradi je
- takt generator
- ADC
- memorija
- triger mehanizam

pic setuje triger mehanizam (neki mali fpga ili veci cpld ili neko analogno resenje) koje na trigger pali takt generator koji klokuje ADC i RAM tako da se iz ADC-a direkt sipa u ram, po zavrsetku sempla se data iz rama salje preko usb-a na pc, i tu pic samo treba da kontrolise proces (pic je suvise spor za usb ovde) tako sto ce tu da bude neki ft2232h na primer koji ce na 60mhz da salje datu direkt na pc, pic tu samo inicira i kontrolise ceo sistem, triger se oslobadja opet i krece sve ispocetka..

sa nekim paralelnim ramom moze da se napravi to da radi ok, ako treba malo veca dubina i brzina onda neki seriski ram pa se stavi 8 cipova paralelno (za svaki bit adc-a po jedan) ... na primer pogledati kako radi 4bit logic analyzer SHRIMP od DP-a ( http://dangerousprototypes.com/docs/Logic_Shrimp_logic_analyzer ) tu se vidi princip sa 4 seriska ram-a, slicno tome samo mora da se odradi analogni ulaz pred ADC, treba ADC, treba vise cipova (tesko da mu je 4 bita dovoljno), treba triggering sistem ...

sve u svemu, da, tu moze PIC da bude "pamet", ali ako si mislio da samplujes nesto sa picom, zaboravi, moze da se koristi kao spori analogni loger i to je to
[ zoccy @ 06.05.2013. 18:11 ] @
Zahvaljujem na linkovima.Što se tiče +/- 16V na ulazu PIC-a to je ipak na ovom linku [att_url]http://www.circuitvalley.com/2011/07/two-channel-pcbased-oscilloscope-usb.html .Bogdane,mnogo hvala na objašnjenju.To mi je polazna tačka za realizaciju za naredni period.Koji PIC bi mogao poslužiti kao minimum?
[ bogdan.kecman @ 08.05.2013. 13:13 ] @
kao sto rekoh, nema sta da ti bude "na ulazu PIC-a", ne treba pic da ti radi semplovanje, to treba da radi externi ADC, ako hoces da to ima bilo kakvog smisla moras da mu dodas i neki ozbiljan vref. Tu datu koju pokupi ADC tuces u neki RAM

dakle MCU (PIC, Atmel ...) sluzi samo da kontrolise proces, eventualno da radi neki trigering (mada je i za to spor) i to je to .. cak i da uzmes neki mcu sa dma koji ce da ti kopira direkt sa adc-a u ram, u mcu-u nemas dovoljno ram-a + nemas dovoljno instrukcija po data bloku da bi mogao da uradis ista sa tim signalom ...
[ bogdan.kecman @ 08.05.2013. 14:09 ] @
pogledaj na primer:

http://www.eosystems.ro/index.php/projects/eoscope




U6 (CPLD) dobija klok od 40MHz sa externog oscilatora, on klokuje ADC i RAM

nisam siguran kako su odradili trigerting ali verovatno kroz MCU. ATMEGA ti tu radi isto sto bi tebi PIC, dakle prati sta izlazi sa adc-a i kada mu se ucini da je trigger condition tu inicira pricu CPLD-u .. ne znam sta su oni radili u sw-u ali kapiram da je mcu svakako spor da bi uvatio triger kako treba tako da je zgodno da cpld tretira RAM kao ring buffer, kada mcu kaze "evo ga trigger" on zapamti 10% date pre trigera i vata do kraja i onda racuna da je to sample koji onda dalje mcu obradjuje ... druga varijanta koju su mozda odradili je prost trigger sa matchovanim levelom tako da mcu moze da stigne da odradi, doduse samo na sporijem sample rate-u, na 40MHz nema teorije da stigne to nijedan pic osim mozda 32mx ako ga poteras na 80mhz mada ni tada

ti naravno umesto da se drndas sa lcd-om, samo tu datu bacis na usb i pustis pc da se drnda :D
[ mikikg @ 08.05.2013. 15:01 ] @
Ove konstrukcije su poprilicno komplikovane a nisu bas ni jevtine. Delovi i nekako ali razvojni alati za MCU i CPLD-ove tek su prica za sebe.
Pa (minimum) dvoslojna stampa ... SMD alat ...

Ovo je za profesionalnce koji hoce da se igraju sa tim svarima.

Za hobiste se ipak isplati uzeti neki gotov (polovan ili nov) osciloskop i ne razmisljas nista. Najjednostavniji 10MHz analogni matori osiloskop ce zavrsiti posao samo tako! Napraviti ekvivalent tome u digitalnom domenu u kucnim uslovima je pravi podvig!
[ bogdan.kecman @ 08.05.2013. 15:26 ] @
pa da se isplati praviti - ne isplati se .. za 200$ kupis dso quad i bolji je od toga sto mozes da napravis ako pricamo o bateriski napajanim uredjajima sa lcd-om, nema teoprije da ga napravis za te pare.. ako pricamo o osciloskopu generalno za 100eur kupis 10MHz osciloskop bez velikih problema (evo ja prodao moj 50MHz 2225 koji je jedan od najboljih osciloskopa u toj kategoriji za 200eur pre neki dan) ... a ako uzmes alat
- pickit3 (min ti to treba za mcu za debagiranje) - 50eur
- neki krdza jtag tipa buspirate (min ti to treba za pecenje cpld-a) - 50eur

to je 100eur samo za to .. pritom ako hoces bilo sta ozbiljnije moras da das min 200eur samo za cpld alat ... ako ces to da kupujes samo da bi napravio osciloskop preskpo je, ako to vec imas onda i nije neka frka

dakle ako znas, projekat nije nesto kompleksan, ako ne znas projekat je suvise kompleksan za ucenje, a u oba slucaja se projekat ne isplati tako da ..
[ zica49 @ 08.05.2013. 16:50 ] @
Ako je u ime nauke nista nije skupo ali ako je bitan osciloskop koji "cak i radi" za nesto USD masa tih naprava koja se spaja na PC.
[ bogdan.kecman @ 08.05.2013. 17:00 ] @
za 100-200KHz vecina ovih sto tvrde da su 5-20MHz usb osciloskopa radi posao ... a toga ima vec od 50eur ..

na primer "Hantek PC Based USB Digital Storage Oscilloscope 6022BE 20Mhz Bandwidth" .. cesto pitanje oko tog uredjaja mi dolazi na pp i ovde i na par drugih mesta ... to go*no od osciloskopa ima 20MHz koliko i ja mogu da cujem tih 20MHz :D .. triger mu je smesan etc etc ... ali za 200kHz signal ce da radi 1/1 i to da pevas kako ce da radi sa 200kHz signalom .. a pricamo o spravi koja kosta 50eur, manje nego sto ce te izaci raw delovi da napravis sam neki usb scope..

a eno, stigo vam je paypal, preko eblay moze da se naruci sprava, ima je za 80$ sa free psotarinom .. dobijete i sonde .. sa carinom i pdv-om to izadje oko 100$ iliti 75eur - stigne na kucu upalis i koristis ..

naravno, za nauku, druga prica :), no kao sto rekoh, ovo nije projekat za ucenje, ako ne znas ovo da napravis neces ga nikad napraviti, neces ni svatiti da ga nisi napravio, sa druge strane ako znas - nema tu nesto da bude zanimljivo ..
[ goran_68 @ 08.05.2013. 20:09 ] @
Sve je to preveliko smaranje za vrlo sumnjiv krajnji efekat kad se može dobaviti za manje pare upotrebljiva stvar. Ipak me zanima šta eventualno iskoristiti kao softver za PC a da ne moraš da budeš neki preveliki poznavalac materije? Ima li nekog besplatnog alata ili već gotovog softvera koji bi dobijen podatak sa USB prikazao na monitoru i eventualno spustio par podešavanja na to parče hardvera koje bi imalo ulogu akvizicije podataka?
[ bogdan.kecman @ 08.05.2013. 20:12 ] @
ne. sw na pc-u moras da napises sam
[ mikikg @ 08.05.2013. 20:41 ] @
Pa paz te ovako, vec sam to spomenuo na nekom mestu cisto kao ideju za experimentisanje, RTL-SDR tj DVB-T tuner (mali USB stik cene <20$) za digitalnu televiziju u sebi ima jedan dvokanalni 8bit 3MBPS AD (RTL2832U chipset) koji moze potpuno RAW podatke sa svojeg AD konvertora da prosledi dalje ka PC za dalju obradu.

Da ne ulazim u tehnicke karakteristike tog IC i sta za njim moze/ne moze da se meri, poenta je da za to trenutno ima gomila gotovog Open Source software-a.

Kao prvo, driver koji ima skoro za sve operativne sisteme.

Drugo dosta zanimljiv stvar je program GNURadio koji je prakticno jedna mala platforma za razne experimente na tu temu. Dakle tu imate "kockice" tj gotove programske module za razne stvari koje bukvalno redjate na ekranu i medjusobno povezujete u cilju dobijanja nekog konkretnog lanca digitalne obrade signala (DSP) a sto na kraju moze da se prikaze bilo kao grafikon, neki statisticki dokument a najcesne kao "demodulisani zvuk".

Znaci moze i osciloskop da se "napravi" bez trunke programiranja! Moze i FFT (spektralni analizator) ako nekome to treba

U kombinaciji sa RTL-SDR moze u realnom vremenu da se obraduju i prikazuju podaci. Moze sve i kao simulacija (off-line). Imaju moduli i za razne generatore signala ovo-ono, prakticno sve "building block"-ove koji se srecu kod DSP ... Kome je i to nedovoljno, postoji API za pisanje custom modula u prakticno bilo kom jeziku.

Sve u svemu fantasticna platformica za experimente u toj AD / DSP tehnici.

http://sdr.osmocom.org/trac/wiki/rtl-sdr
http://gnuradio.org/redmine/projects/gnuradio/wiki




Dakle sa ovim na izlged vrlo primitivnim USB stikom moze svasta da se napravi. Posto ima relativno veliku brzinu uzorkovanja, ako bi se radio oversampling sa njim moze da se dobije solidna rezolucija za raznja merenja od DC do sta znam nekoliko 100-ak kHz. Sve sto treba je napraviti mali analogni front-end i prikljuciti se na ulaze od ovog RTL2832U i sve ostalo se onda svodi na "muckanje" po GNURadio

BTW: RTL2832U ima diferencialne ulaze u AD sto malkice komplikuje analogni front-end ali daje veoma fine mogucnosti da signal obradujemo i "dovucemo" do samog AD sa minimalnim problemima oko smetnji, shuma, PSRR i slicno sto moze kao krajni rezultat da proizvede vrlo preciznu spravu!

[Ovu poruku je menjao mikikg dana 08.05.2013. u 22:06 GMT+1]
[ bogdan.kecman @ 08.05.2013. 20:58 ] @
jedini problem bese da on ima ulaz od +-0.5V ili tako nesto bese pa treba napraviti ozbiljan low noise preamp (ili moze na +-1V ?) i da onda moras da odradis triggering na pc-u
[ goran_68 @ 08.05.2013. 21:18 ] @
Nije PIC al' evo nešto slično. Izgleda patetično. Može za vežbu :)

http://tomeko.net/miniscope_v2c/index.php?lang=en

" They connect to device using external dll. Libraries are available to connect with sound card, Microchip MCHPUSB Generic HID Demo and custom AT91SAM7S64 hardware. "
[ goran_68 @ 08.05.2013. 21:22 ] @
I nešto jeftino:

http://www.gabotronics.com/development-boards/xmega-xprotolab.htm

Osciloskop, digital analyzer, i waveform generator za 50USD


Evo još jedan sa dsPIC33. Sve je dostupno. Gerber fajlovi, šema, firmver, softver. Ne odgovara baš zahtevu koji je postavio postavljač teme u pogledu onih željenih 100 ili 200KHz. Koliko sam shvatio za jedan kanal max 32KHz.
http://www.x-io.co.uk/daq32/

[Ovu poruku je menjao goran_68 dana 08.05.2013. u 22:47 GMT+1]
[ mikikg @ 08.05.2013. 21:22 ] @
Pa mogu probati bas da vidim koliki mu je ulazni napon za full-scale ali nesto je malo u svakom slucaju. Verovatno ima clamp diode na ulazima za zastitu ... Evo izmericu pa cu postaviti posle update ...

A sto se tice pre-amp, to bar sad nije toliki problem, ima finih OP-ova, recimo THS4532 bi cucnuo samo tako.
Mozda je cak i zgodnije sto je mali napon za full-scale jer ne treba raditi neko veliko pojacanje, vise atenuaciju pa se to na kraju svodi na jos bolje karakteristike.

BTW: Oko trigera, evo bas gore na postavljenoj slicici za osciloskop se vidi da je funkcija trigera prakticno ugradjena u taj programski blok. To je najprostiji triger sa detekcijom nivoa i sinhronizaciju slike ali je poenta da je to ve vec na raspolaganju pa ne treba mnogo mozgati oko svega toga. Za neke sta znam komplikovanije trigere opet to moze da se "skocka" sa ostalim postojecim blokovima. Ma super su odradili ovaj GNURadio! Cak to ide dotle da taj "projekt" nekog DSP moze da se pokrene u non-GUI okruzenju tj samo sa run-time bibliotekama pa obzirom sto nema tezak GUI moze na RPi da se pokrene ili vec nekoj mini PC platformi.

[Ovu poruku je menjao mikikg dana 08.05.2013. u 22:45 GMT+1]
[ bogdan.kecman @ 08.05.2013. 22:00 ] @
sa 32bitnim mcuovima vec mnogo sta lepo moze da se uradi :) ... ima recimo za pic32mx lep projekat gde radi samplovanje na svim adc kanalima i tuce na usb ... ali ne bi to nazvao osciloskopom ...

sto se tice xprotolab ja sam ga koristio i ma koliko je bio "quirky" (doduse koristio sam ga kada je bukvalno tek izasao, siguran sam da su mu ispeglali sw mega do sada) to je ubedljivo najkorisnija sprava za nabosti na protobord koju sam ikad u zivotu koristio!!!
[ mikikg @ 08.05.2013. 22:32 ] @
Izmerio sam full-scale napon za RTL2832U, to je nesto u milivoltima, oko 5mVpp.

Dakle ne trebaju nikakvi predpojacivaci (ima interni low-noise) vec samo pasivni atenuatori ;)
[ bogdan.kecman @ 08.05.2013. 22:36 ] @
i pazi sad treba da uradis atenuator koji ce 0-10MHz signal da linearno spusti sa recimo +-5V na 0-5mV :D ... linearno i bez suma ... ja to ne umem, tj umem ali ce da kosta vise nego dobar osciloskop :D
[ goran_68 @ 08.05.2013. 22:40 ] @
Kad sam pitao za open softver imao sam u vidu sledeće: Da li je izvodljivo da recimo 2 kom tih pic32mx uzorkuju naizmenično isti kanal i to šibaju na PC preko USB hub-a? Time bi se usko grlo u pogledu akvizicije sa "sporim" PIC-om bar dvostruko ublažilo. Dakle, jedan meri kanal i dok se zeza sa USB, drugi pic meri isti kanal pa to opet na USB. Problem bi bila sinhronizcija mada može jedan da bude "master" u tom pogledu. Mislim i da je izvodljivo da PC softver ta praktično dva USB uređaja vidi kao jedan isti izvor podataka (valjda može da se nabudži nešto).
[ mikikg @ 08.05.2013. 22:44 ] @
Do nekih 10-ak MHz moze opusteno da se naprave atenuatori sa TH otpornicima, do 50MHz sa SMD, preko toga je vec frkica malo.
Kod ovog RTL pricamo o nekih 1MHz max ucestanosti ulaznog signala znaci nije frka uopste. A i ovaj differancialni ulaz se moze preskociti, spusti se jedan kraj na Vcc/2 i radis sve sa single-ended.

Mislim pricamo o "igracki osciloskopu" ... Moze da posluzi za neke proste namene cisto da imas "predstavu" sta se nesto tamo dogadja ...
[ bogdan.kecman @ 08.05.2013. 22:50 ] @
moze ali 2 pica + ulazni stepen + pcb ce da te kosta skuplje nego gotov osciloskop sa vecim sample rate-om i gotovim softwareom ..

inace ima jednostavnija fora, ako neces da ti uredjaj radi trigering vec ces ti na kompu to da radis, uzmes ADC, vezes ga na ram, stavis mali cpld da to roka na nekoj frekvenciji, stavis obican FT2232H high speed dual port usb cip, jedan port mu vezes fifo na cpld, drugi port mu vezes fifo na Q izlaz od ram-a, na cpld napravis klok generator da mozes da biras sample rate i to je to, ft2232H u kombinaciji koju sam rekao prenosi 8bitnu datu paralelno na pc kroz 30MHz takt ... ako bi isao sa jednim kanalom moze 60MHz .. tako da .. nemas problem tih 30MHz je mnogo brze nego sto ces ti da radis akviziciju tako da ti ne treba mcu uopste, adc, ram, neki jeftini cpld (ima ih za par dolara) i ft2232h .. samo ti ostaje da na pc-u napises sw koji ce da skuplja tu datu sa usb-a i vizualizuje je ...

ja sam pravio tako sa ft2232h logic analizator na 60MHz
[ goran_68 @ 08.05.2013. 23:07 ] @
Ulazni stepen i pcb ti ulaze u troškove u svakoj realizaciji. Poenta u mom slučaju je baš rešenje sa mcu. Neko bi nešto mogao da nauči i dobije na kraju spravu. Doduše, ništa posebno ali za male pare. Podrazumevam tu one koje zanimaju mikrokontroleri.
[ bogdan.kecman @ 08.05.2013. 23:25 ] @
atenuatori samo sa otpornicima, do 5mV ... to bi morao da koristis neke laserski trimovane 0.0001% otpornike od nekog low noise materijala .. izguglaj RES_NOISE.CIR za primer simulacije u spiceu o cemu pricam .. ako se dobro secam skole od pre 20 godina, sum koji normalan otpornik uvodi u kolo je sqrt(4kBRT) gde je k bolcmanova konsanta (1.4*10^-23) T je temperatura a B je bandwidth u hercima (izlaz je u Voltima) sto ce reci da ce jedan 100k (a moraces da koristis i jace od 100k) otpornik na 25C na 1MHz bw-a da ti u taj atenuator unese oko 6 mikrovolti iliti imas sum od preko pola posto ulaza na ADC samo sa jednim otpornikom, sa 2 otpornika vec imas sum preko 1% .. pazi - SUM, ne gresku .. a znamo i ti i ja da atenuator sa 2 otpornika neces uraditi :D mada i samo sa obicnim razdelnikom tebi je sum vec preko granica dozvoljenog ... a to je zalemljen otpornik, a ti da bi imao opsege trebaju ti neki prekidaci .. svestan tek koliko to unosi suma .. da ne pricam o ofsetima zbog kontakata razlicitih materijala i razlicitih temperatura ploce .... kada ti je ulaz 5mV tebi 1mV suma predstavlja 25% ulaznog opsega ... atenuacija u tom slucaju nije uopste "lakocemo to sa otpornicima" cak i na tako malom bw-u kao sto je 1MHz