Sari la conținut
ELFORUM - Forumul electronistilor

Timp raspuns AtTiny2313


spinach

Postări Recomandate

  • Răspunsuri 29
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • spinach

    12

  • one

    8

  • Depanatoru

    4

  • Fulgerik

    3

Top autori în acest subiect

  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

Daca simplitatea este importanta, mai degraba as merge pe un circuit analogic, cu un comutator cu rezistente semireglabile si etalonarea acestuia.

Editat de one
Link spre comentariu

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

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 de Depanatoru
Link spre comentariu

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

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 de Depanatoru
Link spre comentariu

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

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

1.Semnalul este generat de un condensator care se incarca progresiv ; condensatorul este periodic descarcat de un transistor

Scuze, 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 de Fulgerik
Link spre comentariu

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 de one
Link spre comentariu

"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

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări