Forum: Mikrocontroller und Digitale Elektronik Audiodecoder als Einstieg in die Mikrocontrollertechnik


von Victor .. (_vic_)


Lesenswert?

Dies ist mein erster Post hier im Forum und deshalb gibt es zu Beginn 
zuerst einmal ein freundliches Hallo miteinander!
Wie euch die Überschrift bereits verrät, möchte ich in die Welt der 
Mikrocontroller eintauchen und hoffe, dass ich von euch mit eurem 
Fachwissen unterstützt werde. Aber keine Angst, ich habe jetzt nicht die 
Erwartungshaltung, dass ihr mir alles vorkaut.

Nun zum eigentlichen Thema:
Am besten lernt man etwas, wenn man auch eine konkrete Problemstellung 
hat. Meine ist die Folgende. Ich besitze ein 7.1 Soundsystem, das leider 
keinen digitalen Decoder eingebaut hat. Somit muss ich über 4 Cinchpaare 
jeden Kanal einzeln ansteuern und die Quellgeräte kann ich auch nicht 
einfach wechseln. Im Prinzip möchte ich mir so etwas wie die 
Decoderstation von Teufel nachbauen, halt nur mit 7.1 Unterstützung.

Ja ich weiß, für den Einstieg ist das Projekt sehr ambitioniert, und ich 
erwarte auch nicht, dass alles auf Anhieb funktioniert.

Als Eingangssignal habe ich mir ein SPDIF Signal vorgestellt, das einen 
AC3 Datenstrom transportiert. Dieser soll decodiert und an den einzelnen 
Boxen ausgegeben werden. Da AC3 allerdings nur 5.1 unterstützt müsste 
als Zwischenschritt noch eine Interpolation erfolgen, aber dieses Thema 
stelle ich erst einmal hinten an.

Um die Sache so einfach wie möglich zu gestalten, möchte ich nach 
Möglichkeit IC's einsetzen, die mir einen Großteil der 
Programmieraufgaben abnehmen. In Fachzeitschriften (z.B. Elektor Spezial 
5) oder auf Webseiten (http://koonlab.com/TAS4i.html) konnte ich mir 
bereits einige Implementierungen anschauen, die allerdings nur 
Stereosignale verarbeitet haben. Nach einiger Recherche konnte ich 
Bausteine ermitteln, die meinen Ansprüchen scheinbar genügen würden. Um 
sicherzugehen, dass ich keine falschen Bausteine gefunden habe, möchte 
ich jedoch euch zu Rate ziehen und euch um eure Meinung beten.

Hier meine ausgewählten IC's:
Damit ich mehrere digitale Signale empfangen und zwischen ihnen 
umschalten kann, würde ich einen CS8416 am Eingang implementieren
Dieser erzeugt einen SDA Datenstrom, den ich einen STA310 AC3 Decoder 
leiten würde. Die 4 Ausgänge erzeugen für jeden Kanal jeweils einen PCM 
Bitdatenstrom.
Diese PCM Signale leite ich anschließend in einen TAS5518C, der mir 
daraus PWM Signale erzeugt.
Zu guter Letzt verstärke ich diese mit mehreren TAS5142.
Gesteuert werden die IC’s über I2S Control Signale, die von einem ATMega 
gesendet werden.

Im Allgemeinen orientiert sich der Entwurf stark an dem von der koonlab 
Homepage. Bevor ich mir Gedanken über die Spannungsversorgung machen 
wollte, frage ich euch vorsichtshalber, ob ich mich auf dem Holzweg 
befinde, oder ob ich schon die richtigen Ansätze verfolge.

Schöne Grüße

Vic

PS: Hier sind noch die Datenblätter zu den IC’s

http://www.cirrus.com/cn/pubs/proDatasheet/CS8416_F3.pdf
http://www.st.com/stonline/books/pdf/docs/9622.pdf
http://focus.ti.com/lit/ds/symlink/tas5518c.pdf
http://focus.ti.com/docs/prod/folders/print/tas5142.html

von holger (Gast)


Lesenswert?

>Wie euch die Überschrift bereits verrät, möchte ich in die Welt der
>Mikrocontroller eintauchen und hoffe, dass ich von euch mit eurem
>Fachwissen unterstützt werde.

Dann fang mit der blinkenden LED an.

>Ja ich weiß, für den Einstieg ist das Projekt sehr ambitioniert, und ich
>erwarte auch nicht, dass alles auf Anhieb funktioniert.

Ambitioniert ist falsch. Grössenwahnsinnig würde für
einen Anfänger besser passen;)

