Osciloscop USB DIY: diagramă de circuit, recenzii. Cel mai simplu osciloscop de la un computer Osciloscop portabil pe un microcontroler

Deoarece ADC-ul integrat în microcontroler este destul de lent, s-a decis să se utilizeze un ADC extern AD9280 de mare viteză. WG12864A (128*64) este folosit ca afișaj. Firmware-ul este scris în C folosind compilatorul MikroC pro pentru AVR 5.60.

Caracteristicile osciloscopului:

Impedanță de intrare 100 kOhm;

Frecvența maximă de eșantionare 9 MHz;

Frecventa minima 25 Hz;

Frecventa maxima 500 kHz;

Tensiune minima +/- 0,25 V;

Tensiune maxima +/- 25 V;

Tensiune de alimentare 9 V;

În partea dreaptă a ecranului, sunt afișate valoarea tensiunii de amplitudine, valoarea tensiunii rms, frecvența în kHz, tipul de sincronizare și divizorul. ATMEGA32 funcționează la o frecvență crescută de 26,601712 MHz. Cuarț care cade l cu un dandy. Pentru o funcționare stabilă, ATMEGA32 este alimentat de o tensiune crescută de 5,4 V. În acest scop, un stabilizator este plasat în borna negativă. iar 7805 este lipit 2 diode Schottky cu o cădere de 0,2 V fiecare Dacă ATMEGA32 nu va fi lucrează stabil pe 26.601712 MHz, puteți instala quartz la 20 MHz sau instalați un oscilator extern la 32 MHz. La alte frecvențe decât 26,601712 MHz, trebuie să modificați frecvența în setările proiectului și să selectați alte constante pentru calcularea frecvenței. Stabilizatorul 7805 trebuie amplasat pe radiator. Folosit ca conector de intrare h sunet 3,5 mm. Cipul ICL7660 face negativ tensiune -5,4 V, care este necesară pentru alimentarea amplificatorului operațional și pentru mutarea semnalului alternativ în domeniul pozitiv. Am folosit LM358 ca amplificator operațional, l-a alimentat cu o tensiune de 6,5 V de la dioda zener a . LM358 extrem de distorsionant nu semnal la frecvențe peste 20 La Hz Impulsurile dreptunghiulare la frecvențe înalte pot fi văzute în fotografie.

Amplificatorul operațional trebuie utilizat cu o frecvență de 10 MHz. Poate că lm833 va face. Dacă amplificatorul operațional este șin-to-rail, atunci îl puteți alimenta de la 5,4 V. De exemplu, MCP6H92.

Gamele sunt comutate printr-un comutator cu trei poziții - 1:1 (25 V); 1:4 (10 V); 1:10 (2,5 V).

Există 5 taste folosite pentru a controla osciloscopul. Tastele sus/jos sunt folosite pentru a seta amplitudinea. Tastele stânga/dreapta sunt concepute pentru a schimba frecvența vibrațiilor O rock ADC. Tasta centrală este folosită pentru a intra în meniu.În primul paragraf selectați tipul de afișare a oscilogramei: prin puncte sau pe linii. În al doilea paragraf, divizorul este setat în funcție de comutatorul intervalului de tensiune. Este necesar pentru afișarea corectă a tensiunii. În al treilea paragraf, selectați tipul de sincronizare: din câte pot , de-a lungul declinului frontului, trece prin zero.

Pentru a configura osciloscopul, trebuie să setați contrastul dorit de afișare cu un rezistor variabil și să setați linia la zero (fără semnal de intrare), după ce a crescut anterior amplitudinea cadrului. Fotografia prezintă un osciloscop cu cabluri vechi.

Versiunea actualizată a schemei și a semnului V2

Schema și sigiliile actualizării V3

Mai jos este un proiect al unui osciloscop USB pe care îl puteți asambla cu propriile mâini. Capacitățile osciloscopului USB sunt minime, dar pentru multe sarcini de radio amatori se va descurca bine. De asemenea, circuitul acestui osciloscop USB poate fi folosit ca bază pentru construirea unor circuite mai serioase. Circuitul se bazează pe un microcontroler Atmel Tiny45.

Osciloscopul are două intrări analogice și este alimentat de o interfață USB. O intrare este activată printr-un potențiometru, care vă permite să reduceți nivelul semnalului de intrare.

Software-ul pentru microcontrolerul tiny45 este scris în C și compilat folosind V-USB dezvoltat de Obdev, care implementează dispozitive HID pe partea microcontrolerului.
Circuitul nu folosește cuarț extern, dar folosește frecvența USB de 16,5 MHz în software. Desigur, nu ar trebui să vă așteptați la o eșantionare de 1Gs/s din această schemă.

