Digital Audio mit Mocrocontroller

Hi,

mir geht durch den Sinn, ein digitales Mikrofon zu bauen, das einen=20 AD-Wandler enth=C3=A4lt, der auch einigerma=C3=9Fen Aufl=C3=B6sung hat. M= ir ging durch=20 den Sinn, den Wandler in einem AVR zu nehmen, der ist allerdings nur mit =

10 Bit dabei. Wenn ich mir ein Ding von Crystal anschlie=C3=9Fen will,=20 brauche ich f=C3=BCr ein Stereosample eine Tiefe von 64 Bit, bl=C3=B6derw= eise,=20 denn das L/R-Signal braucht f=C3=BCr einen Pegelwechsel grunds=C3=A4tzlic= h 32=20 Bit-Takte, wobei nur die ersten 18 bis 24 (je nach Aufl=C3=B6sung) dann=20 g=C3=BCltige Werte haben. Gibt es Hinweise auf die Audiotauglichkeit des =

internen AVR-Wandlers, oder ist das wieder nur eine faule=20 Kompromi=C3=9Fl=C3=B6sung? Und hat jemand eine Ahnung, wie man dem Ding e= inen=20 DA-Wandler verpa=C3=9Ft? Die Schieberegister vom UART sind ja leider alle= nur=20

8 Bit tief...

Viele Gr=C3=BC=C3=9Fe, Holger

PS: L=C3=B6sung k=C3=B6nnte sein, einen DSP56002 zu nehmen und =C3=BCber = den AVR=20 steuern. Aber die Glue Logic h=C3=A4lt sich dabei nicht wirklich in Grenz= en.

Holger

Reply to
Holger
Loading thread data ...

Hi,

mir geht durch den Sinn, ein digitales Mikrofon zu bauen, das einen AD-Wandler enth=C3=A4lt, der auch einigerma=C3=9Fen Aufl=C3=B6sung hat. M= ir ging durch den Sinn, den Wandler in einem AVR zu nehmen, der ist allerdings nur mit

10 Bit dabei. Wenn ich mir ein Ding von Crystal anschlie=C3=9Fen will, brauche ich f=C3=BCr ein Stereosample eine Tiefe von 64 Bit, bl=C3=B6derw= eise, denn das L/R-Signal braucht f=C3=BCr einen Pegelwechsel grunds=C3=A4tzlic= h 32 Bit-Takte, wobei nur die ersten 18 bis 24 (je nach Aufl=C3=B6sung) dann g=C3=BCltige Werte haben. Gibt es Hinweise auf die Audiotauglichkeit des internen AVR-Wandlers, oder ist das wieder nur eine faule Kompromi=C3=9Fl=C3=B6sung? Und hat jemand eine Ahnung, wie man dem Ding e= inen DA-Wandler verpa=C3=9Ft? Die Schieberegister vom UART sind ja leider alle= nur 8 Bit tief...

Viele Gr=C3=BC=C3=9Fe, Holger

PS: L=C3=B6sung k=C3=B6nnte sein, einen DSP56002 zu nehmen und =C3=BCber = den AVR steuern. Aber die Glue Logic h=C3=A4lt sich dabei nicht wirklich in Grenz= en.

Holger

Reply to
Holger

Das kann man leicht ausrechnen. Auflösung, Samplerate und Linearitätsfehler sind ja schließlich dokumentiert.

Du brauchst dann bloß nach festlegen, welche Grenzfrequenz und welches SNR du haben willst.

Dann rechnest du das aus und guckst ob's reicht. Die nötigen Formeln sind sogar bei Wikipedia problemlos nachzuschlagen.

Er kann SPI mit 10MBit/s. Das ist genug, um sogar fünf digitale Audiokanäle in CD-Qualität aus einem externen Speicher zu lesen und an einen DA-Wandler auszugeben. Ach ja: die großen AVRs haben sogar zwei dieser schnellen SPI-Schnittstellen...

Reply to
Heiko Nocon

Heiko Nocon schrieb:

s

Das wird nicht das Problem sein.

60dB. Bi=DFchen wenig f=FCr eine gute Qualit=E4t.

nur=20

an

Das finde mal in diesem 20-seitigen Datenblatt. Zum SPI haben sie da nix =

weiter geschrieben, au=DFer, es sei via Port B erreichbar, und es gibt im= =20 ATMega1284 nur einen davon, da werde ich bohren m=FCssen.

Holger

PS: Ich habe nochmal ein 584 Seiten starkes Papier von Atmel=20 heruntergeladen. Mal sehen, was sie schreiben.

Reply to
Holger

Holgerschrieb: "

Lohnt sich das? Gibt doch fertige CODECs wie z.B. den UDA1345TS für 3 Euros bei DigiKey. Aber wenn Zeit und Geld keine Rolle spielen, kann man sicher auch einen AVR nehmen.

Dirk

Reply to
Dirk Ruth

Dirk Ruth schrieb:

Ich will nicht nochmals wie beim Diskettencontroller diskutieren: Jeder=20 stellt sein Lieblings-IC vor, und ich mu=DF mich rechtfertigen und=20 rechtfertigen und erkl=E4ren und rechtfertigen - will ich nicht.

Meine Frage wurde =FCbrigens bereits beantwortet.

Holger

Reply to
Holger

Dirk Ruth schrieb:

Du verwechselst den Codec mit dem Steuerrechner, neudeutsch Host. Man=20 kann den UDA134STS an einen Rechner anschlie=DFen, man kann aber auch ADC= =20 und DAC von Crystal nehmen, wie auch immer.

Der kein Codec ist und auch nicht mehr als 5 Euro kostet.

Holger

Reply to
Holger

Holgerschrieb: "

Ok dann beantworte ich mal deine Frage.

Es ist ein fauler Kompromiss.

Dirk

Reply to
Dirk Ruth

ACK. Von den AVR-Wandlern sollte man keine Wunder erwarten. Ich kenne ja den Anwendungsfalls nicht, aber wenn es auch nur in den Bereich von halbwegs Bühnen/Studioqualität kommen soll, dann entweder eine Komplettlösung (gibt da sicher was mit preamp, ADC und µC auf einem Chip, vermutlich teuer), oder halt ganz klassisch, einzelne ICs.

-ras

--

Ralph A. Schmid

http://www.schmid.xxx/ http://www.db0fue.de/
http://www.bclog.de/
Reply to
Ralph A. Schmid, dk5ras

Ralph A. Schmid, dk5ras schrieb:

Habe ich eben nachgelesen. SPI hat Schieberegister, die nur 8 Bit breit=20 sind. Schwierig, man m=FC=DFte f=FCr digitales Audio mindestens 24 Bit ha= ben,=20 besser 32 Bit, noch besser 64 Bit, was doch noch einiges an zus=E4tzliche= r=20 Logik voraussetzt. Alternative w=E4re demzufolge ein DSP, der die=20 entsprechenden Schieberegister besitzt und dem AVR als Peripherie=20 zugeschaltet wird, wenn man ein TTL-Grab vermeiden will.

Holger

Reply to
Holger

Ja und?

Nur Programmlogik. Um 24/32/64 Bit über SPI zu schleusen, mußt du halt nacheinander 3/4/8 Bytes lesen bzw. schreiben. Wo genau soll dabei das Problem sein?

Reply to
Heiko Nocon

Das ist das falsche Datenblatt. Das vollständige hat fast 400 Seiten.

Der Mega1284P hat drei SPI-Schnittstellen. Eine normale "Atmel-SPI" und zwei USARTs, die sich im SPI-Mode betreiben lassen. Letztere sind deutlich schneller. Ihr einziger Nachteil besteht darin, daß sie sich nur als Master betreiben lassen, was aber in deiner Anwendung keine Rolle spielt.

Reply to
Heiko Nocon

t=20

,=20

cher=20

alt

In der Synchronisation. W=E4hrend der Dauer eines Taktimpulses f=FCr ein =

Datenwort mu=DF das Eingangsschieberegister ausgelesen und=20 zwischengespeichert, eventuell noch neu initialisiert werden. Wei=DF=20 nicht, ob da nicht so hin und wieder ein Bit verschluckt wird. Hast du=20 das denn jemals gemacht, oder weshalb fragst du?

Holger

Reply to
Holger

Hartmut Kraus schrieb:

Aufregen kann man sich schon, aber wenn du nach dem geeigneten=20 Schmiermittel f=FCr eine Fahrradkette fragst und kriegst gesagt, der Mant= a=20 habe von Haus aus bereits vier R=E4der, nicht nur zwei, und Manta fahrn=20 is, wie wennze fliechst, dann *kann* es schon mal passieren, da=DF dir de= r=20 Hut hochgeht.

