Mikrosha Postat Octombrie 3, 2010 Partajează Postat Octombrie 3, 2010 Vreau sa prezint un aparat usor de construit, dar destul de util intr-un laborator. De asemenea, poate fi bun ca proiect pentru scoala, teoretic sau practic. Ca amator, ori de cate ori aveam nevoie de impulsuri, trebuia sa construiesc un multivibrator cu tranzistoare sau cu 555. Totusi in astfel de montaje factorul de umplere si frecventa sunt dependente si dificil de controlat separat. Asa ca am vrut sa construiesc un generator de impulsuri care sa indeplineasca urmatoarele: > Generare de semnal dreptunghiular compatibil TTL > Factor de umplere ("duty cycle") reglabil, cu precizie buna, in procente > Perioada semnalului de la iesire sa se regleze pe o plaja foarte larga. Perioada maxima am vrut sa fie de ordinul minutelor, iar perioada minima, cel putin 10uS. > Posibilitate de trigger extern (functionare ca monostabil) > Compact si usor > Realizabil din componente vechi si usor de gasit. (n-am cumparat nici o piesa noua pentru el) Partea care da perioada semnalului de la iesire este oscilatorul. Pentru a fi cat mai simplu, si din cauza ca oricum aveam nevoie de niste inversoare in schema, am ales un oscilator foarte simplu cu un inversor Schmitt-Trigger, o rezistenta si un condensator: . Pentru a permite reglajul, am pus un comutator rotativ care selecteaza unul din urmatoarele condensatoare: 1000uF; 100uF; 10uF; 1uF; 100nF; 10nF; 1nF; 100pF. Valorile fiind puteri ale lui 10, rezulta ca raportul dintre frecventele a 2 pozitii apropiate este de asemenea 10. Daca si rezistenta se pune variabila, astfel incat sa atinga valori de genul R...10R, atunci oscilatorul poate sa lucreze pe orice frecventa, pe toate decadele date de comutatorul rotativ. In loc de rezistenta, am pus un rezistor fix de 100 ohmi in serie cu un potentiometru de 1Kohm. Astfel am obtinut si o usoara intrepatrundere a gamelor. Cu aceasta configuratie am obtinut o banda de frecvente de oscilatie intre 0,3Hz si 15MHz, ceea ce duce la o perioada a semnalului de la iesirea aparatului de 100 de ori mai mare; intre 300s si 6uS. Pentru obtinerea unui factor de umplere variabil, am preferat o abordare digitala. Ideea de baza este urmatoarea: Un contor decadic numara de la 0 la 99; pana la o anumita valoare specificata de pe panoul frontal, iesirea este "1". Incepand de la acea valoare, iesirea devine "0". Compararea cu valoarea de referinta se poate face in mai multe moduri. Cel mai mic consum ar fi cu un comparator de egalitate, cu 8 porti XOR si o poarta NOR cu 8 intrari. Alta solutie ar fi cu un comparator pe 8 biti (cu doua 7485/К155СП1), care consuma mai mult, dar nu am acest integrat. Alta solutie ar fi cu un circuit de scadere realizand operatia: adder_result = bcd_counter - duty_cycle unde adder_result este rezultatul operatiei, duty_cycle este valoarea citita de pe panoul frontal, si bcd_counter este valoarea din numaratorul decadic. Cat timp nu are loc depasire(Carry / Overflow), inseamna ca bcd_counter<=duty_cycle, deci iesirea este "1". Dupa ce bcd_counter devine mai mare ca duty_cycle, iesirea devine "0". Stim ca diferenta se poate face de fapt prin adunare cu complementul fata de 2 al scazatorului. Complementul fata de 2 se obtine negand bit cu bit, si adunand 1: adder_result = bcd_counter + ~duty_cycle + 1 PRACTIC, ca sumator am folosit un CDB483 (7483), care avantajeaza din mai multe puncte de vedere. In primul rand, negarea se face foarte usor, legand pinul comun al dispozitivului de intrare decadic de pe panoul frontal la "0" (adica GND) in loc de "1" (adica +5V). Din cauza ca o intrare TTL are tendinta naturala sa stea in "1", nu a mai fost nevoie de rezistoare de pull-up. In al doilea rand, termenul "+1" din relatia de mai sus se obtine usor legand intrarea de Carry In a primului sumator (LSB) la "1". (practic lasand-o in aer). La iesirea sumatorului am legat un bistabil. In lipsa acestuia, hazardul combinational rezultat in timpul comutarilor portilor din CLC-ul sumatorului, poate da oscilatii nedorite la iesire. Cu bistabilul conectat, iesirea este sincronizata cu ceasul intern, si aceasta problema nu mai apare. Trigger-ul extern se realizeaza atunci cand comutatorul este in pozitia 'deschis'. Astfel, numaratoarele decadice sunt tinute in 99 pana cand apare un impuls pe linia de trigger extern. Dupa aceea numaratoarele trec in 00, si numara pana cand ating valoarea data ca factor de umplere, timp in care semnalul de trigger extern este ignorat. Dupa palierul de '1', numaratorul este din nou tinut la 99 in asteptarea urmatorului impuls de trigger extern. Atunci cand comutatorul este in pozitia 'inchis', numaratoarele parcurg permanent 0...99, 0 etc. Pentru o intelegere mai buna mi s-a parut educativ sa descriu functional modulul echivalent in Verilog: module pulse_generator(input[3] rotary_encoder1, rotary_encoder2,input ext_trigger, ext_trig_e, clkoutput reg sq_out);reg[7] bcd_counter;wire[9] duty_cycle;wire set_counters9;wire[8] adder_result;assign duty_cycle = {rotary_encoder1, rotaty_encoder2} assign set_counters9 = (ext_trig_en & !sq_out & ext_trig_en);assign adder_result = bcd_counter - duty_cycle;always @(posedge clk or negedge set_counters9) beginsq_out<=adder_result[8]; if (!set_counters9) bcd_counter[7]<=8'd99;else if (bcd_counter[3]==4'd9) begin bcd_counter[3]<=4'h0; if (bcd_counter[7]==4'd9) bcd_counter[7]<=4'd0;else bcd_counter[7]<=bcd_counter[7]+1;endelsebcd_counter[3]<=bcd_counter[3]+1;endendmoduleAcuma, inlocuind liniile de cod cu integrate de pe vremea lui Brejnev, pe care le aveam la indemana, obtinem schema: Nu am facut cablaj, ca erau prea multe trasee intr-un spatiu prea mic, trebuia dublu strat, si n-am vrut sa ma complic. Sursa am luat-o dintr-un incarcator de Ericsson. Din fericire scotea deja 5V stabilizat si n-a fost nevoie s-o mai modific. Astfel, tot aparatul' a fost proiectat, construit si documentat intr-o singura zi. Aplicatiile sunt multe, eu l-am facut in primul rand ca sa observ de mai aproape comportarea surselor flyback/forward. (comportarea transformatoarelor, regim discontinuu, timpi de comutatie, etc; chestii care altfel se explica printr-o matematica teribila.) Se poate face mai compact si cu consum infim cu integrate CMOS din seria 4000, SMD. POZE: Panoul frontal; de la stanga la dreapta: Comutator pornit/oprit; selector game pentru frecventa; reglaj fin al frecventei; selectare factor de umplere (in procente); mufa RCA de iesire TTL si comutator selectie trigger extern. Pe spate: mufa de alimentare si intarea pentru trigger extern Link spre comentariu
Kosmin Postat Octombrie 4, 2010 Partajează Postat Octombrie 4, 2010 Foarte interesant proiectul, ba chiar am si constat functionarea sa in practica, oricum foarte util celor care isi doresc un generator de imp. cu bani cat mai putini.Tin minte ca au facut si romanii inainte de `89 ceva mai elaborat un pic ii zicea parca e0504 sau e0505. Link spre comentariu
Vizitator c e z a r Postat Decembrie 17, 2010 Partajează Postat Decembrie 17, 2010 salut! cu acest montaj facut de tine as putea obtine o serie de impulsuri de 2 MHz cu perioada de 1 milisecunde si perioada dintre impulsuri de 3 milisecunde? Link spre comentariu
Mikrosha Postat Decembrie 17, 2010 Autor Partajează Postat Decembrie 17, 2010 Adica timp de 1ms sa dea impulsuri de 2MHz apoi timp de 3ms sa nu dea? Pai nu, dar pot sa fac o schema care sa faca asa. Link spre comentariu
Vizitator c e z a r Postat Decembrie 17, 2010 Partajează Postat Decembrie 17, 2010 Ti-as ramane profund recunoscator! daca ai ceva timp si chef, te rog sa imi desenezi si mie o schema pentru asa ceva. mie imi trebuie acest generator de impulsuri pentru un palpator ultrasonic folosit la controlul metalelor. Link spre comentariu
Mikrosha Postat Decembrie 21, 2010 Autor Partajează Postat Decembrie 21, 2010 Scuzati intarzierea,d-le Cezar, momentam eram ocupat cu niste chestii apoi am uitat Sper sa nu fie tardiv. Deci am facut asa: 555-ul genereaza impulsuri de 1ms. Frecventa se poate regla fin din potentiometru. 7474 formeaza un numarator pe 2 biti, avand 4 stari. Pentru una singura din aceste stari iesirea lui U1:C este "1" iar pentru celelalte iesirea este "0". U1A si U1B formeaza o schema clasica de oscilator TTL, la iesirea caruia se va gasi frecventa de rezonanta serie a cristalului (am gresit in schema, cristal de 2MHz, NU 8MHz). Poarta U1:D "lasa sa treaca" frecventa de 2MHz doar cand iesirea din U1:C este 1. Schema o gasiti la adresa: http://i51.tinypic.com/2zzj30w.jpg Link spre comentariu
Vizitator c e z a r Postat Decembrie 23, 2010 Partajează Postat Decembrie 23, 2010 multumesc mult pentru schema si explicatie, mi-ati fost de mare ajutor! cred ca va voi mai deranja cu cateva probleme sau intrebari deoarece proiectul meu e doar la inceput . Link spre comentariu
Vizitator nirosucela Postat Martie 20, 2011 Partajează Postat Martie 20, 2011 Buna, puteti sa ma ajutati si pe mine cu un generator de semnal dreptunghiular cu frecventa reglabila intre 10 khz aproximativ si 2 Mhz? ma intereseaza sa aiba si display pentru a vizualiza frecventa care o reglez. Tensiunea la iesire pt forma de unda a semnalului sa fie aceeasi indiferent de frecventa, adica de aproximativ 10V, peste valoarea de 0V (adica0V-10V si nu -5V - +5V). Cele 2 perioade sa fie egale.Multumesc.Sarcina este corpul uman.Eventual, alimentarea sa se pota face si prin stabilizator, nu neaparat de la baterie.Ma intereseaza acest aparat, si cat costa pt achizitionarea lui.Multumesc. Link spre comentariu
Mikrosha Postat Martie 23, 2011 Autor Partajează Postat Martie 23, 2011 Sa-nteleg ca nu vrei sa-l faci, vrei sa-l cumperi. Urmareste la Vanzari cand mai apare un versatester E0502, face tot ce-ti trebuie. Link spre comentariu
Vizitator nirosucela Postat Martie 23, 2011 Partajează Postat Martie 23, 2011 Merci, am sa ma uit. Link spre comentariu
srdjan Postat Martie 23, 2011 Partajează Postat Martie 23, 2011 ce parere aveti despre asta: http://www.analog.com/static/imported-f ... AD9833.pdf ? eventual un group buy cineva? 45RON/buc (tva inclus) pt min 3 buc si eu as vrea un generator dar mi se pare ca in varianta cu asic-ul sugerat ies mult mai in castig. Link spre comentariu
Vizitator nirosucela Postat Martie 23, 2011 Partajează Postat Martie 23, 2011 merci srdjan, insa semnalul la iesire treb sa fie 0-+10V, dreptunghiular, apoi treb sa pot face un reglaj fin pe frecventa si mai treb sa am si un display sa vad ce frecventa am reglat. daca poti sa ma ajuti cu o astfel de schema, ti-as fi recunoscator. De asemenea, semnalul il aplic pe doi electrozi pe pielea umana. Nu stiu ce fel de adaptare trebuie la iesire pt a nu strica circuitul.merci. 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