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
>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;)
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.
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
@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.
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.
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
>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.
@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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.