TDA7313 Audio procesoriaus valdymas AVR mikrokontrolerio pagalba
Įvadas
Nors TDA7313 yra ganėtinai senstelėjusi mikroschema, tačiau vis dar sėkmingai naudojama. Audio procesorius pasižymi neblogu valdomų funkcijų rinkiniu, taip pat jai būdingi nedideli iškraipymai bei žemas triukšmo lygis. Audioprocesorius puikiai tinka automobilinėj garso aparatūroj, bei kitose HI-FI prietaisuose įskaitant ir mikšerius.
TDA7313 mikroschema turi programiniu būdu pasirenkamus 3 stereo įėjimus ir 4 išėjimus LF, LR, RF, RR. Kiekvieno įėjimo kanalo slopinimas gali būti reguliuojamas programiškai (įskaitant Loudness funkciją), atitinkamai kiekvieno išėjimo slopinimas taip pat gali būti paderinamas. Tokiu būdu galima suderinti sistema optimaliam skambėjimui. Čia taip pat numatytas garso lygio reguliavimas 1.25dB žingsniu, BASS ir Treble kontrolė. Visas audioprocesoriaus valdymas vyksta naudojant I2C (TWI) prievadą. AVR Atmega8 mikrokontroleris tam puikiai tinka.

Aprašymas
Pagrindinė šio projekto mintis buvo sukonstruoti paprasta, universalų su intuityviu valdymo audioprocesorių, kurį daug negalvojant būtų galima jungti prie bet kokios sistemos – ar tai būtų stiprintuvas, ar tai būtų aktyvios kompiuterio kolonėlės ar mikšerinis pultas. Svarbu kad audio procesorius veikia kaip atskiras prietaisas kuris priima signalą, jį apdoroja ir siunčia toliau. Valdymas atliekamas 5 mygtukų pagalba, o valdymo informacija pateikiama 2X16LCD displėjuje.
Labiausiai norėjosi padaryti prieinama visą audio procesoriaus funkcionalumą paprastu ir intuityviu valdymu.
Schema ir PCB plokštė
Schema buvo pasirinkta tokia pati kaip ir TDA7313 aprašyme. Gal būt precizinių elementų elementų pasirinkimas ir įtakotų kokybę, tačiau į tai dėmesys nebuvo kreiptas.
Kuriant PCB didžiausias dėmesys buvo kreipiamas į Analoginio ir skaitmeninio signalo takelių bei analoginio ir skaitmeninio GND atskyrimą. Būtent šis faktorius daugiausiai įneša triukšmo į naudingą signalą.

Pati plokštė suprojektuota viename sluoksnyje. Todėl ją nesunku pagaminti namų sąlygomis.

Realus plokštės vaizdas

Programos rašymas
Sunkesnė užduotis – programos rašymas. Pirmiausia buvo mintis LCD ekrane atvaizduoti decibelus skaitmeniškai, pvz, Volume -21dB. Tačiau galiausiai nusprendžiau panaudoti progress bar funkcija ir atvaizduoti parametro dydį grafiškai. Tai ne tik patraukliau atrodo, bet ir paprasčiau suprantama. Kaip minėjau pagrindinis tikslas visų galimų parametrų valdymas. Taigi parametrai ir jų ribos:
-
Garsas(Volume) [-78.75dB to 0dB] + Mute;
-
BASS [-14dB to 14dB];
-
Treble [-14dB to 14dB];
-
Įėjimai [Ch1, Ch2, Ch3];
-
Įėjimo lygis [0dB to +11.25dB] +Loudness;
-
LF išėjimo slopinimas [-38.75dB to 0dB];
-
RF išėjimo slopinimas [-38.75dB to 0dB];
-
LR išėjimo slopinimas [-38.75dB to 0dB];
-
RR išėjimo slopinimas [-38.75dB to 0dB];
Parametrų valdymui puikiai tinka linijinis meniu kai viršutinėje LCD eilutėje vaizduojamas parametro pavadinimas, o apatinėje parametro lygio indikatorius. Meniu modelis:

Meniu valdymas atliekamas specialiai išdėstytais mygtukais:

