Momenteel ben ik een project aan het overnemen waarbij ik te maken heb met een A/D converter met als output de volgende aansluitingen heb
SDOUT,SCLK en LRCK. Dit is voor mij nog totaal onbekend en is het de bedoeling dat ik deze digitale audio informatie begrijpbaar kan maken voor een Atmel 32.
Het idee van het project is een soort van PIEK audio meter meter maak waarmee ik met de uitgang van de A/D converter kan inlezen in de Atmel en vertalen naar
een signaal voor mijn display die met I2C werkt.
Mij probleem op dit moment is kan ik rechtstreeks de bovengenoemde audio aansluitingen aansluiten op mijn Atmel en deze inlezen. Zo ja hoe doe ik dit.
Wie kan mij verder helpen.

Gert

Het lijkt me meer een digitaal danwel software als een audiovraagstuk. Wil je een move ?

Als ik met niet vergis is dat I2S

Ja Aart,
Misschien inderdaad wel handig om deze te verplaatsen ook naar het digitale forum onderwerp.

De display werkt echter volgens het I2C protocol en niet I2S
echter lijken deze op elkaar wat naam betreft maar ik ben wel bewust van de verschillen ;-)

Gert

Ok Move -> Digitaal

Over welk IC praten we btw?

Op 27 juni 2006 11:09:06 schreef Bertrix:
Als ik met niet vergis is dat I2S

je vergist je niet.

ik vrees dat je cpu een beetje te traag gaat zijn voor dat doel.
de I2S interface is zeer snel. je hebt een processor nodig die de nodige hardware aan boord heeft voor dat protocol, en meestal zijn dat alleen straffe DSP's.

op opencores www.opencores.org. kan je de code downloaden die dergelijke interface in een FPGA plakt.

http://www.opencores.org/projects.cgi/web/i2s_interface/overview

LRCK is een signaal wat aangeeft of het linker of rechter kanaal verzonden wordt.
SDOUT is het TDM signaal en de CLk syncroniseert ganse de boel.

die klok draait op 2.5 MHz of hoger. en de cpu MOET volgen. een transitie op LRCK geeft aan dat een nieuwe frame begint op de VOLGENDE clockpuls ( ze zijn 1 clock verschoven ). De framelengte is veranderlijk en hangt af van welke dac je gebruikt en ook de bit volgorde kan veranderen ( MSB eerst of LSB eerst )

Hoeveel bits , welke clockrate en bit volgorde kan je uit de datasheet van de A/D halen.

dat vu meterke maken is dan simpellweg gewoon de data payload pakken , daarvan de piekwaarde noteren en een gemiddelde maken van de laatste n nummers.

ik zou dat in een FPGa duwen en de cpu die laten uitlezen.
je kan die averaging simpel doen in een fpga door een cyclic buffer te maken van een macht van 2 , die op te tellen bij elkaar en dan gewoon het laatste aantal bits eraf te gooien

stel een average die 8 samples averaged.

8 registers met een 8 kanaal adder erachter. de laagste 3 bit smijt je dan in de vuilbak ( 2^3 )=8 dus dat komt overeen met delen door 8. ( shift right met 1 positie is delen door 2. als je 3 keer shift deel je door 8 )

en de pieknoter is ook simpel. een comparator die elke nieuwe waarde vergelijkt met een 'storage' waarde.
als de nieuwe waarde hoger is wordt de storage geupdated.

de storage is zelf gemaakt als een af-teller. die wordt met een vaste clocksnelheid naar beneden geteld. ( zo maak je een terugvallende piekindicator. de response kan je regelen door de cloksnelheid te regelen.

als resultaat zul je dus 4 register hebben : gemiddelde links , gemiddelde rechts en piek links en piek rechts.

nu wordt het heel erg simpel om dat op dat display te zetten.

als je nog plaats over hebt in die fpga plak je daar direct ook een cpu core bij in en de i2c interface ook.

Je wil dus alleen de piek weten.......
Heeft de Atmel 32 geen analoge ingangen?
Zet een laagdoorlaat RC filtertje voor je AD converter en je kunt dat klusje klaren.