Sari la conținut
ELFORUM - Forumul electronistilor

Probleme preamplificator digital TDA7439


Vizitator Gabriel Alin Voicu

Postări Recomandate

Vizitator Gabriel Alin Voicu

Salutare!

 

In primul rand, bine v-am gasit, fiind primul post pe forum. Mentionez ca nu stiu asa de multa electronica, tot ce am mai invatat a fost de pe forumuri ca acesta cand am avut nevoie sa aflu ceva anume.

 

Bun, de curand am vrut sa dau un refresh unui amplificator mai vechi cu TDA7294, aducandu-l in ton cu secolul nostru. Am facut un "controller" cu arduino si cu procesorul audio TDA7439. Acesta comunica cu Atmega prin comunicatie I2C. Tot pe acelasi bus I2C mai sunt un display 20x4 caractere, un modul de ceas + eeprom si un modul de radio FM.

Problema este ca atunci cand display-ul face refresh, se aude un bip in difuzoare. Este un sunet inalt, cam la 1-2 kHz. Display-ul isi face refresh destul de des, licarind punctele dintre ora si minutul afisate. Ar fi usor sa renunt la licaritul punctelor, dar zgomotul se aude si cand intru in meniu, cand schimb volumul (asta nu ar fi problema, pot sa il trec cu vederea) dar si cand este modul de radio FM, unde isi face refresh mai des. Mai vreau sa integrez si un vumetru sau analiza de spectru pe acelasi display.

Momentan, am scapat de zgomot reducand inaltele din egalizator (tot este, dar imperceptibil de la distanta). Zgomotul se aude si atunci cand scot display-ul si celelalte device-uri cu comunicatie I2C.

Acum cateva detalii tehnice. Alimentarea intregului ansamblu se face din aceeasi sursa, in comutatie, provenita dintr-un transformator reglabil. Aceasta furnizeaza 7,5V pentru Arduino (am vrut sa ii pastrez alimentarea integrata), iar celelalte device-uri sunt alimentate tot din aceasta printr-un LM7805. Masa este comuna pe cablajul intregului ansamblu. Liniile SDA si SCL sunt legate la +5V prin cate o rezistenta de pull-up de 4,7K. Montajul nu este gandit 100% de mine, este luat din alta parte si usor modificat dupa nevoi.

Stie cineva de unde ar putea aparea aceasta interferenta? Ar putea fi din cauza alimentarii? Se poate filtra cumva semnalul digital pe I2C?

 

Va multumesc!

Link spre comentariu
  • Răspunsuri 25
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • sesebe

    6

  • Sigisman

    4

  • Ionut Remus

    1

Top autori în acest subiect

Imagini postate

Salut,

 

TDA 7439 are doua "mase" (vezi datasheet). Una digitala si una analogica. Ansamblul: Arduino + display +  partea digitala din modulul radio FM + modul ceas - se vor alimenta separat de partea audio, adica iti mai trebuie o sursa. Pentru test poti incerca sa alimentezi cu sursa + CI 7805 pentru "partea digitala". Apoi alimentezi cu o baterie de 9V CI  TDA7439. 

De la TDA7439 pinul 29 (DIGGND) se va conecta la masa echip. digitale.

 

O zi buna! 

Link spre comentariu
Vizitator Gabriel Alin Voicu

Multumesc mult pentru raspuns!

 

M-am tot gandit ce e cu DIG_GND ala, dar nu i-am dat de cap. Pe internet sunt foarte limitate informatiile referitoare la acest tip de aplicatie.

Am incercat alimentarea separata a TDA-ului si atat, fara rezultat, dar neavand separatia maselor, deci probabil degeaba.

Am atasat o imagine cu PCB-ul, nu imi dau seama exact ce mase ar trebui sa separ de celelalte. Pe langa ce se vede pe cablaj, mai sunt legate la Arduino un led, un encoder, un buton, si o placa cu relee comandate prin optocuploare, toate acestea avand masele/alimentarile comune.

Am tot citit despre separatia maselor digitale de analogice, iar parerile sunt impartite, sau nu am inteles exact situatiile in care e ok sa fie separate si cele in care e ok sa nu fie separate.

 

Daca am inteles bine, ar trebui sa fac o alimentare + masa care sa lege Arduino, ceasul, modulul radio, led-ul, encoderul, butonul, placa cu relee (?) plus pinul DIG_GND al TDA-ului si o alta alimentare + masa care sa lege TDA-ul cu pinul A_GND, componentele pasive din jurul lui si semnalele analogice (audio / masa lor)?

