ratza Postat August 5, 2014 Partajează Postat August 5, 2014 Depinde mult de cum optimizează compilatorul. Pentru chestii critice ca timp poţi adăuga asm direct în C. Link spre comentariu
Liviu M Postat August 5, 2014 Partajează Postat August 5, 2014 Daca esti mai bun la asm decat compilatorul. Link spre comentariu
Fulgerik Postat August 5, 2014 Partajează Postat August 5, 2014 saluatm, Vrau sa construesc o baza de timp pentru osciloscop , folosint un attiny2313 , astfel: -utilizez cristal de 20Mhz -fabric impulsurile cu fast pwm , cu contorul de 16 biti -primesc cererea de sincronizare pe o intrare Intrebarea ar fi : cit timp [cti cicli de ceas] se scurge de cind soseste cererea de sincronizare pina ce apare impulsul la esire pwm. mecanicmul functional ar fi asa: -soseste cererea de sincronizare , adica o intrare care isi schimba starea -citim intrarea -resetam contor folosit pentru pwm -apare pe esire impulsul pwm Frecventele maxime pe care le poti genera cu PWMul in cazul in care doresti precizie nu va depasi cativa kHz. Cea mai buna solutie este sa folosesti microcontrolerul pentru sincronizare si pentru a stabili baza de timp, dar generatorul de semnal pentru baza de timp trebuie sa fie clasicul generator de rampa liniara cu sursa de curent constant. Curentul constant poate fi stabilit prin folosirea unei iesiri PWM . Tot din microcontroler se poate comuta condensatorii folositi in generatorul de rampa liniara. Semnalul necesar pentru un osciloscop standard de 10MHz este cuprins intre 0.1 Hz si 5 MHz. Link spre comentariu
one Postat August 5, 2014 Partajează Postat August 5, 2014 (editat) Daca simplitatea este importanta, mai degraba as merge pe un circuit analogic, cu un comutator cu rezistente semireglabile si etalonarea acestuia. Editat August 5, 2014 de one Link spre comentariu
one Postat August 5, 2014 Partajează Postat August 5, 2014 Daca vrei neaparat sa faci cu microcontroller, cred ca ar trebui sa alegi altul mai rapid. Link spre comentariu
spinach Postat August 9, 2014 Autor Partajează Postat August 9, 2014 Daca vrei neaparat sa faci cu microcontroller, cred ca ar trebui sa alegi altul mai rapid. 1.Care mcu merge cu mai mult de 20 Mhz pe cristal ? 2.Pe perioada intreruperii , pwm mai functioneaza ? 3.Presupunind ca un pin este configurat ca esire de pwm [OC1a], starea pinului , se poate citi in program , sau este nevoie sa aduc semnalul pwm la o intrare , prin exterior ? Link spre comentariu
Depanatoru Postat August 9, 2014 Partajează Postat August 9, 2014 (editat) Cred ca mai multi ti-au spus ca un microcontroler obisnuit de 8 biti nu e destul de rapid pentru PWM de frecventa mare ... daca vrei o jucarie cu maxim 100KHz atunci ... osciloscop pentru audio se poate face dar ceva performant nu Editat August 9, 2014 de Depanatoru Link spre comentariu
spinach Postat August 9, 2014 Autor Partajează Postat August 9, 2014 Deci: -discutam pentru cazul timerului de 16 bit -timerul are posibilitate de reglare/determinare frecventa pwm ; frecventa se stabileste din valoarea OCR1A formula de calcul : pg 96 prospect . Fpwm=Fosc/(N*(1+top)) Fosc=20Mhz ; N=1 ; top=OCR1A=9 ; rezulta ca se poate obtine 2 Mhz ; Ce fac cu cei 2 mhz ? Pai pentru un osciloscop de 20Mhz , am nevoie pe orizontala de 0.2 us/diviziune ; pe orizontala sint 10 diviziuni , deci avem nevoie de 2 us ; corespunzator insemna ca este necesar o frecventa de 0.5 Mhz . Asta insemna ca trebuie sa setez la OCR1A =39 . Avem rezolutie mica , care va duce la un impuls de descarcare de 5.12% din total perioada , dar , cel putin teoretic ar trebui sa mearga. Link spre comentariu
Depanatoru Postat August 9, 2014 Partajează Postat August 9, 2014 (editat) Orice timer lucreaza pe tactul ceasului , 16bit inseamna ca numara pana la 65536 pentru o perioada PWM deci consuma 65536 perioade de ceas ... eu ti-am dat formula mai sus daca vrei sa intelegi , nici vorba sa se poata obtine 2MHz . Cat este 20MHz / 65536 ? Oricum pentru 20MHz trebuie cam 5MHz time base , altfel nu mai ai ce vedea pe ecran atat de inghesuit o sa fie semnalu Editat August 9, 2014 de Depanatoru Link spre comentariu
Fulgerik Postat August 9, 2014 Partajează Postat August 9, 2014 Pentru a genera semnalul de baza de timp, un semnal dinte xe fierastrau, trebuie ca semnalul sa fie compus din mai multe esantioane. In functie de precizia dorita alegi numarul de esantioane din care compui semnalul.Suplimentar semnalul trebuie filtrat. Nu poti obtine un semnal de baza de timp cu frecventa mai mare de cativa KHz. Link spre comentariu
spinach Postat August 9, 2014 Autor Partajează Postat August 9, 2014 1.Semnalul este generat de un condensator care se incarca progresiv ; condensatorul este periodic descarcat de un transistor ; transistorul este comandat de impulsuri furnizate de mcu . 2."Orice timer lucreaza pe tactul ceasului , 16bit inseamna ca numara pana la 65536 pentru o perioada PWM deci consuma 65536 perioade de ceas" in prospect , pg95 , capitol fast pwm , se specifica amanunte. Link spre comentariu
Fulgerik Postat August 10, 2014 Partajează Postat August 10, 2014 (editat) 1.Semnalul este generat de un condensator care se incarca progresiv ; condensatorul este periodic descarcat de un transistorScuze, sunt putin confuz. Pentru ce-ti trebuie PWM?Ce schema bloc ai in cap? Daca vrei ajutor, n-ar fi bine sa ne lamuresti si pe noi? Editat August 10, 2014 de Fulgerik Link spre comentariu
spinach Postat August 10, 2014 Autor Partajează Postat August 10, 2014 PWM furnizeaza impulsurile necesare pentru descarcarea condensatorului. Link spre comentariu
one Postat August 16, 2014 Partajează Postat August 16, 2014 (editat) 1.Care mcu merge cu mai mult de 20 Mhz pe cristal ? 2.Pe perioada intreruperii , pwm mai functioneaza ? 3.Presupunind ca un pin este configurat ca esire de pwm [OC1a], starea pinului , se poate citi in program , sau este nevoie sa aduc semnalul pwm la o intrare , prin exterior ? 1. Ar fi de exemplu AT90PWM81 (sau alt AT90PWM), care are un PLL pana la 64MHz pt. PWM - este un AVR. Eu nu am folosit pana acum asa ceva. Ai putea sa arunci o privire pe datasheet, o sa ma uit si eu dar nu stiu cand voi fi in stare sa iti dau un raspuns precis in legatura cu frecventele maxime. Apoi, sunt o serie de micro, derivate de 8051, dsPIC, sau ARM, care au frecvente mari. Mai sunt procesoare de la Renesas,Freescale, nu le insir pe toate, ARM face si Atmel. 2. Bineinteles. 3. Da, se poate citi. Editat August 16, 2014 de one Link spre comentariu
spinach Postat August 16, 2014 Autor Partajează Postat August 16, 2014 "Oricum pentru 20MHz trebuie cam 5MHz time base , altfel nu mai ai ce vedea pe ecran atat de inghesuit o sa fie semnalu" Sa explicam; 1.user avea dreptate principial ; ca sa vizualizam un semnal d 20 Mhz , daca vrem sa afisam o sinusoida , trebuie baleat cu 20 Mhz ; daca acceptam sa vizualizam la maxim , 2 sinusoide , trebuie sa baleiem cu 10 Mhz ; daca acceptam la maxim sa vizualizam 4 sinusoide , aplicam 5 Mhz .; si asa mai departe . Ideia userului , este ca nu putem coborii prea mult frecventa de baleere , deoarece daca sint multe sinusoide pe ecran , nu mai intelegem nimic . Totul este OK aici. 2.Daca ne uitam insa la datele tehnice ale osciloscoapelor analogice , de 20 mhz , vom observa ca la baza de timp valori exprimate un unitati de timp , mai precis cu un minim de 0.2-0.5 uS/div , in medie . Sa calculam ; -pe un rastru orizontal de 10 diviziuni , vom avea un total de 0.2*10=2 uS ; -transformam in frecventa 1/2 =0.5 Mhz ; acesta este frecventa maxima folosita la baza de timp. Atunci cum stam cu teoria de la punctul 1 ? Raspuns : prin o facilitate anexa ; astfel : -exista un reglaj fix , mobil , sau amindoua prin care se mareste amplitudinea semnalului de la baza de timp ; -adica se mareste amplificarea intre baza de timp si etajul final . -Ce va rezulta ? -va rezulta o linie mai lunga decit ecranul , ecran care va ramine constant ca dimensiune . -Acuma este adevarat ca se micsoreaza definitia prin acesta manevra , dar principial nu deranzeaza la ochi . Deci , prin acesta metoda , la clasamentul adevarului , raport frecventa semnal/frecventa baza timp =40 . pentru a fisa 4 sinusoide , avem nevoie de amplificare suplimentara de 10 ; 40/10=4 . Din datele exemplului de mai sus , majoritatea osciloscoapelor , au un buton de X10 , fix si unul de x2.5 variabil. Concluzie: daca mcu va furniza un pwm de 500khz , baza de timp va merge pentru 20 Mhz. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum