Sari la conținut
ELFORUM - Forumul electronistilor

Comparator cu "intrare" in PIC


Mondan

Postări Recomandate

Am o schema ca in acesta imagine:

http://www.elforum.info/uploads/monthly_03_2014/post-23742-139829782785.gif

de aici:

http://www.elforum.info/topic/87751-amlpificator-clasa-d-pentru-incepatori/?hl=acca

 

Am alt driver decat cel din figura, dar restul montajului este la fel. A si se alimenteaza dintr-o sursa simetrica.

 

Vreau ca printr-un amplificator operational (AO=TL071) sa compar semalul audio de pe iesire cu cel audio de pe intrare.

(deci iesire vs. intrare audio)

 

De exemplu:

Semnal pe difuzor = 10x semnal intrare (=cazul ideal)

 

Semnal pe difuzor= 11x intrare (trimite spre PIC diferenta(pe A/D in), iar PIC-ul analizeaza si trimite mesaj de corectie la driver)

Semnal pe difuzor= 9x intrare (trimite spre PIC diferenta, (invers))

 

Am alimetat TL071 intre GND si + 5V si vad ca merge... asa pare. Iesirea lui intra direct in PIC

 

 

E doar doar o parte dintr-un montaj pe care vreau sa il fac, daca putem sa discutam doar problema asta.....

Stiu ca e exprimare incalcita, dar daca sunt nelamuriri astept intrearile dv.

 

Deci vreau corectie in caz ca valoarea momentana a semnalului de iesire nu este cea dorita.

Eu vreau cu PIC, este poate o fita..........

 

Deci intrebare este cum montez acest AO ???!

 

Un fel de masurare a distorsiunilor.... cu intrare in PIC.

Editat de Mondan
Link spre comentariu
  • Răspunsuri 15
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Mondan

    6

  • UDAR

    4

  • cristian1961

    4

  • cirip

    2

Top autori în acest subiect

Imagini postate

1. Nu cred că vei obține reacție suficient de rapidă cu PIC , pentru audio. Poate doar pentru un subwoofer. Oricum , n-am înțeles exact CUM vrei să faci.

2. TL071 lucrează în principiu la 5V DAR : ieșirea nu va coborî la 0V și nici nu va urca la 5V. După DS , diferența e cam de 1 - 1,5V. De asemenea intrările NU AU VOIE să coboare sub circa 1,5V. 

Link spre comentariu

Multumesc de infromatie.

Am facut o schema sa arat cum am incercat. Am acelasi driver MOS.

Sursa simetrica folosita (+50V, GND, -50V) devine acum (0V, +50V,+100V).

 

Acum.....Nu prea da bine prin calcul cu am pus operationalul.....

 

Vreau ca PIC-ul sa stie:   Vintrare x10< Viesire ori Vintrare x10>Viesire

am notat x10 amplificare in tensiune.

 

Ideal ar fi sa "stie" si cu cat s-a depasit valoare de iesire urmarita!

Ceva gen distorsiometru ....

 

---------------------------------------------------------

Calcule (acum stiu ca sunt gresite):

Divizor rezistiv pe intrare: 3.3K si 460R. La +5V pe rezistori cad: 4.38V respectiv 0.61V.

La un semnal audio ipotetic +/-0.5V aveam o variatie de tensiunde de 1.11V/0.11V

 

Divizor rezistiv pe iesire de 3.3k si 100K intre rezistente ca sa avem intre:  1.11V/0.11V

Trebuie ca pe divizor sa cada (pe difuzor) intre: 22.81V...37.74V

Astfel, diferenta initaial de +/-5V se "traduce pe difuzor" (fata de o masa ipotetica) in diferenta +15V....-19V ceea ce nu-i bine. Nu e "liniar". 

 

Cat despre viteaza de conversie A/D in cazul meu am 2 convertoare x 1MS/s si cred ca e suficient.

Mai face 20M instructiuni/secunda.

post-183833-0-77667100-1399041148_thumb.jpg

Editat de Mondan
Link spre comentariu

Să o luăm încet.

1. Schema inițială , nu știu cât de bună era ( am mari rezerve , dar nu ăsta e subiectul ) dar cuprindea în TL494 modulatorul PWM . La tine așa ceva nu există , tu ai un simplu driver - nu știam ce vrei să spui cu ”alt driver” , acuma știu!. Nu ai niciun fel de semnal PWM .