Modulul radio are 2 pini GND, unul pe partea cu alimentarea si comunicatia I2C si altul pe partea cu iesirile audio si antena. Ar trebui sa intrerup si legatura dintre ele, banuiesc?

post-247558-0-48603000-1436357187_thumb.jpg

Editat de Gabriel Alin Voicu
Link spre comentariu

Salut,

Da, asa ar trebui sa incerci. Arduino + ceas + led + encoder + buton + placa cu relee + pinul DIGGND cu o alimentare (momentan as scoate modulul radio din schema pentru ca nu stiu cum sunt conectate "masele", cu ce C.I. este construit, ar trebui consultat datasheet-ul, etc. ). Apoi cu o baterie de 9V alimentezi TDA-ul cu "+" la pinul 3 si "-" la AGND si componentele pasive din jurul lui.

Trebuie in principiu sa intrerupi pinul 29 de pe cablaj sa sa pui un strap catre Arduino. Trebuie sa urmaresti traseele cu atentie sa vezi ce trebuie intrerupt.

Am vazut pe cablajul tau ca alimentezi TDA-ul cu 5V. Din datasheet reiese ca ar fi recomandata o tensiune de alimentare de 9V ...

 

Bafta !

Link spre comentariu
Vizitator Gabriel Alin Voicu

Salut,

 

Am verificat deja unde trebuie intrerupt, ar trebui sa fie ok de test pana refac cablajul.

Modulul FM este cu Philips TEA5767, din datasheet-ul integratului nu imi dau seama exact, dar in toate schemele cele doua mase sunt legate impreuna. O sa masor sa vad exact cum e pe placuta, il las deoparte oricum pana una alta.

In datasheet-ul TDA-ului, la nota de subsol scrie ca este ok sa fie alimentat la 5V dar sa nu scada la 4V. L-am alimentat la 5V cu gandul sa nu afecteze comunicatia I2C, celelalte module fiind alimentate la 5V. Acum imi dau seama ca nu am gandit corect si ca nivelul logic nu ar trebui sa aiba vreo treaba cu alimentarea.

Proiectul pe care am vrut sa il fac este luat de aici: http://www.instructables.com/id/Arduino-Powered-Gainclone-amplifier/. Cablajul este acelasi, eu doar l-am refacut pentru dimensiunea componentelor mele, plus alte mici preferinte. Alimentarea TDA-ului o are tot la 5V, si masele comune, dar a folosit un display fara i2c si probabil nu a sesizat amestecarea semnalului digital cu cel analogic. Codul pentru arduino postat in articol nu a fost functional, a trebuit "reparat", observ ca nici partea hardware nu e prea functionala...

 

O zi frumoasa,

Link spre comentariu
Vizitator Gabriel Alin Voicu

Am incercat si separarea maselor si alimentarilor. A scazut foooaaaarte putin amplitudinea acelor bip-uri.

 

Dar la un momentdat am observat ca daca apropii mana de cablaj intr-o zona, bipurile se amplifica foarte mult. In final am descoperit, linia SDA care trece cam la 6-7 mm de borna condensatorului de 5.6 nF legat la pinul TREBLE R al TDA-ului. Asa ca am intrerupt traseul respectiv, de fapt l-am scos pe tot sa fiu sigur si am legat un fir ca sa fie mai la distanta.

Acum, cel mai apropiat traseu SDA este la 13-14 mm de condensator. Sunetul deranjant s-a diminuat extrem de mult, cel putin cel care se auzea odata cu punctele ceasului.

Tot asa am observat ca daca apropii un deget de SDA si altul de pinii responsabili cu referinta treble/mid/bass, pot "face" bip-urile sa se auda si pe frecvente medii sau joase.

Ce este acest fenomen care apare in jurul traseului SDA? Formeaza un camp electromagnetic sau este vorba de altceva?

 

Voi reface cablajul astfel incat sa duc cat mai departe orice traseu SDA, problema este ca pe capsula TDA-ului pinul SDA este la 10mm de pinul TREBLE. Fenomenul poate aparea din cauza traseului de pe cablaj, sau si apropierea pinului va face aceeasi problema? Va fi suficient sa mut pe cablaj traseul mai departe, sau sunt si alte masuri pe care le pot lua (poate sa nu mai fac deloc traseul pe cablaj si sa folosesc un cablu, cu un inel de ferita, habar nu am)?

Ma bucur totusi ca am prins "infractorul" :)