Osciloscopul funcționează prin USB prin modul HID, care nu necesită instalarea unor drivere speciale. Software-ul Windows este scris folosind .NET C#. Folosind codul sursă al programului meu ca bază, puteți extinde software-ul după cum aveți nevoie.

Schema circuitului unui osciloscop USB este foarte simplă!

Lista radioelementelor folosite:
1 LED (oricare)
1 rezistor LED, de la 220 la 470 ohmi
2 x rezistențe de 68 ohmi pentru linii USB D+ și D
1 x rezistor de 1,5K pentru detectarea dispozitivului USB
2 diode Zener de 3,6 V pentru egalizarea nivelului USB
2 condensatoare 100nF și 47uF
2 condensatoare de filtru pe intrări analogice (de la 10nF la 470nF), este posibil fără ele
1 sau 2 potențiometre pe intrările analogice, pentru a reduce nivelul tensiunii de intrare (dacă este necesar)
1 port USB
1 microcontroler Atmel Tiny45-20.

Lista radioelementelor

Desemnare Tip Denumire Cantitate NotaMagazinBlocnotesul meu
MK AVR pe 8 biți

ATtiny45

1 La blocnotes
D1, D2 Dioda Zener

BZX84C3V6

2 3,6 V La blocnotes
C1, C3, C4 Condensator100 nF3 La blocnotes
C2 Condensator electrolitic47 uF1 La blocnotes
R1, R5 Rezistor

68 ohmi

2 La blocnotes
R2 Rezistor

330 ohmi

1 La blocnotes
R3 Rezistor

2,2 kOhmi

1 La blocnotes
OALĂ Rezistor trimmer 1 La blocnotes
P1 Conector 1 La blocnotes
X2 conector USB 1 La blocnotes
LED LEDOrice1

Înainte de a începe descrierea Osciloscop USB DIY pe ATtiny45, trebuie remarcat faptul că designul folosește numai convertorul ADC integrat al microcontrolerului ATmega45 cu o rezoluție de 10 biți, iar datele sunt transferate către computer prin implementarea software-ului V-USB folosind drivere USB HID, totalul viteza de transfer de date este foarte limitată.

Mostre reale pe ambele canale până la zece mostre pe secundă. Astfel, este un osciloscop digital cu două canale de viteză redusă pe un microcontroler.

V-USB este o implementare pur software a protocolului USB de viteză redusă pentru procesoarele din seria Atmel AVR. Datorită acestor biblioteci, puteți utiliza USB cu aproape orice microcontroler cu restricții minore, fără a fi nevoie de echipamente speciale suplimentare. Toate bibliotecile V-USB sunt distribuite sub licența GNU GPL v.2.

Cele două intrări analogice sunt capabile să măsoare tensiuni de la 0 la +5 V. O gamă largă de tensiuni poate fi realizată prin adăugarea unui amplificator cu câștig variabil cu impedanță mare de intrare (sau divizor rezistiv de intrare), sau cel puțin folosind un rezistor variabil convențional.

Toate lucrările principale sunt efectuate de microcontrolerul ATtiny45 programat. Funcționează de la un generator de ceas intern cu un prescaler cu o frecvență de 16,5 MHz. Pentru comunicarea printr-o interfață USB de mare viteză, această frecvență este necesară, totuși, aceasta duce la o limitare a tensiunii minime de alimentare, care trebuie să fie mai mare de 4,5 V și, desigur, mai mică de 5,5 V.

Dar, deoarece pinii de date ai portului USB folosesc un nivel de tensiune de la 0 la +3,3 V, este necesar să se utilizeze rezistențe de limitare R2, R3 și diode zener D2, D3. Această soluție, desigur, nu poate fi recomandată pentru un produs comercial, dar este suficient să vă familiarizați cu problemele USB și să obțineți un design simplu pentru uz casnic.

Canalele de intrare CH1 și CH2 pe J2 sunt blocate de condensatoarele de 100n C2 și C3 conform specificației interne ADC necesare. LED-ul D1 servește doar pentru a indica funcționarea și, prin urmare, poate fi omis.

Lista componentelor:

  • R1 - 270R
  • R2, R3 - 68R
  • R4 - 2k2
  • C1, C2, C3 - 100n
  • D1 – LED 3mm
  • D2, D3 - ZD (3,6 volți)
  • IO1 - Attiny45-20PU
  • J1 - USB B 90

Software:

Fișierul HEX compilat este disponibil pentru descărcare la sfârșitul articolului, precum și codul sursă în C. Instalarea configurației este limitată la alegerea utilizării multiplicatorului oscilatorului PLL intern.

Deoarece aplicația folosește drivere HID (Human Interface Device), care sunt disponibile în aproape fiecare sistem de operare, nu este nevoie să instalați drivere suplimentare.

Pentru a obține o afișare grafică a datelor măsurate, utilizați software-ul disponibil pentru descărcare la sfârșitul articolului. Software-ul nu necesită configurare și, odată lansat, va găsi automat dispozitivul conectat.

