Vizitator Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 Inlocuiam azi niste link-uri catre fostul tinypic.com, si, in timp ce upload-am cu spor poze lipsa de la diferite proiecte mai vechi, am dat peste o idee mai veche de-a mea. O botezasem "RoGeorge Cell", ca "Gilbert Cell", dar a mea . https://hackaday.io/project/7542-rogeorge-cell/ Totusi, pana acum n-am mai intalnit arhitectura asta de multiplicator, asa ca m-am gandit sa o public si in Romana, si sa intreb si aici, pe ElForum: A mai intalnit cineva felul asta de multiplicator, sau ceva asemanator? Este vorba de un potentiometru controlat numeric, pus intre semnalul normal si semnalul inversat, ca in figura de mai jos. Semnalul de intrare este analog, si traseul semnalului desi ramane analog (adica nu este convertit in digital) poate fi multiplicat cu un coeficient numeric. Variind cursorul potentiometrului (care este controlat numeric), obtinem un multiplicator complet, in 4 cadrane, intre semnalul analog de la intrare si coeficientul numeric, coeficient controlat de un microcontroler. Aceeasi idee de multiplicator in 4 cadrane folosind: - semnalul direct - semnalul inversat - insumarea celor doua semnale printr-un divizor controlat poate fi existinsa si la altceva decat multiplicarea unei tensiuni. De exemplu, la multiplicarea/modularea unui semnale optic, RF, microunde, sonor, etc. Diagrama bloc a multiplicatorului. In exemplul de aici este aratat un multiplicator de tensiune compus dintr-un potentiometru controlat numeric, prin I2C, conectat intre semnalul direct si semnalul inversat. Schema prototipului. Cele 3 placute de la stanga la dreapta sunt: un amplificator operational cuadruplu (OPA1654), un potentiometru linia 2 x 10k controlat numeric prin I2C (TLP0202) si un Arduino nano (ATmega323) pentru controlul potentiometrului prin I2C. In animatia urmatoarem, semnalul albastru reprezinta semnalul analog pe care vrem sa il multiplicam, Vin, in cazul de fata un semnal sinusoidal de 440 Hz. Semnalul mov, animat, este semnalul Vin dupa ce a fost trecut prin multiplicator, iar factorul de multiplicare este o variatie lenta (cam o data pe secunda) intre -1 si +1. Variatia factorului de multiplicare intre -1 si +1 este generat de programul din ATmega323. In mod normal, in loc de variatia monotona intre -1 si +1 folosita aici ca demonstratie, se poate folosi un semnal digital de o forma oarecare. Am deschis subiectul aici pentru ca multiplicatoarele de semnal sunt des intalnite in breasla radiamatorilor, si probabil ca radioamatorii au vazut si au experimentat fel si fel de multiplicatoare, care de care mai ciudate. Intrebarea mea este: A mai intalnit cineva felul asta de multiplicator, sau ceva asemanator? Link spre comentariu
VAX Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 Eu vad acolo doar un amplificator inversor (A=-1) si unul neinversor (A=1) cu iesirile legate la un potentiometru. Semnalul de la iesire (pe cursor) este suma ponderata a celor doua semnale de la iesirea AO. Cu amplificatoare operationale obisnuite nu ar merge in RF. Iar cele de banda larga au defajaz mare si le scade amplificarea la frecventa mare. Schema nu este completa. Link spre comentariu
Mircea Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 La ce foloseste mai exact acest amplificator, ca nu stiu de unde-i vine numele de multiplicator? Nu vreau decat sa stiu utilitatea. Link spre comentariu
sesebe Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 (editat) Încă cineva care a descoperit Arduino. Nu-i nimic deosebit la el și oricum ii lipsește bufferul de după potențiometru. Dacă n-aș fi văzut plăcuta de Arduino și breadbordul (nu știu dacă as scris corect dar nu-mi pasa) as fi avut poate o alta părere dar m-am saturat de toată lumea care descoperă apa calda punind pe un Arduino ceva cod de pe net. Din punctul asta de vedere @RST este pe cel puțin un nivel mai sus. Editat Iulie 24, 2020 de sesebe Link spre comentariu
UDAR Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 (editat) Nu înțeleg reacțiile colegilor de mai sus dar, în fine, fiecare cum crede. Ideea este drăguță - nu știu dacă și originală. Eu personal am văzut potențiometrul digital utilizat ca multiplicator într-un cadran doar . Am însă o întrebare - de detaliu ce-i drept, nu de fundamente . Potențiometrul utilizat ( TLP0202 ) admite tensiuni bipolare pe intrări/ieșiri sau e vorba de o translatare față de o referință ? N-am găsit data sheet-ul și din video nu-mi dau seama clar. EDIT Am găsit DS ...... e TPL nu TLP cum ai scris pe schemă ..... Și nu admite tensiuni bipolare ( respectiv negative ) pe terminale . Deci mi-am răspuns singur. Editat Iulie 24, 2020 de UDAR Completare 1 Link spre comentariu
djvas Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 Poti detalia functionarea in cele 4 cadrane ? Link spre comentariu
Vizitator Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 VAX In afara de componentele desenate in a doua poza, mai sunt condensatoare de filtraj si un microcontroler care controleaza digital cursorul potentiometrului. Microcontrollerul nu e detaliat in chema, pentru ca el doar trimite pozitia cusorului catre potentiometrul digital, iar pe mine ma interesa sa arat componentele specifice tipului asta de multiplicator. In PoC-ul de fata (PoC = Proof of Concept, eu i-am zis prototip) am folosit ce aveam la indemana, adica operationale de frecventa relativ joasa, doar ca un demo. Chiar si asa, multiplicatorul ar putea fi folosit fara nicio modificare, de exemplu, ca modulator intr-un echipament VLF. Pentru frecvente mai mari, ar putea fi folosit un circuit integrat (amplificator RF) cu iesire diferentiala, in locul amplificatoarelor +A si -A. Thunderer Circuitul este un multiplicator, pentru ca multiplica doua semnale, unul in format analogic, Vin, si al doilea in format digital, trimis de catre microcontroller. Ultima poza atasata, cea animata, este captura de pe ecranul osciloscopului, cu semnal real, circuitul chiar este un multiplicator, nu doar un amplificator, si functioneaza ca atare, realizat practic. Semnalul de iesire, mov/magenta, poate fi facut sa apara cu orice amplitudine intre +1 si -1 (se vede ca Vout este cand in faza, cand in antifaza relativ la semnalul de intrare, Vin, albastru). Multiplicatoarele au foarte multe aplicatii in radio. Printre cele mai cunoscute sunt cele de modulare/demodulare sau de schimbare de frecventa in receptoarele cu frecventa intermediara. Mai recent sunt folosite pentru prelucrarea semnalelor in quadratura in SDR (Software Defined Radio). Aproape orice echipament radio actual contine multiplicatoare (mixere). In afara de aplicatiile clasice, multiplicatoarele au fost folosite in cele mai neasteptate locuri. De exemplu, systemul de ghidaj al rachetelor V2 din al doilea razboi mondial era facut cu multiplicatoare (diode ring mixers). Erau folosite la calcularea traiectoriei in mod analogic, elementul de baza fiind multiplicatoarel, implementat sub forma de diode ring mixers. grosu99 Intrebarea adresata radioamatorilor era daca a mai intalnit cineva felul asta de multiplicator, sau o topologie asemanatoare. Deduc din raspunsul tau este ca pana acum nu ai mai intalnit tipul asta de multiplicator, dar de ce ceri sa fie mutat? Link spre comentariu
Vizitator Postat Iulie 24, 2020 Partajează Postat Iulie 24, 2020 (editat) 2 hours ago, sesebe said: Încă cineva care a descoperit Arduino. Nu-i nimic deosebit la el și oricum ii lipsește bufferul de după potențiometru. Dacă n-aș fi văzut plăcuta de Arduino și breadbordul (nu știu dacă as scris corect dar nu-mi pasa) as fi avut poate o alta părere dar m-am saturat de toată lumea care descoperă apa calda punind pe un Arduino ceva cod de pe net. Din punctul asta de vedere @RST este pe cel puțin un nivel mai sus. sesebe Nu-ti inteleg dispretul in general, si dispretul fata de de mine, in special. Si chiar daca ai avea motive sa ma urasti pe mine, personal, ce legatrura are RST cu toate astea, si de ce il folosesti ca etalon de prostie? Oricum, pe viitor te rog ataca ideile, nu persoanele. Arduino-ul ala a costat vreo 7-8 lei cu tot cu transport, il aveam deja pe masa cand m-am apucat sa incerc daca merge, si placuta aia are tot ce-i trebuie inclusiv conectori, si are un microcontroller suficient de bun pentru demo-ul pe care vroiam sa-l incerc. Daca puneam in loc de Arduino un panou de imprimanta, crezi ca iesea alt multiplicator? Vad acum ca si in topicul ala pozele erau tot pe tinypic, si s-au dus toate. Nici nu stiu daca le mai am. Nu era cine stie ce, dar in 2012 cred ca a fost primul tutorial de FPGA-uri in limba Romana. Sau daca mai erau si altele, eu nu le-am gasit, asa ca am incercat sa fac eu unul. https://www.elforum.info/topic/63774-placă-de-dezvoltare-fpga-dintr-un-panou-de-imprimantă/ Acum, ca imi aduc aminte, s-a scris si pe Hackaday.com de topicul nostru, desi era in Romana https://hackaday.com/2017/02/27/printer-scrap-becomes-fpga-devboard/ Arduino l-am "descoperit" inainte sa existe, cand era doar microcontroller AVR. Cred ca am ceva topicuri si despre AVR, aici, pe Elforum, nu mai pierd timpul sa le caut. Crezi ce vrei, dar nu mai dispretui oamenii. UDAR Schema am desenat-o mai tarziu, si vad acum ca am scris din greseala TLP in loc de TPL, apoi textul l-am facut uitandu-ma la schema cu literele inversate. Scuze. Este vorba de TPL0202 si cred ca am scris I2C, asa cum ai gasit deja. Despre tensiuni, cred ca potentiometrul este alimentat intre -2.5V si +2.5V (daca luam masa din schema ca fiind 0V). Montajul l-am facut acum vreo 5 ani, dar cred ca mai am breadboard-ul pe undeva, pot sa ma uit exact cum era alimentarea. djvas 1 hour ago, djvas said: Poti detalia functionarea in cele 4 cadrane ? Am pe undeva capturile cu ecranul de osciloscop, facute separat pentru fiecar cadran. Se poate vedea si din poza animata, dar am impresia ca animatia mai tare incurca decat clarifica. Pana gasesc capturile, - cadran 1: cand semnalul de intrare Vin este, sa zicem +1V, si cursorul potentiometrului este la maxim sus, atunci la iesire avem +1V - cadran 2: Vin = -1V si cursorul este sus, la iesire avem Vout = -1V - cadran 3: Vin = -1V si cursorul jos, la iesire avem Vout = +1V - cadran 4: Vin = +1V si cursorul jos, la iesire avem Vout = -1V In cazul in care Vin are alte valori intermediare, Vout se schimba si el, dar polaritatile raman ca cele descrise in fiecare cadran. La fel, cand cursorul este in pozitii intermediare, Vout se schimba, dar polaritatile se pastreaza conform fiecarui cadran. Animatia arata Vin fix, in timp ce cursorul se plimba sus jos, vacand astfel ca Vout sa varieze intre +V si -V, oricare ar vi V la un moment oarecare. Ar fi fost mai bine daca in loc de animatie puneam baza te timp mult mai mare, si faceam un print screen neanimat din care sa reiasa ca microcontrollerul moduleaza in amplitudine sinusoida de la Vin, la fel ca un diode ring modulator. Editat Iulie 24, 2020 de Vizitator Link spre comentariu
franzm Postat Iulie 25, 2020 Partajează Postat Iulie 25, 2020 Folosirea unui potentiometru numeric pe post de DAC este cunoscuta si descrisa în notele de aplicatie (de ex pag 17 de aici). De aici si pâna la folosirea unei referinte variabile nu a mai fost decât un pas. Înca un pas si rezulta un MDAC (daca si referinta se obtinea cu un DAC). Link spre comentariu
Mircea Postat Iulie 25, 2020 Partajează Postat Iulie 25, 2020 @RoGeorge, intreb si eu precum colegul Radu (UDAR), cum alimentezi simetric TPL0202 care nu accepta decat o alimentare simpla (2,7-5,5V) si mai e si SPI. Poate o doar o scapare. Daca insa ai nevoie de un digipot care sa accepte o alimentare simetrica, iti recomand https://www.microchip.com/wwwproducts/en/MCP41HV51. Altfel, spor la treaba! Link spre comentariu
puriu Postat Iulie 26, 2020 Partajează Postat Iulie 26, 2020 Este onorabila solutia (veche) de a inlocui un potentiometru mecanic cu unul controlat digital. Cred ca mai lipsesc niste cadrane. Cum are loc defazajul necesar de 90 de grade dintre doua cadrane succesive? Daca s-ar obtine atat de simplu I si Q, ar fi o lovitura in tehnica SSB. In prezent este foarte greu fara digitalizare, mai ales in banda AF. Link spre comentariu
VAX Postat Iulie 26, 2020 Partajează Postat Iulie 26, 2020 (editat) Nu citisem nimic despre acest tip de multiplicator, cu potentiometru digital. Cred ca se folosec in industrie, la frecventa scazuta. In anii '80 am vazut la un coleg de liceu, care lucra la SPIACT (CFR) Craiova, o schema de multiplicator cu un generator de semnal sub forma de impulsuri cu factor de umplere si amplitudinea dependente de doua tensiuni de comanda. Tensiunea aplicata la intrarea X comanda amplitudinea impulsurilor, iar tensiunea de la Intrarea Y comanda factorul de umplere. Tensiunea medie de la iesirea circuitului era proportionala cu Ux si cu Uy, deci Uo=k UxUy. Circuitul respectiv era cu amplificatoare operationale si cu MMC-uri. Era destinat sa-l puna pe locomotive, sa masoare puterea instantanee si energia consumata. Proiectul era inceput de un cadru didactic de la Fac. de Electrotehnica, care fugise in strainatate. Cei de la SPIACT se fortau sa inteleaga cum mergea si sa-l puna in practica. Editat Iulie 26, 2020 de VAX Link spre comentariu
RxTx Postat Iulie 26, 2020 Partajează Postat Iulie 26, 2020 (editat) On 7/24/2020 at 11:54 PM, RoGeorge said: Mai recent sunt folosite pentru prelucrarea semnalelor in quadratura in SDR (Software Defined Radio). Aproape orice echipament radio actual contine multiplicatoare (mixere). @RoGeorge, cum se poate obtine IQ cu acest montaj? A intrebat si user @puriu. Cum se obtine defazarea cu 90 de grade necesara. Editat Iulie 26, 2020 de RxTx Link spre comentariu
RxTx Postat Iulie 26, 2020 Partajează Postat Iulie 26, 2020 (editat) @puriu, incercari de defazare 90 de grade analogic s-au facut. Sigur stiti de aceasta incercare. Este mai greu de reglat, dar chiar merge. Mai ales cu softurile mai noi SDR care corecteaza eroarea de faza (eu nu prea a inteles cum fac asta). @RoGeorge scuze de (putin) offtopic. Editat Iulie 26, 2020 de RxTx Link spre comentariu
Vizitator Postat Iulie 26, 2020 Partajează Postat Iulie 26, 2020 Montajul aratat la inceput nu face defazarea cu 90 grade pentru SDR. El doar inmulteste un semnal analogic (Vin) cu un semnal generat numeric (-1...+1). Altcineva trebuie sa-i prepare semnalele in quadratura si sa i le dea la inmultit. Cand ziceam de SDR ca aplicatie pentru multiplicatoare aveam in cap o schema bloc pe care am facut-o mai demult, in LabVIEW, cu indicatoare si butoane de care sa pot trage, ca sa vad semnalele si cum merge un SDR. E vorba de a doua poza din galeria de la proiectul asta https://hackaday.io/project/7397-do-a-real-magic-spell-essdeeaar Toate triunghiurile galbene de acolo cu un x pe ele sunt multiplicatoare. -------------------- Despre alimentari, potentiometrul este alimentat intre bara de -2.5V si cea de +2.5V (fata de masa desenata in prima schema). La fel si microcontroller-ul. Asta teoretic. In realitate, am facut o masa virtuala la jumatate lui 5V, cu un divizor rezistiv si condensatoare in paralel pe rezistentele care dau masa virtuala folosita pentru semnalul analogic. Pe breadboard, masa virtuala e facuta cu cele doua electrolitice, doua 100nF si cele 2 rezistente de 220 \$\Omega\ care se vad in partea din stanga sus. -------------------- Intr-adevar, modelul asta de potentiometru e controlat prin SPI, nu e I2C, mersi de observatie. Schema am desenat-o mai tarziu fara sa mai verific datasheet-ul. Eram preocupat mai mult sa arat ca daca bag +Semnal si -Semnal intr-un divizor controlat, iese un multiplicator. Partea proasta e ca am upload-at deja gresit prin vreo 3-4 locuri. Intre timp am gasit si codul C cu care am generat semnalul animat de pe osciloscop. Sunt doar doua bucle for care variaza intr-una factorul de multiplicare (pozitia potentiometrului) intre 0 si 255. 0 corespunde multiplicarii digitale cu -1 (cursorul la maxim intr-o parte), iar 255 corespunde multiplicarii digitale cu +1 (cursorul la maxim in in partea cealalta). // inslude the SPI library: #include <SPI.h> // SPI parameters for the TPL0202-10 digital potentiometer #define slaveSelectPin 10 #define digitalPotAddr 3 void digitalPotWrite(int addr, int value) { // take the SS pin low to select the chip: digitalWrite(slaveSelectPin, LOW); // send in the address and value via SPI: SPI.transfer(addr); SPI.transfer(value); // take the SS pin high to de-select the chip: digitalWrite(slaveSelectPin, HIGH); } void setup() { // put your setup code here, to run once: // set the slaveSelectPin as an output: pinMode (slaveSelectPin, OUTPUT); // initialize SPI: SPI.begin(); // initialize serial port: Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: // parse all multiplication factors, back and forth: for (int factor = 0; factor <= 255; factor++) { digitalPotWrite(digitalPotAddr, factor); delay(10); } for (int factor = 255; factor >= 0; factor--) { digitalPotWrite(digitalPotAddr, factor); delay(10); } } 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