Editat de Gabriel Alin Voicu
Link spre comentariu

Asa cum spun colegii mai sus Atentie mare cu AGND si DGND. Ele trebuiesc clar intr-un singur punct aproape de alimentare! pentru a evita diverse bucle de masa si interferente. TDA7439 l-ai alimentat la 5V, asa am inteles de mai sus? II trebuie 9V. Mai poti incerca 2 chestii 1. - rezistorii de pull-up de pe i2c sa le micsorezi la 2,7k sau 2,2k. 2. - in soft incearca sa ii maresti frecventa la care lucreaza comanda i2c. O alta verificare mai trebuie facuta si la amplificatory, sau probat controllerul pe alt amplificatory pentru a te asigura ca nu sunt bucle de masa care au aparut in momentul conectarii controllerului. TDA7439 e destul de sensibil la interferente...dar odata ce problemele se rezolva te va in"canta", ba chiar poti sa faci teste prin tatonarea condensatorilor si rezistente de pe filter, pentru a schimba frecventele de reglaj.

Editat de Ionut Remus
Link spre comentariu
Vizitator Gabriel Alin Voicu

Multumesc mult pentru raspuns!

 

Am alimentat la 5V cu gandul sa fie alimentat la fel cu celelalte componente care comunica pe i2c, fara sa citesc prea mult inainte, si sa imi dau seama ca nivelul logic nu are treaba cu alimentarea propriu zisa. Am testat cu diverse rezistente de pull-up si m-am jucat si cu frecventa comunicatiei, cea din urma afectand doar frecventa sunetului.

 

Problema este la proiectarea cablajului, nefiind experimentat, nu am mai facut un cablaj de 10 ani, si nici atunci nu am facut prea multe, de fapt cred ca este cam primul pe care il "gandesc" relativ de la 0. Nu am respectat nici o regula de proiectare a cablajelor. Masa este una singura reprezentata de un traseu de 0,8 care pleaca de la alimentare si leaga toate punctele de masa cumva, intr-o ordine aleatorie, ba digital, ba analogic. Nu am facut o separatie clara intre componentele digitale de analogice, liniile SDA si SCL fiind duse fix pe langa condensatorii de reglaj ai inaltelor, intre ele fiind doar un traseu de masa prost facuta. De fapt, a fost intamplator sa se auda bip-uri doar cand cresteam inaltele, condensatorii acestora fiind cel mai aproape, dar daca ating condensatorii de medii si joase, pot "face" sa se auda sunetul si in medii si in joase.

 

M-a incantat deja TDA-ul, daca scadeam putin inaltele, sunetul disparea, liniste totala. Abia la volum maxim se aude putin fasait. Reglajele frecventelor au o plaja mare, se aude superb (dupa urechea mea, cel putin). Probabil o sa experimentez un pic cu filtrele de bass, as vrea sa il mai cobor un pic, dar e ok si asa, macar sa scap de probleme intai.

 

Cu acestea in minte, lucrez acum la un alt cablaj, va anunt ce a iesit!

Editat de Gabriel Alin Voicu
Link spre comentariu

Ca regula de baza, toate liniile digitale trebuie sa fie cit mai departate de traseiele analogice, asta pe linga un traseu de masa bine ales. Traseiele trebuie sa nu aiba unghiuri drepte ci la 45° sau rotunjite (radiaza si capteza mai putin zgomot).  Rutarea ai facut-o manual sau cu autoroute (se vad traseie care par facute de autoroute). Pt masa foloseste traseie mai groase.

Eu la DAC-ul proiectat de mine am preferat sa fac izolare galvanica totala (cu optocuploare pt comenzi si ceva asemanator dar mai rapid la liniile da mare viteza, gasesti pe forum poze) pt a minimiza toate bizdiganiile care ar putea fi introduse de prelucrarea digitala.

 

O alta recomandare este sa micsorezi cit mai mult slewrate-ul semnalelor digitale. Nu am timp sa stau acum sa studiez in amanuntime functionarea la I2C ca sa pot sa-ti dau o solutie completa dar o varianta este sa inseriezi niste rezistente de valoare mica (SMD de 4.7Ω÷33Ω) direct pe pinii de comunicatie de la fiecare integrat si pui tot cit mai aproape de fiecare pin de date, dar dupa rezistenta, cite un condesator de citiva pico spre masa digitala a aceluiasi integrat (4.7p÷100p pt ca ajuta la scaderea slewrate-ului). Daca apar erori din cauza ca nu se mai respecta nivelele logice (pinii de comunicatie sint open-drain) poti incerca cu ceva bobine SMD mici ca valoare sau macar niste perle de ferita tot SMD .

 