(descărcări: 1.273)

http://pandatron.cz/?1138&dvoukanalovy_usb_hid_osciloskop

O opțiune pentru un osciloscop cu două canale ieftin, sau mai degrabă foarte ieftin, pe un procesor STM32F103C8T6, va fi discutată în acest articol. Permiteți-mi să fac o rezervare imediat că acesta este un set-top box pentru computer care se conectează la portul USB al computerului. Iată câteva caracteristici ale osciloscopului STM32:

  • Rata de eșantionare (eșantionare) - 461 kSps
  • Tensiune de intrare - 6,6 V.
  • Impedanță de intrare - 20 kOhm.

După cum puteți vedea, osciloscopul are o rezistență de intrare non-standard, astfel încât sondele standard ale osciloscopului nu vor funcționa cu el, iar pentru a măsura tensiuni peste 6,6 V va trebui să faceți un divizor potrivit la exact 20 kOhm. O altă mică explicație despre rata de eșantionare. Mulți oameni cred în mod eronat că aceasta este lățimea de bandă. În realitate, nu este deloc așa. 461 kSps înseamnă că osciloscopul realizează 461 de mii de măsurători într-o secundă. Dacă aplicați un semnal la intrarea sa, de exemplu, 1 kHz (perioada T=1/F; T=1 milisecundă). Pe o perioadă de 1 milisecundă, osciloscopul va efectua 461000*0,001=461 măsurători. Vom spune că sunt 461 de puncte pe perioadă. Acest număr de puncte este mai mult decât suficient pentru a trage clar semnalul. Dar dacă aplicăm un semnal de 200 kHz la intrare, a cărui perioadă este de 5 microsecunde, atunci pentru această perioadă vom obține 2,3 puncte. Este imposibil să construiți un semnal din 2 puncte și să evaluați parametrii acestuia. Numărul minim necesar de puncte pe perioadă trebuie să fie de cel puțin 20. Prin urmare, frecvența maximă la care acest osciloscop poate examina semnalul va fi 461/20 = 23,5 kHz. Este destul de potrivit pentru gama audio. Si nu uitati ca acest aparat nu are izolare galvanica!!! Aveți grijă dacă reparați sursele de alimentare comutatoare!

Circuitul osciloscopului este prezentat mai jos. Puteți descărca schema de circuit originală, placa de circuit imprimat și firmware-ul la sfârșitul articolului.

După cum puteți vedea, circuitul este format dintr-un procesor și cablarea acestuia. Nu sunt multe de explicat aici. Permiteți-mi să spun doar că placa are doar o interfață UART pentru flash-ul firmware-ului procesorului. Recomand în continuare conectarea interfeței SWD și intermiterea prin ea folosind programatorul STLINK. Este mai ușor și mai rapid. Dar este posibil și pe placă folosind UART. Voi descrie pe scurt ambele variante. Pentru a flash firmware prin UART, vom avea nevoie de orice adaptor de la USB la UART, există o mulțime de ele la vânzare și nu sunt scumpe. Conectăm adaptorul la placă printr-o magistrală cu 3 fire RX, TX, GND. Apoi descărcați și instalați programul STM Flash Loader Demo. Am pus placa în modul Boot. Pentru a face acest lucru, apăsați și mențineți apăsat butonul Boot în timp ce apăsați butonul Reset. Apoi intrăm în program și efectuăm acțiuni pas cu pas: selectați numărul portului COM, așteptați o conexiune la placă, selectați fișierul firmware, așteptați sfârșitul procesului de firmware, închideți programul, opriți UART și scoateți alimentarea de pe placă. Acum o opțiune cu SWD. Conectăm programatorul prin 4 fire: POWER, SWCLK, SWDIO, GND. (În acest caz, alimentarea plăcii este furnizată de la programator). Descărcați și instalați programul STM32 ST-Link Utility. Când porniți programul, acesta va detecta controlerul în sine, tot ce trebuie să faceți este să selectați fișierul firmware și să începeți procesul de firmware.



Și încă o notă importantă. Înainte de a asambla dispozitivul, instalați carcasa osciloscopului STM32 pe computer. Asigurați-vă că programul începe efectiv. Au fost cazuri când programul pur și simplu nu a vrut să ruleze pe unele PC-uri și laptop-uri. Cu ce ​​este legat acest lucru nu este clar.

În zilele noastre, există destul de multă utilizare a diferitelor dispozitive de măsurare bazate pe interacțiunea cu un computer personal. Un avantaj semnificativ al utilizării lor este capacitatea de a stoca valorile obținute într-un volum suficient de mare în memoria dispozitivului, cu analiza lor ulterioară.