2. Dacă vrei să-ți genereze PIC-ul acel semnal , șansele de a obține viteză decentă sunt nule ( poate doar cu dsPIC , sau chestii mai rafinate pe care eu nu le cunosc ) .

3. Chiar dacă ai avea un µC suficient de rapid pentru asta , o comparație de tipul > sau <  nu e suficientă. Sigur, o să sară unii să-mi spună de convertoare sigma-delta. De acord, dar există integrate specializate pentru asta, nu PIC . De fapt și pentru clasa D există. 

 

Fac aici o paranteză , ușor off topic. Înțeleg să implementezi o schemă pentru care există circuite specializate , prin circuite de uz general, în două cazuri : ieși mult mai ieftin sau vrei să creezi și să experimentezi. Chestia cu costul nu prea stă în picioare , există circuite destul de ieftine. Chestia cu creatul , ce să zic , și eu am făcut convertoare în comutație cu CD4093 ( de exemplu, dar și cu altele ) cu performanțe remarcabile dar aici e muuuult de studiat.

Link spre comentariu

Pai asa teoretic e simplu .divizorul de iesire trebuie sa atenueze cu de zece ori mai mult ca cel de la intrarea operationalului. practic insa nu este chiar asa.una este ca trebuie sa scalati si componenta continua de iesire ca veti sursa aia de 50v in circuit. cel mai simplu ar fi sa decuplati divizorul de OP amp cu un condensator si sa polarizati corespunzator intrarile op amp. apoi mai apare o problema exista un defazaj  intre intrarea de audio si iesirea amplif in clada D . cit si cum influenteaza asta in practica e dificil de spus. apoi nu stiu ce vreti sa faceti cu montajul asta, la ce foloseste. din cauza asta nu ma pot pronunta mai la obiect.

Link spre comentariu

Perfect. De obicei pe intrarea audio am 2.2uF...47uF. In cazul asta as vrea sa folosesc la decuplare un condensator de 1000uF (vreau sa ajung foarte jos in frecventa, sa simt vibratia audio in scaun/fotoliu).

Care ar fi sansa ca acest condensator de la mediana de +50V la cativa volti, la pornirea sursei sa dea un puls si sa arada intrarea ?

 

Sa vad ce iese......

 

Ca sa raspund la intrebarea ce urmaresc la final este asta:

http://www.elforum.info/topic/75031-algoritmi-corectie-acustica-in-camera/

 

Dar deocamdata sa merga normal e ceva.....

A mers pana acum am acultata o muzica, dar calitatea lasa de mult, mult de dorit.....

Link spre comentariu

Iartă-mă, poate am pierdut ceva . 

1. ”Pefect.” Ce e perfect ?

2. ”A mers pana acum am acultata o muzica,..” Ce a mers ? Că nu schema aia !!!

 

PS Nu văd legătura între un amplificator în clasa D și un analizor al acusticii camerei. De fapt noțiunea asta de la coadă e așa de complexă încât nici nu vreau să intru în discuții legate de ea.

Editat de UDAR
Link spre comentariu

Perfect este ca am o ideie pe care sa o incerc.

In schema aia am neglijat PIC-ul. Nu e o schema care sa meraga, evident. E doar o parte din schema mea. 

A mers schema originala, dar acum lucrez la unele imbunatiri.

 

Legatura cu acustica este: PIC-ul va avea in final un algoritm de corectie acustica. Cel mai simplu exemplu: Vreau sa emit A*sint(1000*t) asta dupa ce se loveste de peretele din fata se reflecta ca ecou B*sin(1000*t+un defazaj). Asta doua se vor aduna in acest exemplu si va da ceva care FFT se descompune in mai multe "frecvente". PIC-ul va calcula ce trebuie emis ca in urma "adunarii" sa se obtina exact A*sin(1000*t). Daca e o bazaconie inseamna ca voi crea o bazaconii. Nu-i bai !

-------------------------------------------------------------

Revenind la subiect:

Un amplificator audio se poate face asa:

Posted Image

Ei compara iesirea cu intrarea ca sa aiba nivel zero pe limba potentiometrului.

