Hallo liebe Mikrokontroller Freunde, Durch einen dummen Fehler, muss/darf ich mich nun mit dem Thema Mikrokontroller auseinandersetzen. Ich habe mir etliche Digital Analog Wandler Platinen anfertigen lassen um ein aktives HiFi-System aufzubauen. 3 Wege a 4 parallele Dacs. Dabei habe ich mich im Datenblatt des AK4396 Dac um ein Schaltplanbild vertan und muss die Dacs nun per µC ansteuern, anstatt lediglich ein paar Pins auf Logik 1 oder 0 zu legen. Leider habe ich von der µc Materie keinen Blassen und bin auf Unterstützung angewiesen. Ich habe versucht mich den Anfängen der Materie anzunähern, aber musste leider feststellen, dass ich wohl keinen Zugang finde, oder mein IQ halt nicht reicht. Deshalb muss ich hier nun ein paar Fragen der dümmeren Art stellen. Relevante Seiten vom Datenblatt des AK4396 sind 27-29. 1. Muss es unbedingt ein µC sein der das Ding ansteuert, oder geht das auch über ein paar Schalter, PC, oder sonst was? 2. Wenn nicht, welcher µC reicht für diese Anwendung? Ich habe zwar einen AVR Net-IO von Pollin hier liegen, aber ich denke mal das der overkill ist. Wer mir irgendwie bei dem Projekt helfen kann, dem wäre ich sehr dankbar. Als Anreiz würde ich mich mit einem, auf mein Bord aufgelöteten AK4396 bedanken. Das Board hat ein optimales Layout und ist sehr klein, weshalb es ganz nah an die I2S Abgriffpunkte gebracht werden kann. Es ist in Zusammenarbeit mit den Jungs (Jocko, Elso Kwak, Carlos Filipe ect.) von diyhifi punkt OH ER GE entstanden. Der AK4396 braucht keinerlei Ausgangstufe, was den Aufwand, einen hervorragend klingenden Dac zu bauen, erheblich vereinfacht. Koppelkondensatoren und sauberen Strom ist alles was er braucht. OK, genug der Werbung. Ich hoffe das irgendwer mir helfen kann. Gruß, Klaus
> Relevante Seiten vom Datenblatt des AK4396 sind 27-29. Achtung: Du hast dein Datenblatt und das Schaltplanbild (beide, das für die verkorksten Platinen und das Ersatzbild mit µC) nicht angehängt oder verlinkt. > 1. Muss es unbedingt ein µC sein der das Ding ansteuert, oder geht das > auch über ein paar Schalter, PC, oder sonst was? Schwer zu sagen ohne Schaltbild oder Beschreibung was du erreichen willst. Etliche Funktionen sind über Pull-Up oder Pull-Down-Widerstände und Jumper/Schalter an definierten Pins einstellbar. Wenn du allerdings dynamisch die Konfiguration über das Register Control Interface ändern willst/musst, sehe ich keinen anderen Weg als einen µC (oder PC) dafür zu benutzen. PC wäre wohl Overkill... > 2. Wenn nicht, welcher µC reicht für diese Anwendung? Ich habe zwar > einen AVR Net-IO von Pollin hier liegen, aber ich denke mal das der > overkill ist. X-beliebiger, bevorzugt einen den du programmieren kannst oder einen den du ansonsten nutzlos rumliegen hättest. Die Programmierung an sich ist IMHO Peanuts im Vergleich zum Handling des AK4396. Wenn du etliche Digital Analog Wandler Platinen mit einem µC bedienen willst, achte auf genügend I/O-Leitungen! AK4396 http://www.asahi-kasei.co.jp/akm/en/product/ak4396/ak4396.html http://www.asahi-kasei.co.jp/akm/en/product/ak4396/ak4396_f00e.pdf
Danke Krapao, die Sache ist, dass ich die digitale Frequenzweiche über eine Soundkarte realisiere und deshalb der PC eh läuft wenn ich Musik höre. Andererseits würde mir die µC Steuerung mehr zusagen, aber ich kapiere das Konzept von so einem Ding einfach nicht. Ich dachte immer dass nur innerhalb des µC mit 8, 16 ect. bit gearbeitet wird und die Ausgänge auf 1 oder 0 geschaltet werden, um dann irgendwelche Relais oder sonst was zu schalten. Hier braucht der Dac aber ein 16 bit Signal. Da muss ja der µC ein 16 bit Siganl ausgeben. Naja mir fehlen halt die Grundkenntnisse. Vielleicht erbarmt sich ja einer und zeigt an Hand von ein zwei Zeilen,wie ein Tastendruck SMUTE aktiviert.
Der AK4396 setzt einen digitalen DVD-Audiostream (192 kHz PCM oder 1-bit DSD) in Audiosignale um. Diese Umsetzung kann man beeinflussen z.B. kann man Abschwächen usw. Für das SMUTE (Soft Mute) reicht im Prinzip ein Taster am SMUTE Pin. Das SMUTE wird während eines HIGH am Pin durchgeführt. Die Dämpfung fährt dabei allmählich vom eingestellten Wert ATT auf unendlich (Stille). Wird SMUTE losgelassen (Pin LOW), wird der eingestellt Dämpfungswert ATT wieder angefahren. Ist Stille erreicht, wechselt der DZF Pin auf HIGH, d.h. wenn man die Signalquelle stumm umschalten will, kann man den DZF Pin auswerten und schalten, denn jetzt ist das optimal. Ein µC/PC kann das ganz gut automatisieren. Entweder stur eine Zeit warten bis Stille da sein sollte oder wie geschrieben den DZF auswerten. Wenn man lediglich einen Taster nimmt, sollte es allerdings ein Taster mit Entprellung sein. Technisch wird der Taster active-high betrieben, d.h. man braucht einen Pull-Down-Widerstand Taster (Offen im Ruhezustand) DVDD === o-------o o----+-----o SMUTE | +-###-o GND 10K Widerstand Statt einem einfachen Taster kann auch eine per µC/PC aktivierbare einfache Schaltung verwendet werden z.B. ein Optokoppler an einer echten RS232-Schnittstelle oder einem USB/RS232-Adapter wenn man auf die PC Schiene gehen will. Hat man sich für eine bessere Kontrolleinheit entschieden, dann kann das natürlich auch noch andere Sachen steuern, z.B. die ATT Werte setzen ggf. getrennt rechter/linker Kanal usw.. In der Regel ist beinhaltet eine solche Kontrolleinheit einen µC statt einem IC-Grab und dem verpasst man sinnigerweise gleich auch ein Interface zu einem PC.
Bessere Kontrolleinheit: Statt direkt an einzelne Steuerpins wie den SMUTE zu gehen, werden vom µC Daten digital in Control Register des AK4396 geschrieben oder von dort gelesen. Bei einer solchen "Steuerung über die Control Register ist ein bestimmtes serielles Protokoll mit Clock- und Datenleitungen einzuhalten. Die Beschreibung davon ist Inhalt deiner beiden Bilder.
Danke Jungs, es ist ja gerade mein Dilemma, dass ich aus Versehen mein Layout für Serial Mode gemacht habe. Ich kann den Dac nicht mehr mit den Pins beschalten, weil die meisten davon auf Masse liegen. Nur halt die drei csn, cckl, und cdti habe ich um den dac zu steuern. Welche Befehle braucht es dass ein µC bespielsweise per Knopfdruck Slow roll off aktiviert? Klaus
Du brauchst in dem Fall halt vier I/O-Pins am µC. Davon einen Eingabepin für deinen Knopfdruck. Die Entprellung machst du am besten in Software. Und drei Ausgabepins für die Leitungen CSN, CCLK und CDT1 brauchst du. Bedienen der I/O-Pins mit Tastern (Eingabe) oder LEDs (generelle Ausgabe) am AVR ist in den Tutorials ganz am Anfang erklärt. Die Ausgabepins sollten den gleichen Logikpegel haben wie dein AK4396 also 3.0 bis 5.23V Versorgung des µCs. Am einfachsten versorgst du den µC also mit DVDD. Wenn du dich für eine Kommandosequenz aus dem Datenblatt entschieden hast, ziehst du CSN low, ziehst CCLK low, legst das erste Bit der Kommandosequenz auf CDT1, ziehst CCLK high, und wiederholst fürs nächste Bit das Klappern mit CCLK/CDT1 bis zum letzten Bit der Kommandosequenz. Dann ziehst du CSN auf high und die Kommandosequenz wird vom AK4396 ausgeführt, wenn sie richtig aus dem Datenblatt abgelesen wurde. Für die Bitaktionen gibt es als Lernstoff den Artikel Bitmanipulation. Schleifengedöns ist Bestandteil jeder Programmiersprache. Assembler, C oder BASIC kannst du ein bisschen? Bisher ist auch k(aum )einer abgewiesen worden, der seinen nicht notwendigerweise perfekten Programmcode hier gezeigt hat... Die Mindestzeit wie lange ein Pegel gehalten werden muss, steht im Datenblatt. Die bewegen sich je nach Leitung im 80-200 ns Bereich. Wenn du da pragmatisch was um 1 µs oder auch länger nimmst, passt das. Kannst du beim AVR mit der delay_us() Funktion machen. Es wäre extrem hilfreich, wenn du überwachen kannst, was dein Programm sendet, ohne direkt den AK4396 anhängen zu müssen. Optimal geht das mit einem Logikanalysator. Wenn der nicht zur Verfügung steht, kannst du den Programmablauf im Simulator durchexerzieren, dauert halt länger. Oder du benutzt bei der Entwicklung statt 1µs 5s Haltezeiten und hängst je eine LED mit Worwiderstand an die Leitungen. Dann siehst du auch was auf den Leitungen passiert. Warum schreibe ich dir den Code jetzt nicht einfach? Ich bin da ein gebranntes Kind und fürchte den Umfang den das annehmen könnte. Nach dem kleinen Finger ist paar Abende später der ganze Arm ab. Vom SMUTE geht es über SLOW ROLL OFF zum Werweisswasnochfürfeature. Mittelfristig hast du mehr davon, wenn du nachvollziehen und selber steuern kannst, was dein µC macht.
Danke Danke Danke das sind doch mal brauchbare Infos. Gruß, Klaus
Einen DAC kann man natuerlich auch per Schalter ansteuern. Nur kommt dann eben nur DC raus. Wenn sich die Werte schneller aendern muessen die Schalter schneller betaetigt werden. Aha. Da sollte Sound rauskommen ? Was waeren dann ab 44'000 neuen Werten pro Sekunde. Da sollte man sich auch noch fragen, woher die Werte kommen. Ab CD ? USB Stick ?
Mein lieber Oschi, du bist hier ganz schön daneben. Es geht hier nur um das Programmieren des Dacs und nicht um dessen Wandlungsaufgabe.
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.