von Nachtaktiver (Gast)


Lesenswert?

Zum Einstieg Zwei Nummern zu groß. Allein das Layout der Leiterkarte 
wird ziemlich aufwendig wenn es vernünftig werden soll.
Wie ist dein wirklicher Kenntnisstand? ( Du beschreibst den Sachverhalt 
sehr kompetent)

Wie wäre es mit einer Art Zwischenverstärker mit Quellenwahl und 
Lautstärkeeinstellung für alle einzelnen Kanäle.
Dazu ein schickes Display und ein paar Taster/Inkrementalgeber.
Wahrscheinlich findet man auch Equailizer Bausteine mit welchen man 
schöne Effekte einstellen kann.
Ein schönes Projekt was man gut realisieren kann.

von Peter D. (peda)


Lesenswert?

Ich denke mal, mit Mikrocontrollern hat das wenig zu tun.
Du wirst vielpolige Spezial-ICs zusammenlöten müssen, d.h. die 
Hauptanforderung dürfte im sauberen Schaltungsdesign und Layout liegen.

Programmieren wird man vielleicht die Steuerung dieser Spezial-ICs (über 
I2C oder SPI) und ein kleines Bedieninterface.


Ich vermute mal nicht, daß Du ein DSP-Board nehmen und die Protokolle 
und Algorithmen alle selber programmieren willst. Das dürfte in die 
Mannjahre gehen.


Peter

von Victor .. (_vic_)


Lesenswert?