Ca potentiometrul sa aiba la mijloc 0V amplificatorul trebuie sa fie inversor.

 

Dar au V+, V- si masa la mediana.

 

In schema originala: Acelasi tip de reactie pe comparator!!!

http://geekcircuits.com/wp-content/uploads/2010/07/tl494-class-d-power-amp1.png

Acelasi tip de reactie pe comparator.

Sa inteleg ca schema asta (din link) distorsioneaza ?

Conform exemplului de calcul prezentat iesirea nu va urmari fidel intrarea ! Sau am gresit eu (destul de probabil)???

 

Daca mai aveti si alte idei in afara de condensator de decuplare. Ma tem ca daca nu e chiar sinus ce trece prin acel condensator il poate deforma.

Repet: vreau ca de la inputuri analogice -> prin procesare soft -> macar sa aud ca lumea sunetul "initial".

Editat de Mondan
Link spre comentariu

Mi-e greu să te urmăresc, în fiecare post vii cu altă schemă și cu altă idee.

Schema de pe ”geek...” e în principiu corectă și e identică ( ca principiu ) cu prima ta schemă tot cu TL494. Deci cred că merge , nu știu cu ce performanțe. Schema pe care o incluzi în postul ultim e una analogică, corectă ( principial ) și aia. 

Problema e la combinația pe care vrei să o faci , eliminînd TL494. La modul ideal , chiar și aia funcționează .... oarecum. 

Acum , cu alimentarea . Tipul ăsta de scheme e cu alimentare asimetrică pentru că acest tip de modulator PWM nu poate trata semnale bipolare. Deci , nu poți evita condensatorii. Povestea cu ”dacă nu e sinus ” e o poveste . Înțeleg din postări că ești cunoscător de descompuneri armonice , deci...

Iar chestia cu ”Conform exemplului de calcul prezentat iesirea nu va urmari fidel intrarea !” mă prinde din nou pe picior greșit . Care exemplu de calcul ?

Link spre comentariu

Hai sa le luam pe rind . ca sa nu ai atenuari la frecvente joase nu este neaparat sa ai condensator foarte mare , depinde de impedanta de intrare a dispozitivului cu care se face cuplajul . de exemplu grosier daca ai o impedanta de 1Mohm cu 2,2uF frecventa de taiere la 3db parca era aprox. de 1/RC deci cam in jurul lui 2hz. La un cond. de 1000uF curentul de incarcare depinde si intre ce impedante este montat si cum se inchide  curentul , asa ca in caz nefericit iti v-a face praf operationalul garantat.

Amplificatorasul care l-ai pus in poza tine din principiu zero la coada. din pot. se modivica doar amplificarea. cu mentiunea ca trebuie sa pui un condensator de cuplaj la intrare.

acum asupra ampl. in clasa D nu ma pot pronunta asa pe dinafara, vad ca are si o reactie de la coada de unde ia un semnal dretunghiular cam de 3,9v amplitudine spre op intern al tl494 probabil. sa stii ca tipul asta de schema este destul de primitiv si distorsiunile sunt mari . modulatorul nu este de precizie si nici viteza nu are cine stie ce.

La fabrica am facut un Ampl in clasa D pe vremea cind nu erau circuite specializate si construit cu operationale viteza si destul de sofisticat rezultatul a fost cam indoielnic, distorsiuni de 2-3 %. asta dupa multa munca injuraturi si urlete. in sfirsit scula era mai complicata avea si un traf de iesire etc. asa la ce o foloseau gaborii , "trage baiatu' pe dreapta " si chestii de genul asta era buna. un modulator bun are si liniarizari coplicate ,corectii etc.

Integratele pt amp clasa D folosesc modulatoare speciale nu poti reproduce usor asa ceva si sa ai parametri buni. era undeva o descriere de la un modulator fabricat de Maxim . destul de vechi dar mult mai bun decit asta. dar daca vrei sa faci scoala poti incerca. se gasete destula teorie pe net.