Cu cit sint mai rapide semnalele digitale (slewrate mai mare) cu atit vor radia (bruia) intr-o banda mai larga, si de asemeni, cu cit curentii sint mai mari cu atit radiatia va fi mai puternica. De aceea recomandarea mea este sa maresti rezistentele de pull-up nu sa le micsorezi cum au recomandat alte persoane.

Editat de sesebe
Link spre comentariu
Vizitator Gabriel Alin Voicu

Salutare,

 

Am refacut cablajul, nu pot posta imaginea acum, o voi posta maine.

In principiu, am facut masa mai mare, si am departat foarte mult traseele bus-ului de condensatorii care se ocupa de reglajul inaltelor. Am adaugat un condensator ceramic de 0,1 uF la alimentarea TDA-ului.

Rezultatul este acelasi! nici o diferenta.

Am scos toate functiile LCD-ului din soft, si atunci a disparut orice urma de sunet, indiferent daca LCD-ul era fizic sau nu conectat. Daca scot LCD-ul fizic, dar in soft este inca activ, sunetul tot se aude, dar mult, mult, mai incet.

Acum am adaugat un condensator de 0,1 uF si pe alimentarile celorlalte module, iar sunetul parazit s-a redus simtitor cand l-am adaugat alimentarii LCD-ului. Dar, desi a scazut in "volum" tot mai este un pic. Este gresit aleasa valoarea de 0,1 nF?

Inca ceva, condensatorii de pe partea analogica, cei cu reglajul inaltelor etc, sunt toti poliester, dar nu sunt la fel, deoarece nu am gasit intr-un singur loc. Cei mai afectati, cei de inalte, arata exact ca acestia: https://www.google.ro/search?q=5.6+nf+capacitor&safe=off&biw=1920&bih=969&source=lnms&tbm=isch&sa=X&ei=QNCiVcfeHKbU7AaNk4LYDA&ved=0CAYQ_AUoAQ#imgrc=0as-XzQz-Sgj7M%3A

Ceilalti, sunt din aceia de plastic, paralalelipipedici. Este posibil ca acei condensatori verzi sa fie mult mai sensibili la captat interferente decat cei din plastic?

Tind sa cred ca aceste interferente sunt captate pe calea aerului, intrucat daca pun un deget pe un SDA, iar cealalta mana o plimb in jurul lor, interferentele se amplifica. Nu este nevoie sa ating ceva, doar sa ma apropii de ei, indiferent pe care parte a cablajului.

Mai pun aici si cateva detalii constructive, poate au si ele vreo importanta. RTC-ul, radio-ul si TDA-ul sunt legate la SDA/SCL prin cablaj. Pe liniile SDA si SCL plus o masa si o alimentare sunt montati 4 pini, din care pleaca fire spre LCD. Aceste 4 fire fac parte dintr-un manunchi care ajunge la panoul frontal ce contine LCD-ul, encoderul, un push button si senzorul IR. Toate aceste fire sunt din acelea subtiri, colorate sub forma de panglica.

 

@sesebe: Acum am marit foarte bult distanta intre digitale si analogice, dar degeaba. Pe vechiul cablaj, erau niste legaturi facute cu autoroute, cele de la pinii I/O ai Arduino catre pinii de legatura dupa cablaj. Acum i-am facut manual, ca sa nu le mai faca 10.000 de curbe autoroute-ul. Daca izolez complet cele doua parti, radio-ul, cel putin, nu mai functioneaza. Deci e clar ca trebuie sa mearga asa. Am incercat frecvente ale comunicatiei intre 5 si 1000 kHz. La 800 si 1000 anumite module nu functionau. Intre 5 si 600 functioneaza toate, dar singurul efect este pitch-ul sunetului respectiv, asa ca am lasat la 100 kHz, cum era initial. Mi-ar trebui o viteza mult mai mare ca sa scot sunetul in afara spectrului audibil. Am pus rezistente pe intrarile i2c ale TDA-ului, de 50 ohm, dar fara condensatori. Asa mai citisem prin alte parti, esti primul care imi zice si de condensatori. Am mai incercat aceleasi rezistente si la alte module, nici o diferenta. Am incercat si rezistente de pull-up intre 2K7 si 10K, si fara rezistente, nici o diferenta.

 

 