@Nachtaktiver und Holger
Ein wenig Erfahrungen kann ich tatsächlich schon aufweisen. Während 
meines Studiums habe ich schon an einem 8051 Assembler programmiert und 
an einem Spartan-3E Evaluationsboard Aufgaben in VHDL gelöst (und dort 
auch LED's blinken lassen, bzw. eine Segmentanzeige angesteuert).
Auch wenn das alles recht lehrreich war, würde ich mich bei weitem nicht 
als Fortgeschritten ansehen. Wir griffen immer nur auf Evaluationsboards 
zurück, sodass die Hardwaresicht zu kurz geraten ist. Dieses Defizit 
möchte ich mit diesem Projekt halt nachholen.

@Peter
Die Programmierung des Mikrocontrollers würde sich tatsächlich auf die 
Erzeugung der Steuersignale und evtl. der Darstellung einer 
Menüoberfläche begrenzen. Und mit deiner Einschätzung liegst du auch 
richtig, ich möchte lieber auf fertige Bausteine zurückgreifen, um 
einerseits ein wenig Komplexität aus der Aufgabe zu nehmen und 
andererseits die eben besagte Hardwaresicht näher kennenzulernen.

von Thomas E. (thomase)


Lesenswert?

Du bist doch kein Anfänger!

Die meisten Anfänger hier wissen nicht mal wie rum ein Widerstand 
angeschlossen wird.

Mich würde allerdings bei so einem Einstiegsprojekt in die Technologie 
stören, daß die Bauteile von drei Herstellern kommen.

Wenn alles aus einer Hand kommt, lässt sich anhand der Application Notes 
manches Problem schneller lösen. Gerade wenn es mal nicht so tut, wie es 
soll.

Der µC ist dabei natürlich ausgeschlossen.

mfg.

von Hans W. (stampede)


Lesenswert?

Hi,

das Projekt ist defintiv ambitioniert. Dem Schaltungsentwurf und dem 
Layout wird hier die entscheidende Bedeutung zukommen, der I2C Kram 
sollte dann nur noch ein Kinderspiel sein.
Ich habe mich auch schon öfter mit einem 5.1. Decoder beschäftigt, hab 
es aber noch nicht gewagt komplett durchzuziehen. Habe sogar schon einen 
STA310 hier liegen.
Du solltest dir aber auch darüber im Klaren sein, dass du nach einem 
ersten mehr oder minder erfolgreichem Prototypen sicher noch mal ne 2. 
PCB fertigen lassen musst. Das kann dann bei der Platinengröße und den 
Bauteilen u.U. schon mal paar hundert Euro kosten bis die Geschichte so 
läuft wie du dir das vorstellst.

Gruß
Stefan

von chris (Gast)


Lesenswert?

>Als Eingangssignal habe ich mir ein SPDIF Signal vorgestellt, das einen
>AC3 Datenstrom transportiert. Dieser soll decodiert und an den einzelnen
>Boxen ausgegeben werden.

Keine Ahnung  wie kompliziert das SPDIF Protokoll ist. Falls es nicht so 
kompliziert ist, würde ich einen Leistungsfähigen Controller nehmen ( 
ARM>100MHz ) und alles von Hand programmieren. Die Controller sind 
mittlerweile für Bastler gut verwendbar. Für den Anfang vielleicht auf 
eine eigene Platine verzichten und ein EVAL-Board nehmen.

von Victor .. (_vic_)


Lesenswert?

@Thomas
Vielen Dank für diesen Hinweis. Da die D/A Wandlung mit Komponenten der 
Firma Texas Instruments erfolgt, habe ich mich nach einem äquivalenten 
Ersatz für den CS8416 umgeschaut. Nach meinen ersten Recherchen würde 
ich zum SRC4382 tendieren. 
(http://focus.ti.com/docs/prod/folders/print/src4382.html)
Allerdings konnte ich bislang keinen AC3 Decoderbaustein finden, sodass 
ich wohl oder übel beim STA310 verbleiben werde.

@Hans
Der Kostenaspekt ist in der Tat eine heikle Angelegenheit. Ich hege die 
Hoffnung, dass ich die Bausteine von einem misslungenen Layout noch 
ablöten und weiterverwenden kann. So wird das nicht ein allzu teurer 
Spaß. Außerdem hatte ich vor hier einen Eagle Entwurf zu 
veröffentlichen, wenn die Bausteine ausgesucht wurden. Je nachdem wie 
weit ich damit komme bzw. dieser Entwurf etwas taugt, kann man zumindest 
noch die Reißleine ziehen.

@Chris
An eine Softwarelösung habe ich zu Beginn des Projekts auch gedacht, 
aber mich dann doch dagegen entschieden. Wie Peter bereits erwähnt hat, 
können mit der Programmierung einige Mannjahre zusammenkommen. Zwar gibt 
es bereits fertige Bibliotheken, wie die liba52, allerdings befürchte 
ich, dass diese mir etwaige Probleme mit Timings, Jitter, etc. nicht 
abnehmen werden.

von Nachtaktiver (Gast)


Lesenswert?

Versuche das Projekt zu reduzieren. Ich habe die Erfahrung gemacht das 
man selbst für nicht so große Projekte mehrere Leiterkartenversionen 
braucht da sich immer wieder schnell Detailfehler ergeben. Einzelne 
Komponenten in einen funktionierenden Gesamtsystem zu integrieren ist 
schwieriger als man denkt. Hast du dir schonmal Gedanken des 
mechanischen Aufbaus etc. gemacht?

Bei diesen Projekt kosten die einzelnen Teile so viel Geld das man 
schnell alles hinwirft. Wenn man nicht Zugriff auf passendes 
Lötequipment hat dann würde ich die Chips auch kein 2tes mal 
wiederverweten da die Gefahr eines merkwürdigen Defektes zu groß ist.

Gleichzeitig lese ich heraus, das du scheinbar bis her noch keine 
Leiterkarten geroutest hast da du in der Uni bisher immer auf fertige
Boards zurückgegriffen hast.

Wenn du dir aber dennoch das ganze zutraust, dann brauchst du viel 
Geduld, Nerven und einen großen Geldbeutel. Vorallen eine optimistische 
Denkweise da es auch Momente gibt in denen du nur noch frustiert sein 
wirst.
Wenn das ganze wirklich sauber aufgebaut werden soll, darfst du ruhig 
mit 1000,- rechnen. Das klingt nach viel Geld, aber sobald die ersten 
Bestellungen kommen ist das Geld schneller weg als man denkt.

Wo du dir sicher sein kannst, ist die Tatsache das ich eine Menge 
Respekt vor dir habe wenn du dieses Projekt durchziehst. Ich denke das 
ich durchaus Kompetent im Bereich integration von einzelnen Komponenten 
zu einen Gesamtsystem habe. Aber mit FPGAs und VHDL hatte ich noch nie 
etwas am Hut.

von Victor .. (_vic_)


Lesenswert?

Tatsächlich habe ich mich um das Boardlayout noch nicht gekümmert. Und 
wie du richtig erkannt hast, habe ich ebenfalls keine Erfahrungen was 
das Routing betrifft. Diese beiden Punkte wollte ich tatsächlich auch im 
übernächsten Schritt angehen.

Mein grober Ablaufplan sieht bisher so aus:
1. Benötigte Bauteile identifizieren
2. Mit Eagle den logischen Entwurf zeichnen inkl. aller Widerstände, 
Kondensatoren etc.(Stichwort Schaltplan)
3. Die Komponenten aus dem logischen Entwurf auf der Platine verteilen 
einen oder mehreren Boards platzieren (weiter unten dazu mehr)
4. Leitungen routen
5. Platine ätzen lassen
6. Chips löten

Zwischen jedem der Planungsschritte habe ich mir überlegt, dass man die 
Zwischenergebnisse hier im Forum diskutieren kann, wenn Interesse 
besteht.

Bzgl. deines Einwands mit den Detailfehlern, den daraus resultierenden 
Folgekosten für neue Platinen und zur Reduzierung der Aufgabenstellung: 
Das ganze System besteht aus mehreren logisch getrennten Komponenten. Da 
hätten wir einmal den SPDIF Empfänger, einen AC3 Decoder, einen Audio 
Prozessor mit PWM Generator und vier DAC‘s. Ebenso noch den 
Mikrocontroller und die Spannungsversorgung.
Um deinem Einspruch gerecht zu werden, habe ich mir überlegt, dass man 
diese Module auf einzelne Platinen unterbringen kann, die mit Hilfe von 
z.B. steckbaren Flachbandkabeln kommunizieren. Wenn jetzt ein Board 
nichts taugt, muss nicht alles entsorgt werden, sondern eben nur das 
eine Modul. Natürlich muss man die Schnittstellen im Voraus penibel 
planen, aber ich denke mal, dass diese Vorgehensweise durchaus Vorteile 
mit sich bringt.
So kann ich z.B. mit dem Board für die Spannungsversorgung beginnen. Das 
wird z.B. mit einer 24 V PSU gespeist und darauf befinden sich mehrere 
DC/DC Konverter, die daraus Stränge mit 1.8 V, 3.3 V, 5 V, etc. 
erzeugen. Hier müssten ebenfalls Kondensatoren bzw. Tiefpassfilter zur 
Rauschreduzierung verbaut werden.
Anschließend kann man sich ein Board mit dem Mikrocontroller, ein paar 
Status LEDs und evtl. einem Display zusammenstellen, oder vielleicht 
sogar auf ein fertiges Evaluationsboard zurückgreifen.

Auf jeden Fall dachte ich mir, dass man sich so stückweise voran hangeln 
kann. Und wenn eine Platine erfolgreich getestet wurde, kann ich die 
nächste nach dem gleichen Schema aufziehen.

Schönes Wochenende

Vic

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.