Sa trecem la urmatoarea etapa , pentru corectie camera iti trebuie toata teoria , algoritmii etc. doar asa cu o FFT nu ai ce face. algoritmii sunt foarte coplecsi. poate gasesti undeva teoria pe net . singur nu ai sanse prea mari sa o descoperi in timp util. sistemul merge in timp real asa ca un pic nu v-a face fata deloc la treaba asta. trebuie unul specializat pentru DSP. aici nu ma pricep si nu pot sa te ajut cu mai nimic. stiu ca demult s-as facut si analogic corectiile astea, cum nu stiu. erau niste "casuri " Fisher parca care aveau asa ceva incorporat.  ceva cu un generator de zgomot alb, roz nu mai tin minte.

oricum toata tevatura asta iti v-a lua foarte mult timp, asta ca sa stii la ce te astepti.

Link spre comentariu

Salut Mondan,

 

Noi am mai vorbit pe teme de desepeala. :)

Prima chestie e o reactie negativa, pe care cel mai simplu o faci pe cale analogica. Picul nu are ce cauta acolo in bucla. E lent, introduce defazaj si te mai trezesti ca oscileaza sandramaua. Oricum, cred ca ar distorsiona grupa mare. Daca vrei musai sa te joci, exista picuri cu comparator in ele, dar anticipez rezultate jalnice.

A doua e un fel de echo cancelling. Daca imi amintesc bine, biblioteca dsPICului are si functii de echo cancelling. Daca nu, faci un filru adaptiv cu algoritm LMS. Nu prea faci nimic cu FFTul acolo. Una din bibliile filtrelor adaptive este Adaptive Filter Theory de Simon Haykin. Merita tras un ochi.

Editat de cirip
Link spre comentariu

E doar un raspuns de multumire, urmeaza sa testez in practica:

 

Care exemplu? am calculat eu ceva in primul post, dar acum stiu e anapoda.

 

 Vreau corectia sa fie doar pe joase. Ma astept la mili secunde bune de intarziere. Mediile si inaltele vor veni prin aplif normal. :84

"zgomot alb, roz" nu am prins care este diferenta. Un ex este bazaitul ala cand radioul nu prinde niciun post. Iar in alt caz e un sunet egal distribut in tot spectru audio. Acest sunet il bagi in amplif, iar cu un analizor spectral vezi acustica camerei. Acum vei potrivi egalizorul grafic asfel incat sa ai pe analizor spectral forma initiala. De asta ma gandeam la FFT, dar, da, e cam inutil.

 

 

 

Sa citesc o carte nu-i rau, dar nu am gasit-o. Am gasit doar cuprinsul si cursuri in care e cam acelasi lucru

http://tocs.ulb.tu-darmstadt.de/110863747.pdf

http://www.eit.lth.se/fileadmin/eit/courses/ett042/LEC/notes1.pdf

Nu ma sperie nabla, macar sa fie clar.

 

Despre echo cancelling, exemplul cu schema si HEX este pentru dsPIC33F. Sunt si 2 exemple audio la finalul paginii:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en023591

 

Am insa dsPIC30F. Asta deoarece la cam aceeasi viteza merge la 5V. Si cu logica la +5V ma descurc. Nu vreau logica la 3.3V.

In montajul de pe pagina Microchip ei au codecul audio Si3000 (analogic + 16biti la 4-12KHz), Eu am doar A/D-ul PIC-ului.

 

M-au uitat pe algoritmii astia de la Microchip. E complicat pentru ca trebuie sa instalezi ceva in plus (au un kit de instalare) si tu vei apela din compilator o procedura. Mi-as fi dorit mai mult un cod care pus in compilator sa mearga....

 

Oricum eu am facut teste si in MikroC si MPLab cu ASM si cu compilatorul C.

Desi mi-a mers o data, acum m-am incurcat iar la initializare A/D-ului.

Editat de Mondan
Link spre comentariu

@Mondan,

dsPIC30F e putin mai lent. Stie 30 MIPS fata de 40 ale lui dsPIC33. Problema e ca ADCul si DACul din interior sunt foarte zgomotoase datorita faptului ca stau aproape de partea digitala. Am fost si eu entuziasmat sa folosesc ADC/DAC din interior si am facut proiectelul asta: http://www.elforum.info/topic/61414-filtru-digital-dspic33f/?p=630677 Dar dupa ce l-am bagat "in trafic", mi-am dat seama ca e f zgomotos. De exemplu, daca scot numai zerouri pe DAC, dar las algoritmul de filtrare sa mearga, se aude un huruit de vreo 17Hz la iesire, pe care l-am detectat si facand FFT pe semnal si care provine din curentul in salturi consumat de core cand i se da cale libera sa proceseze un buffer de date. Fac procesare bloc, nu esantion cu esantion, ca sa reduc latenta.