Apie patį valdymą nėra daug ką ir rašyti, nes manau pakankamai intuityvu. [UP] ir [DOWN] mygtukai skirti vaikščioti po meniu, o [+] ir [-] skirti esamo parametro keitimui. Jeigu parametro keitimo mygtukas laikomas nuspaustas ilgesnį laiką tai parametras tolygiai keičiasi automatiškai.
[Mute] mygtukas atlieka dvejopą funkciją. Jeigu aktyvus meniu yra Volume, tai nuspaudus [Mute], garsas yra išjungiamas ir meniu lieka neaktyvus kol Mute nėra išjungiamas pakartotinai paspaudus [Mute]. Kai aktyvus meniu yra Input gain, tai mute paspaudimas įjungia Loudness funkciją aktyviam įėjimo kanalui. Mute ir Loudness nustatymai matomi Volume meniu kaip MT ir LD indikatoriai.
Jeigu norite išbandyti meniu veikimą, tai galite parsisiųsti Proteus simuliatoriaus failą kartu su hex byla (Meniu simulatoriaus bylos). Hex byla turi būti užkraunama į modelį. (išbandyta su Proteus 7.1 SP2)
Audioprocesorius išsisaugo paskutines parametrų reikšmes EEPROM atmintyje praėjus apie 10s po paskutinio parametro keitimo. Todėl kas kart įjungus audioprocesorių, bus atsimenamos paskutiniai nustatymai.
Išvados
Kiek išbandžiau viskas veiki. Bandydamas adioprocesorių į įėjimą padaviau garsą iš MP3 grotuvo o išėjimą pajungiau prie aktyviu kompiuterio garsiakalbių. Maitinimą ėmiau iš kompiuterio maitinimo blogo, tad apie kokybę nelabai ka ir pasakysi. Jeigu jungsite garsiakalbius prie audioprocesoriaus išėjimo be tarpinių stiprintuvų – tai garso negirdėsit, nes išėjimas tiri būti jungiamas prie didelės įėjimo varžos prietaiso, pvz., stiprintuvo.
Programos kodas nėra optimalus, nenustebčiau jeigu ir kokia klaida išlįstų, tačiau pirmieji bandymai parodė, kad visų funkcijų valdymas veikia. Jeigu kas norės pasigaminti šį prietaisą -komentarai, klaidų pastebėjimai visada laukiami.
Projekto bylos(Eagle projektas+WinAVR projektas+TDA7313.hex).
- 3100 reads
Komentarai
Gal gali mestelt programa
Gal gali mestelt programa ASCII formatu ?
Truputi nesupratau kodel
Truputi nesupratau kodel reikia programos ASCII formatu. Yra Archyve C kodas, sukompiliuotas hex failas, kuris gali buti konveruojamas i .bin jeigu reikia.
Gal gali paaiškinti kaip
Gal gali paaiškinti kaip reikia atskirti skaitmenini ir analogini GND?
Na keliais žodžiais čia
Na keliais žodžiais čia labai nepaaiškinsiu. Aišku nesu specialistas tame reikale, bet vistiek yra bendri principai kurių laikantis galima žymiai išvengti triukšmo:
1. Stengtis atskirti analoginę žemę nuo skaitmeninės. Patogu kai yra daroma dvipusė plokštė. Šios žemės gali būti trapusavyje sujungtos mažos varžos rezistoriumi;
2. Stengtis kad skaitmeninio signalo takeliai nesikirstu su analoginiais. Analoginė dalis turi būti visiškai atskirta nuo skaitmeninės (atskiras regionas plokštėje). Paimk bet kokį mikrokontrolerį kad ir Atmega8 QFP korpuse ir pamatysit kaip graziai analoginiai išvadai yra viename kampe. Neatsitiktinai tiap.
3. Stengtis kad žemės būtų kuo solidesnės. Vėl gi esant daugiasluoksnei plokštei paprasta užduotis, o vienpusei sunkiau įgyvendinama. Tai aiškinama tuo, kad kuo žemės takeliai storesni, tuo mažesnis jų impedansas, tuo mažesnis elektromagnetinis spinduliavimas dėl įtampos kritimo.
4. Reikia stengtis kad analoginiai ir skaitmeniniai takeliai neitų lygiagrečiai plokštėje. Vien dėl to kad nepasigautų vienas nuo kito triukšmo.
5. Na ir paskutinė taisyklė būtų ta jog trasuojant plokštę reikia atidžiai kad nebūtų GND uždarų ciklų. Žemė turi šakotis tarsi medis iš vieno taško.
Šiame audioprocesoriuje stengiausi atskirti skaitmeninę ir analoginę dalį, kaip pavyko - patys matote :)
Neveikia LD laudnes. kai
Neveikia LD laudnes. kai nuspaudi tai dingsta garsas. Ar programa pats rasei? kaip padaryti hex faila paciam?
gal zinai kokia schema kad
gal zinai kokia schema kad mp3 info isvestu i LCD. Kad ir dainos laikas ir tekstas butu rodomas?
Programą pats rašiau, pas
Programą pats rašiau, pas manes Laudness veikia kai testavau. Laudness nusistato toj meniu vietoj kur pasirenki Audio kanalą. Tada spaudant Mute mygtuką LD junginėjasi. Hex failas yra projekto archyve. O jei nori pats kompiliuoti, Ta reikia daryti su WinAVR programa.
......
Del MP3 info tai kaip suprantu nori nuo winamp nuskaityti. Tai pasieskok paprastos jungimo schemikes prie LPT (http://lcdsmartie.sourceforge.net/circuits.htm) ar net USB porto. O valdymas ten su LCD smartie (lcdsmartie.sourceforge.net) ar kita panašia programa vykdomas.
jo jo tai taip , spaudziu
jo jo tai taip , spaudziu ten kur yra audio chanels, uzsidega LD bet izkarto uzsimutina. Na nzn klaida kur gali buti juk schema tai paprasta.
hm man yra noras padaryti sudetingiau, kad nuo nesiojamo grotuvo rodytu info. beje gal padetum su programavimu ? man reikia nemokamos programos kad pradziai paprastai issiaiskinti kaip sukompiliuoti. winavr ir avr studio bandziau bet kolkas nesupratau kur yra hex, kai pradedavau make all tai kazko neranda ir fsio :D
Programa reikia kompiliuoti
Programa reikia kompiliuoti su WinAVR. Gal gali konkrečiau kokias klaidas ten meta. Ka tik išbandžiau perkompiliuoti - be klaidų. Jeigu šviežiai susiinstaliavai WinAVR taiperkrauk kompa, galil buti kad sisteminiai kintamieji nebuvo detektuoti. Jeigu vistiek neina, tai mestelk kokios klaidos ... žiūrėsim.
gaila dabar ne namie , o
gaila dabar ne namie , o darbe, tai neturiu po ranka LCD , BET atsimenu kad gliukas toks buvo: kai nuspaudi LD uzsiziebia viskas gerai, bet garsas pradingsta ir tada kai eini per meniu tai rodo hieroglifus visokius ё?*?%%;"№"№!№!"Ё№. tada nuemu LD ir vel viskas gerai.
Siaip turiu du norus is taves : kad padetum pamodifikuoti programa biski, nes man pvz nereikia RR ir LR kaip juos panaikinti? gal galima padaryti tada tik viena punkta balance for LF ir RF. kitas noras ismokti programuoti paciam. Tik nenoriu cia tersti diskusijos ne i TEMA !! :)
Šitą audioprocą dariau
Šitą audioprocą dariau norėdamas padengti visą jo funkcionalumą. Aišku specifiniams reikalams to yra per daug. Turėtų būti nesunku modifikuoti į paprastesnį variantą.
Tada siūlau persikelti i forumą ir ten gvildenti tą reikalą.
http://diskusijos.dreifas.net/viewtopic.php?t=178&start=105&postdays=0&p...
Re: TDA7313 Audio procesoriaus valdymas AVR mikrokontrolerio pag
Kuris kuri...?
http://www.scienceprog.com/avr-based-tda7313-audio-processor-control/
Sveiki, sorry esu truputeli
Sveiki, sorry esu truputeli zhialias todel domina keli klausimai del zhemes. Mazhdaug priesh kelis men pasidariau shita projekta, viskas veikia +/- puse bedos, tik kai pajungdavau ishsipuzdavo dinamikas, nes pastoviai tekedavo apie 0.2V. Ir apskirtai nelabai zhinau kaip junkti zhemes, yra 3 maitinimai nuo AVR kontrolerio +|-5 nuo TDA7313 +|- 9 bei signalo iejimas +|- dabar idomu kaip jukti visus minusus, taprasme kurie skaitos kaitmeniniai kurie analoginiai, kiek suprantu skaitmeninis tai nuo AVR microcontrolerio, o kaip tada sujunkti koloneliu bei iejimo ir 9V minusus ar i kruva ar tai tik iejimo bei ishejimo (kolonkiu) - turi but kruvoj o 9V minusas i digital.. ar kaip..
Isanksto dekui, bei atsiprasau uz toki zhalia klausima.
S.O.S reikia kad padarytum
S.O.S reikia kad padarytum (perkompiliuotum programke) .
Man reiktu kad:
1. Vietoj atskiru LF RF, kad butu priekinis stereo reguliuotusi t.y. kaip paprastas balansas su viena meniu funkcija balance .
2. Vietoj atskiru RL RF. kad butu pavadinimas BASS ir jie vienu metu reguliuotusi. t.y. kaire ir desine vienu metu, kad butu galima prie subo prijungti. stipriakas su stereo iejimu uztiltintas.
AR aisku ? :)
paciam sunku padaryti nes neikertu kaip .
Gaunasi biski "custom"
Gaunasi biski "custom" programavimas. Laiko turiu neperdaugiausiai be to nebeturiu pačios plokštės kad būtų galima išbandyti.
Realiai 2. variantas turėtų būti labai paprastai sutvarkomas - sukelti RL ir RF i viena meniu funkciją o 1. reikia pertvarkyti meniu kazkiek. Su geru noru padaromas dalykas. Pabandysiu laiko turėdamas.
P.S. Tai bandai pajungti šį audioprocesorių į darbą. pasidalink mintimis kaip ten realizuoji. Įdomu gi ;) O jei dar aprašymą kokį nepatingėtum parašyti šiam puslapiui - tikrai labiau pasistengčiau padėti su programa :)
tai vat kad nezianu kaip
tai vat kad nezianu kaip pasidaryti, nes ankciau tai dar kazka pats programinau, bet nebeprisimenu kaip tai daryti. Gal primink kokiu programkiu reikia? as turiu avr studio bet negaliu atitaryti main_elf , kazkodel nuluzta. Tai jeigu bendrom jegom as tau irgi padeciau. Tiesiog pasidares ankciau sia schema bet taip ir gulejo po lova. dabar nusprendziau pajungti i darba kad netinginiaustu :). VNZ. padarysiu nieko naujo 2.1 sistemike. Galeciau ir aprasyti, kai viska padarysiu :))) .
Programa rašiau su WINAVR
Programa rašiau su WINAVR Programmers Notepad. Norint kad eitu su AVRStudio biski reiketu projekto failus pertvarkyti. Bet kokiu atveju WinAVR reikalingas. pabandziau eprkompiliuoti koda - klaidu neismete.
O siaip manau damušim koda kaip nors. Bent su tuo balanse tavo pasiūlytas variantas skamba geriau nei kiekvieno išėjimo lygio reguliavimas. Tik kaip sakau apsunkina viska kad neturiu platos kur pabandyti.
Darykis hardwara - jei ka pakompiliuosiu ir siusiu tau tikrinti :). Diskusija galime perkelti i foruma - ten eina prisegti failus.
gerai tada, tik kaip
gerai tada, tik kaip parsisiusti is taves koda?
Naujausias kodas yra čia:
Naujausias kodas yra čia: http://www.dreifas.net/audioprocesorius-mikrokontroleris#comment-1101
Parsisiųsti gali tik registruotas vartotojas. Jei kils keblumu duok zinia.
isirasiau,bet nepasikeite ,
isirasiau,bet nepasikeite , ar reikia pasijunkti kalaskes kad pajusciau valdymo skirtuma?
MAn gi reikia meniu punkto balance ir subwoofer . :) beje, gal galima pabendrauti per skaipa?
Ten tame kode kol kas niekas
Ten tame kode kol kas niekas nepakeista - ta itik paskutine versija senojo, kuris turi teisingai veikti pagal seną įdėją. Su nauju taip greitai neis :) Permeciau akimis koda - reikia nemazai perprograminti - praktiskai atkrenta du meniu kuriuos reikia graziai ismesti kad negriutu visas kodas. Kitas dalykas balanso vaizdavimas - galvoju kaip protingiau ir greiciau realizuoti. Kai bus pirmas pakeistas variantas rimciau ziuresim. Sunku laiko rasti dabar - remontais apsivertes...
hm.. tai bent sakei kad gali
hm.. tai bent sakei kad gali lengvai padaryti kad reguliuotusi abu kanalai, tai man pradziai to pakaks. o kai turesi laiko likusia dali.
Pasistengsiu
Pasistengsiu
..........i am waiting :)
..........i am waiting :)
Palikim sita reikala iki 2009
Palikim sita reikala iki 2009 :D niekaip dabar neatsilaisvinu is darbu.
o kaip sukurti nauja tema ?
o kaip sukurti nauja tema ? :> nes noriu papoustinti keleta temu :)
Paprastai įeini i forumo temą
Paprastai įeini i forumo temą kurioje nori postinti ir viršuje spaudi Create new forumo tema :)
Sveiki, iskilo man problema
Sveiki, iskilo man problema (gal ne problema bet mano nemoksiskumas :| ) tai va, vargais negalais pasidariau as si audio procesoriu uzprogramavau, bet lcd ekranelyje nerodo nieko, t.y. pirmoj eilutej rodo juodus langelius (cia taip buna kj tarkim pajungi 3 koja i gnd). viska pertikrinau ir niekur neatradau jokios klaidos, tai itariu kad blogai uzprogramavau atmega. programavau taip: ponyprog->setup->interfeice setup->nustaciau programatoriaus tipa-> calibration->nuskaiciau atmega-> atsidariau tda7313.hex->write. Gal ka kitaip reikejo daryt? kamnors buvo taip? kame problema?
A tai gal ponas ir tikrai
A tai gal ponas ir tikrai plogai uzprograminote. :)
Koks programatorius?
sitas, va:
sitas, va: http://circuit.lt/?section=sch&page=avr.isp.lpt
gal kas galetumet parasyt
gal kas galetumet parasyt detaliau, kaip reik uzprogramuot?
dar bandziau programuot pagal
dar bandziau programuot pagal sita totoriala http://www.active-robots.com/products/controllr/atmel-avr/pony-prog-guid... ...bet vel gi nesekmingai/// ;(
paziurek cia ir nustatyk
paziurek cia ir nustatyk pagal tuos pony prog http://www.elektronika.lt/schematic/theme/67/21/
deja, nepadejo...ekranas
deja, nepadejo...ekranas tiesiog nereguoja :| ,ai dar pastebejau toki dalyka, kai pajungi apsvietima lcd, jis vos vos sviecia, pamatavus su testeriu rodo 3.5v o atjungus rodo 4.97v ... kazkokia nesamone cia... buvo sovus man tokia mintis kad kaltas lcd, tj nusprendziau pajunkti prie lpt, pajungus ir nustacius lcd smartie viskas veike idealiai...pertikrinau dar karta plokste ir visas varzas...viskas buvo gerai...
hm, :) man veikia . :) ieskok
hm, :) man veikia . :) ieskok klaidu toliau! beje mano lcd irgi sviecia nestipriai.
na ka, praejau su testeriu
na ka, praejau su testeriu visas atmegos kojales ir pastebejau kas 2 kojales nesiliecia prie plokstes, ryt pabandysiu prilituot ir tikekimes kad veiks :) , o del ekrano sviesumo, tj nuimk 500ohm varza ir uztrumpink tada svies normalei, arba koki potenca uzmesk, galesi reguliuot sviesuma ( as taip pasidariau ;) ...)
na ka, uzdejau daugiau
na ka, uzdejau daugiau lytmetalio ant koju atmegos pajungiau ir veikia :D ! Ryciukas dekui uz patarimus ;)
Kokie patarimai ? :D juk
Kokie patarimai ? :D juk sakiau viska patikrink !! siaip as pats neseniai sudejau viska i korpusa ir klausausi dabar :). Tik idomu ar pas tave nesnypscia kai atsuki max ant aukstu? nes kazkaip man atrodo biski per daug.
ar keiti ka nors kode?
ar keiti ka nors kode?
kode nieko nekeiciau, nes
kode nieko nekeiciau, nes nemoku, nors reiktu pakeisti is rr ir rl kanalu i viena uzvadinta subwoofer ar pan... klausyt dar nebandziau nes neturiu ant ko....reikia isigyt kodiku savajai sistemai kad pabaigt dalinai ja, bet vat kainuos jie 66lt :| ....
tai ir as prasiau dreifo kad
tai gal jei daugiau zmoniu
tai gal jei daugiau zmoniu atsiras norinciu kad pakeistu ta balansa ir padarytu subwoofer, gal jis ir padarys...esam jau du kuriems reikia to ;D
Entuziastai renkasi... :D ...
Entuziastai renkasi... :D ... koda sutvarkysim kaip nors. Man didziausias stabdis yra kad neturiu plokstes prie saves - sunku testuoti. O ir laiko dabar mazai turiu prisesti. Kaip matau dar turit ka veikti su stiprintuvo dalimi - softas sioks toks veikia patikrinimui kol kas.
pabandymui tj tikrai tinka,
pabandymui tj tikrai tinka, tiesiog nesinori kad kai bus stiprius padarytas tik tada valdyma tvarkyt....bandyt gi softa galima simuliuojant ji su proteus 7...
Na tai negali tiesiog
Na tai negali tiesiog pakeisti koda ir atsiusti emailu pvz as greitai patikrinu ir pasakau kas blogai. Nes taip nezinau kada ir prisesi...
dar greiciau butu per skype
dar greiciau butu per skype :)
Forume įdėjau kodo variantą.
Forume įdėjau kodo variantą. Pabandykit.
Skelbti naują komentarą