edit: am adaugat si imaginea cablajului

 

 

post-247558-0-91383900-1436735470_thumb.gif

Editat de Gabriel Alin Voicu
Link spre comentariu

Nasol.

 

Vezi ca nu-i chiar asa de usor sa combini pe aceeasi placa si digital si analogic....mai ales daca nu ai experienta suficienta in realizarea cablajelor.

Mai citeste si vezi cum ii cu masa digitala si cu masa analogica si cum trebuie conectate.

 

Pe cablajul pe care l-ai pus mai sus ai facut o varza intre ele.

La tuner ai doua conexiuni de masa, cea de linga iesireile audio este masa analogica iar cea de linga SDA si SCL este masa digitala.

La fel si la TDA ai doua mase digitrala si analogica. masele astea doua merg prin traseie separate pina la bonele de alimentare unde se unesc pe pinul condesatorului de filtraj. Asta TEORETIC pt ca practic este posibil sa trebuiasca sa faci mai mult de atit.

Editat de sesebe
Link spre comentariu
Vizitator Gabriel Alin Voicu

Experienta 0.

Dar, totusi, asa fara experienta, daca scot LCD-ul se aude ca lacrima.

Am scris mai sus, si mi s-a parut un pic ciudat: a mers si fara rezistente de pull-up (cele integrate in arduino fiind dezactivate, am modificat libraria). A mers fiind toate modulele conectate. Am incercat fara rezistente de pull-up si fara LCD si surpriza: nu mai merge nimic, nici macar led-ul de pornire (care este un bicolor) nu se mai aprinde. Deci backpack-ul i2c atasat LCD-ului contine si niste rezistente de pull-up, care nu ii fac tocmai bine, se pare. Trebuie sa mai studiez problema asta, sa vad care sunt alea si sa i le scot. Am impresia ca o sa am o surpriza, numai sa reusesc sa le identific...

Link spre comentariu

Salutare,

Incearca sa scoti din montaj (fizic) modulul RTC si radio cat si din program. Sa ramana decat Arduino, display-ul si TDA-ul.

Vezi daca mai apare acel sunet.

 

Succes!

 

Ce model de LCD folosesti? Nu sunt cam multi pini "legati" la Arduino? Nu este LCD compatibil HD44780?

Editat de Sigisman
Link spre comentariu
Vizitator Gabriel Alin Voicu

Cu modulele RTC si radio scoase fizic totul este perfect la fel. Din soft nu am incercat.

Insa sunetul dispare atunci cand scot fizic/din soft LCD-ul. Deci el e de vina.

LCD-ul este 20x4 cu HD44780, insa este legat la un expander i2c cu PCF8574. Ambele Made in China. Prin el, LCD-ul se conecteaza la i2c.

Pinii arduino sunt legati la o bara cu pini, ca sa fie accesibili. Pe ei sunt legate encoderul, butonul, ir-ul, led-ul si niste relee (tot un modul, relee comandate prin optocuploare, deci nu au treaba). O parte din ei sunt liberi, pentru eventuale viitoare necesitati. LCD-ul nu are treaba cu acesti pini.

Incerc sa gasesc / indepartez rezistentele pull-up ale LCD-ului si vad ce se intampla. Banuiesc ca nu e tocmai ok sa fie rezistente de pull-up anapoda si de mai multe ori de-a lungul liniilor.

Am impresia (nu stiu inca sigur) ca pot modifica si adresa pe acest expander, nu stiu cum inca, dar poate ajuta.

Link spre comentariu

Eu ma refeream la primul cablaj postat.

Dar chiar si la cel de-al doilea inca nu ai respectat toate regulile pt integrarea pe aceeasi placa a circuitelor analogice cu cele digitale. 

Traseiele de la circuitele analogice trebuie sa fie cit mai scurte. Nu te ajuta ca ai pus condesatorii departe cit timp ai traseie foarte lungi ca sa-i conectezi. Poti sa faci un traseu gros de masa care sa inconjoare cit mai mult partea cu TDA-ul, iar pe acest traseu sa poti lipi eventual un mic ecranaj. Acest traseu trebuie sa fie conectat la masa analogica.

 

Cauta pe net reguli de trasare la placi combinate analogic/digital.

 

TDA-ul de unde e alimentat? Alimentarile trebuie sa fie complet separate (daca se poate) sau macar sa nu circule curentii de alimentare de la digital prin traseie comune si pt analogic, si plusul si GND trebuie sa fie separate.

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