In final, am renuntat la ADC/DAC interne si am pus si eu un Si3000. Merge impecabil. Am inteles de ce l-au folosit cei de la Microchip, dar 12KHz rata maxima de esantionare mi se pare putin ptr audio. Altfel, e foarte linistit si poate fi configurat atat dpdv al castigului, dar poti selecta si ce fel de filtru antialias sa folosesti intern. Nu mai ai nevoie de FTJ extern ptr ca e deja in interior. Interfata e mai complicata ptr ca trebuie alimentat permanent cu date. Trebuie sa folosesti modului DCI din dsPIC si mi-a luat ceva pana l-am configurat.

 

Bafta si spor!

Editat de cirip
Link spre comentariu

Pentru carti dowload emule de pe net il instalezi il configurezi un pic, si vei observa ca are cautare . bagi titlul cartii asa aproximativ si daca o au baietii pe calculator care mai trebuie sa fie si pornit incepe sa ti se dowload la tine. daca nu porneste lasa-l asa deschis , mai incerci in fiecare zi cu noroc o sa se descarce. acolo gasesti si programe , vezi ca unele au virusi. daca esti baiat istet te prinzi repede. alta cale mai este cu ucrotorent. mai sunt si unele siteuri cu carti .una buna este asta www.avaxhome.ws. cit priveste zbomot alb asta arata distributia de putere a spectrului. la roz e alta . nu mai stiu ce si cum a trecut prea mult timp . cauta pe net trebuie sa fie informatii. eu nu fac chestii destea . te pot ajuta la analogica si radio. cu procesoarele sunt cam pe linga . nu am lucrat.

Link spre comentariu

Despre comparatorul desent de mine in:

http://www.elforum.info/uploads/monthly_05_2014/post-183833-0-77667100-1399041148.jpg

de fapt de aici a fost:

http://geekcircuits.com/wp-content/uploads/2010/07/tl494-class-d-power-amp1.png

 

A inceput sa meraga cand am luat in consideratie ca in comparator nu intra semnalul de pe difuzor asa cum m-as fi asteptat, analogic.  Intra doar un semnal dreptunghiular! Cu cine sa il compare ?! M-a dus in eroare ca pe voltmeru arata o tensiune diferita in functie de umplerea PWM-ului.

 

In final dupa ce am tinut cont de acest aspect a inceput sa mearga.

Nu mai zic de zgomot de cand am pus operationalul. Baraituri.

Mergea bine doar la o anumita frecventa PWM.

 

A mai facut cineva cu Attiny si a pus pe youtube:

http://www.youtube.com/watch?v=CrAB9rIcakE

Problema este ca la volum mic nu se aude clar........

 

La initializare A/D iar am avut iar probleme. Nu a mai mers, desi initial a mers. Daca puteti sa imi spuneti cum l-ati initializat voi. In MikroC imi amintesc ca a, facut:

 

unsigned adcRes;
void main() {
PORTB = 0x0000;
TRISB.F1 = 1; // de ce o fi .F1 nu stiu, dar i-am dat in toate felurile, chiar TRISB=0XFF

ADC1_Init();
while (1) {
adcRes = ADC1_Get_Sample(1);  // canalul a fost pus 0,1,2,3

 

PDC1=adcRes*0xFFFF/0x1FF// duty cycle pt PWM pe 16 biti
};}

luat dupa: http://www.mikroe.com/download/eng/documents/compilers/mikroc/pro/dspic/help/adc_library.htm

 

Pinii au fost AN1,AN2,AN3 legati impreuna la 5V/2.

Rezultatul adcRes era insa mereu 0. Am incercat si cu delay dupa initializare si dupa achizitie dar tot zero.

 

Din Project ->Edit Project am selectat Oscilator intern cu PLL. Dar totui viteza e foarte mica. De exemplu un Delay de 1S la viteza decalarat de 120MHz ia in relaitate cam 3S. Deci este de trei ori mai lent.

 

Despre zgomot convertorul A/D are alimentarea separat (Avss si Avdd), deci cumva acolo ceva pus....

Editat de Mondan
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