Vergleichsweise ist mir das mit einem Hackerspace passiert. Auch hier,=20 Oi, die neue Technologie. Sie begreifen einfach nicht, da=DF es nicht um =

"neu versus alt" geht, und auch nicht um "Auto versus Fahrrad", sondern=20 um praktisch versus weniger praktisch.

Wenn ich meine Haare trockne, nehme ich ja auch einen Haarf=F6hn und kein= e=20 Hei=DFluftpistole, obwohl da viel mehr Luft als beim F=F6hn rauskommt, di= e=20 auch noch viel hei=DFer ist.

Holger

Reply to
Holger

Dirk Ruth schrieb:

Ist ja okay. Ich m=F6chte die Daten zwischenspeichern, auf einer Karte,=20 das sollte mit dem AVR gehen, mit deinem Codec leider nicht. Sicher wird =

es irgendwo im Kommerziellen einen kundenspezifischen ASIC geben, aber=20 dem bin ich aus praktischen Gr=FCnden nicht auf der Spur. Den Atmel krieg= e=20 ich locker, die Wandler auch, also mache ich mir keinen Kopp drum und=20 w=FCrde das so nehmen.

Holger

Reply to
Holger

Aus genau diesem Grund haben (fast) alle SPI-Bausteine neben Takt und Daten noch eine weitere Steuerleitung, welche Beginn und Ende einer SPI-Transaktion anzeigt und das Schieberegister während dieser Zeit von der restlichen Logik entkoppelt.

Falls ja, liegt ein Designfehler in der Hard- oder Software vor.

Hergen

Reply to
Hergen Lehmann

Am 04.08.2012 11:36, schrieb Holger:

Jo, und wenn ich "irgendwas" über ein gutes Mikro aufnehmen will, stöpsele ich das in den (analogen) "Mic" - Eingang meines On-Board-Soundmoduls (der liefert mir zur Not auch noch eine Betriebsspannung für einen Vorverstärker - glaube so 5V) und nehme als Software zum Digitalisieren und Abspeichern audacity unter Linux. Wenn sich mir also der Sinn deines Vorhabens nicht so recht erschließt, geht dir dann der Hut hoch? :-)

Reply to
Hartmut Kraus

Inwiefern soll die ein Problem sein? Die Bitsynchronisation erfolgt bei SPI durch den Takt des SPI-Masters, die Wortsynchronisation durch das Signalspiel auf der Select-Leitung des angesprochenen Slave, und das wird ebenfalls durch den Master generiert. Wo soll da ein Problem sein?

Es gibt eigentlich überhaupt nur zwei kritischen Punkte bei SPI. Der erste betrifft den SPI-Takt. Der muß niedrig genug sein, daß Master und Slave mitkommen. Deswegen ist eines der wesentlichen Kriterien einer jeden SPI-Schnittstelle der maximal unterstützte Takt. Der zweite ist, wie lange vor der ersten "aktiven" Flanke auf SCK SS auf Low gezogen sein muß, damit der Slave genug Zeit hat, sein erstes Datenbit zur Ausgabe bereitzustellen. Das ist aber nur ein Problem des Slaves, denn der Master kann (da er beides kontrolliert) ja beliebig viel Zeit dazwischen verstreichen lassen. Im Minimum muß er halt die Zeit warten, die der Slave braucht. Im übrigen fällt bei reinen Schreibtransfers vom Master zum Slave (also z.B. bei der Ausgabe von Samples an einen DAC) dieses Problem auch noch komlett weg, weil der Slave dann überhaupt keine Daten bereitstellen muß.

Der ganze Rest der Kommunikation reguliert sich selbst. Die Designer von SPI haben sich nämlich durchaus was beim Entwurf der Schnittstelle gedacht. Du hast nur scheinbar deren Gedankengänge nicht verstanden...

Oft genug. Offensichtlich im Gegensatz zu dir.

Reply to
Heiko Nocon

Heiko Nocon schrieb:

n

=2E

Ich schreibe hier keine komplette technische Dokumentation meiner=20 Gedankeng=E4nge und werde nicht via Flamewar meine Schaltung entwickeln. =

Da kenne ich angenehmere Vorgehensweisen.

Von meiner Seite aus Ende der Debatte, Holger

Reply to
Holger

Am 04.08.2012 14:40, schrieb Holger:

Selbstverständlich. Es steht jedem frei, das Fahrrad zum xten Mal neu zu erfinden. :-)

Reply to
Hartmut Kraus

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.