USB digital osciloscop de la calculator, pe care o descriem în acest articol, este una dintre opțiunile pentru astfel de instrumente de măsurare pentru radioamatori. Poate fi folosit ca osciloscop și dispozitiv pentru înregistrarea semnalelor electrice în memoria RAM și hard disk-ul unui computer.

Circuitul nu este complicat și conține un minim de componente, rezultând un dispozitiv foarte compact.

Principalele caracteristici ale osciloscopului USB:

  • ADC: 12 biți.
  • Baza de timp (osciloscop): 3…10 ms/diviziune.
  • Scala de timp (recorder): 1…50 sec/probă.
  • Sensibilitate (fără divizor): 0,3 Volți/diviziune.
  • Sincronizare: externă, internă.
  • Înregistrarea datelor (format): ASCII, text.
  • Rezistență maximă de intrare: 1 MΩ în paralel cu o capacitate de 30 pF.

Descrierea funcționării unui osciloscop de la un computer

Pentru a face schimb de date între un osciloscop USB și un computer personal, se utilizează interfața Universal Serial Bus (USB). Această interfață funcționează pe baza microcircuitului FT232BM (DD2) de la Future Technology Devices. Este un convertor de interfață. Cipul FT232BM poate funcționa atât în ​​modul de control direct al biților BitBang (când se utilizează driverul D2XX), cât și în modul portului COM virtual (când se utilizează driverul VCP).

Circuitul integrat AD7495 (DD3) de la Analog Devices este utilizat ca ADC. Nu este altceva decât un convertor A/D pe 12 biți cu o referință internă de tensiune și o interfață serială.

Cipul AD7495 conține, de asemenea, un sintetizator de frecvență care determină viteza cu care vor fi schimbate informații între FT232BM și AD7495. Pentru a crea protocolul de comunicare necesar, software-ul USB al osciloscopului populează tamponul de ieșire USB cu valori individuale de biți pentru semnalele SCLK și CS, așa cum se arată în următoarea figură:

Măsurarea unui ciclu este determinată de o serie de nouă sute șaizeci de transformări succesive. Cipul FT232BM, cu o frecvență determinată de sintetizatorul de frecvență încorporat, trimite semnale electrice SCLK și CS, în paralel cu transmiterea datelor de conversie pe linia SDATA. Prima perioadă de conversie completă a ADC FT232BM, care stabilește frecvența de eșantionare, corespunde duratei perioadei de trimitere a 34 de octeți de date emise de cipul DD2 (16 biți de date + impuls de linie CS). Deoarece viteza de transfer de date a FT232BM este determinată de frecvența sintetizatorului de frecvență intern, pentru a modifica valorile de baleiaj, trebuie doar să modificați valorile sintetizatorului de frecvență al chipului FT232BM.

Datele primite de computerul personal, după o anumită prelucrare (schimbarea scalei, ajustarea la zero) sunt afișate pe ecranul monitorului în formă grafică.

Semnalul studiat este furnizat conectorului XS2. Amplificatorul operațional OP747 este proiectat pentru a potrivi semnalele de intrare cu restul circuitelor USB ale osciloscopului.

Pe modulele DA1.2 și DA1.3, este construit un circuit pentru a muta semnalul de intrare bipolar în zona de tensiune pozitivă. Deoarece tensiunea de referință internă a cipului DD3 are o tensiune de 2,5 volți, fără a utiliza divizoare, acoperirea tensiunii de intrare este -1,25..+1,25 V.

Pentru a putea studia semnale cu polaritate negativă, cu alimentare practic unipolară de la conectorul USB (a), se folosește un convertor de tensiune DD1, care generează o tensiune de polaritate negativă pentru alimentarea amplificatorului operațional OP747. Pentru a proteja partea analogică a osciloscopului de interferențe, sunt utilizate componentele R5, L1, L2, C3, C7-C11.

Programul uScpoe este conceput pentru a afișa informații pe ecranul unui monitor de computer. Folosind acest program, devine posibilă evaluarea vizuală a mărimii semnalului studiat, precum și a formei acestuia sub forma unei oscilograme.

Butoanele ms/div sunt folosite pentru a controla maturarea osciloscopului. În program, puteți salva oscilograma și datele într-un fișier folosind elementele de meniu corespunzătoare. Pentru a porni și opri virtual osciloscopul, utilizați butoanele Pornire/Oprire. Când deconectați circuitul osciloscopului de la computer, programul uScpoe este comutat automat în modul OFF.

În modul de înregistrare a semnalului electric (recorder), programul creează un fișier text, al cărui nume poate fi specificat în următoarea cale: Fișier->Fișier de date Alegere. fișierul data.txt este generat inițial. Fișierele pot fi apoi importate în alte aplicații (Excel, MathCAD) pentru procesare ulterioară.

(3,0 Mb, descărcat: 5.653)