• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


CSR8645 Bluetooth 4.0 AAC APT-X Module / Baseboard
Ich habe ein weiteres Problem:

Eines der zwei Board scheint nicht mehr richtig zu funktionieren.
Beim funktionierenden Board blinken die LEDs auf der Rückseite abwechselnd und wenn eine Bluetoothverbindung besteht leuchtet nur noch eine LED dauerhaft.

Bei dem Board, das mitlerweile nicht mehr richtig funktioniert, faden die LEDs ineinander über, eine Bluetothverbindung herzustellen ist nicht möglich.
Das PST Tool erkennt das Board scheinbar, einen Dump, den ich ganz am Anfang gemacht habe wieder aufzuspielen bringt aber keine Änderung.

Was könnte das Problem sein, hatte das schonmal jemand?
 
Reply
Probiers mal mit "vm disable=1", reboot, dump aufspielen, reboot. (in PSTools)

(Eventuell hast du den IC über den Programmer beschädigt, wenn dieser nur 3.3V SPI hat/kann und keine Serienwiderstände in den Datenleitungen. Das sollte man m.E. per Diodentest feststellen können.)
 
Reply
Scheinbar kann nichts mehr geschrieben werden.
Ich kann VM disable auf 1 setzen, kann dann auch das PSTool schließen und neu öffnen und beim auslesen steht dann da wieder "true". Sobald ich aber reboote (Strom aus, 3 Sekunden warten, Strom an), das PSTool öffne und den Vm disable Wert auslese steht er wieder auf false. Es bleibt also irgendwie nicht dauerhaft.

Den Programmer schließe ich erstmal aus, bisher hat er ja wunderbar funktioniert.

Am zweiten Board habe ich inzwischen I2S am laufen. Allerdings gibt es zwei Probleme. Zum einen der fehlende Master Clock, ohne diesen kann der I2S-Empfänger (ADAU1701) nichts damit anfangen. Eine (unschöne) Lösung ist, das CSR Modul als Slave laufen zu lassen und einen zusätzlichen Master, der einen Masterclock ausgibt, mit auf die I2S Schnittstelle zu klemmen.
Das zweite Problem ist eine komische Tonwiedergabe. Grundsätzlich klingt alles sauber und verzerrungsfrei, es knackst aber hin und wieder leicht, allerdings nur, wenn Musik abgespielt wird. Und manchmal scheint es so, als würde die Wiedergabe kurz schneller werden, wie wenn die Lücke vom Knacksen aufgeholt werden müsste, wie wenn der Bluetoothempfänger kurz zu langsam war und dann kurz schneller abspielen muss, um die eigentliche Musik wieder einzuholen. Ich hoffe das ist verständlich, ich habe keine Ahnung woran das liegen könnte.

Nächste Baustelle wäre den CSR Chip als USB Soundkarte zum laufen zu kriegen. Einfaches Verbinden von USBP mit der positiven Datenleitung und USBN mit der negativen Datenleitung scheint nicht zu funktionieren, zumindest meldet sich das Modul nicht am Rechner. Das CSR Modul sollte einen internen Pullup für D+ besitzen, aber brauche ich für die Kommunikation zwingend V- und V+?
 
Reply
So, auch USB läuft nun.
Es muss tatsächlich auch V+ an den VCHG Anschluss angeschlossen werden damit  sich das Board als USB Soundkarte meldet. 
Dann läuft das aber auf Anhieb.
Die Umschaltung geht wie erwartet automatisch, wobei Bluetooth vorang hat. Pausiere ich die Bluetoothwidergabe wird automatisch USB als Quelle gewählt, wird die Bluetoothwiedergabe wieder gestartet wird sie auch wiedergegeben.

Allerdings ist das nervige Knacksen auch bei der Wiedergabe von USB zu hören, scheint also kein direktes Bluetooth Problem zu sein. Vermutlich hängt das ziemlich direkt mit den I2S Einstellungen zusammen.
An den Einstellungen rumspielen ist leider etwas nervig, da immer nur entweder I2S oder programmieren geht. Also immer zwischendurch umstöpseln und schauen, ob sich etwas getan hat.

Edit hat herausgefunden:
Das Knacksen hat irgendwas mit den I2S Clocks zu tun, eindeutig.
Mit einem zweiten USB-I2S Wandler als Master funktioniert es einwandfrei ohne Störgeräusche.
Ein beliebiges anderes I2S Gerät als Master mit einzubauen ist aber auch wirklich eine unschöne Lösung.
Also wäre es am schönsten, wenn auch das CSR Board einfach einen Masterclock bereitstellen würde.
Kann mir da jemand damit helfen? Zumindest so offensichtlich scheint es keinen passenden Pin zu geben.
 
Reply
also ich verstehe das Problem nicht so wirklich....mit dem 2. I2S als master usw.
wenn nur der master-clock fehlt - mach halt einfach nen clock ran, den beide als Referenz nehmen;
oder wie/wo ist das Problem ?
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
Also, der ADAU1701 braucht an seinem I2S Eingang zwingend einen Master.
Von diesem Master erwartet er einen Masterclock und die zwei weitere Clocks für I2S. Liegt eines dieser Signale nicht an, funktioniert es nicht.

Das CSR Board kann sich zwar als Master verhalten, gibt hierbei aber nur die zwei I2S Clocks aus und eben keinen Masterclock. Zumindest wüsste ich nicht, wie. Steht auch nichts dazu im Datenblatt.

Da das CSR Board keinen Masterclock erzeugen kann sehe ich als einzige Lösung, ihn als Slave zu betreiben. Da der ADAU1701 am Eingang keinen Master darstellen kann, gibt es laut Datenblatt einen Trick: man konfiguriert den I2S Ausgang vom DSP als Master (das ist im Gegensatz zum Eingang beim Ausgang möglich) und verbindet die Clocks vom Ausgang vom ADAU1701 mit den Clocks vom Eingang. In dieser Konfiguration nutzt der ADAU1701 wohl seinen internen Masterclock und es funktioniert prinzipiell. Allerdings kommt es da eben zu diesem beschriebenen Knacksen und der komischen Wiedergabe.

Also habe ich weiter herumprobiert und einen USB-I2S Wandler, der ebenfalls ein Master ist und auch einen Masterclock ausgibt mit verwendet. Das CSR Board läuft dann als Slave und nutzt die Clocks vom USB-I2S Wandler, der DSP hat alle Clocks die er braucht und es funktioniert einwandfrei. Allerdings kann ich nicht einfach den USB-I2S Wandler mit als Master verbauen (und sonst gar nicht weiter nutzen), da dieser eine richtige USB Verbindung für die Takterzeugung benötigt, einfach nur 5 V dran funktioniert leider nicht.

Einfach einen Clock nehmen, den dann alle als Referenz nehmen - wie soll das gehen?
Wenn das CSR Board als Slave eingestellt ist erwartet er nicht nur einen Masterclock sondern auch noch die passenden I2S Clocks (wie sie eben z.B. der USB-I2S Umsetzer bereitstellt). Ist das CSR Board als Master eingestellt erzeugt er zwar die I2S Clocks, wie soll er sich dann aber auf den externen Masterclock synchronisieren?
Einfach das CSR Board als Master laufen zu lassen und den fehlenden Masterclock dem DSP mit irgendeinem Clock geben funktioniert natürlich nicht, das muss ja wieder mit den I2S Clocks zusammenpassen.

Das Einfachste wäre wohl, wenn man dem CSR Board noch einen Masterclock entlocken könnte, da sehe ich aber keine Möglichkeit.

Sonst wäre meine Lösung einen beliebigen I2S Master (zum Beispiel einen I2S ADC) mit zu verbauen, der die ganzen Clocks vorgibt, und das CSR Board als Slave zu verwenden. Dann hat man eine externe Taktquelle , die alle nötigen Takte erzeugt, und der DSP und das CSR Board synchronisieren sich darauf. Ist eben eine unschöne Lösung, da das CSR Board ja eigentlich selber als Master funktionieren kann - nur erzeugt er eben keinen Mastterclock, den der DSP zwingend braucht.

Ich hoffe, das ist halbwegs verständlich. Ist irgendwie komplizierter als ich dachte. Laut Wikipedia scheint für I2S auch nicht zwingend ein Masterclock erforderlich zu sein, der DSP will aber trotzdem nicht ohne. Unterbreche ich den Masterclock herrscht sofort Stille.
 
Reply
aha - ok. 
der I2S ist ein (von Philips) festgelegtes Format zur Übertragung, 3 Signale, wie SPI , Daten/Bitclock/L-R-sync ; fertisch.
+ nen "master-clock" braucht nur ein eventuell schneller laufender Prozessor, der "irgendwie" sync zum Datensignal werkeln soll;
typisch war das in CD-playern, der master-clock (meist 16,9344MHz) ist der Takt für "DSP" , digital-Filter usw. , davon geteilt ergeben sich Bit- und word-clock;
was deinem Set also fehlt, ist ein master-clock und die davon abgeleiteten Takte;
das sollte aber genau zb der I2S-output des ADAU liefern, wenn er als master läuft (was er muss, wenn er zb nen DAC beliefern soll).
"Knacksen" deutet auf einen asynchron laufenden clock hin, der immer wieder neu synchronisiert wird - dann knackt es irgendwo.
Gurke

wenn der ADAU output seinen master-clock ausgibt und diese Signale an bit+wordclock vom input und  der CSR Platine anliegen, dann muss es fehlerfrei funktionieren, sofern der CSR wirklich als slave werkelt, was ja auch mit dem extra-USB-dings als Takt-lieferant geht.
sieh dir mal den ADAU output an - is der sync zu den anderen Takten?  (dann MUSS es gehen...)
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
Genau, mit dem I2S Output als Master vom ADAU1701 geht es ja, nur eben nicht Fehlerfrei.
Dieser Trick, den Output als Master zu verwenden um für einen Input-Slave die Takte zu erzeugen steht ja auch im Dateblatt vom ADAU1701 bei den GPIO Pins.
Vielleicht hilft es, wenn ich den Ton morgen mal aufzeichne und irgendwo hochlade?
Es ist kein offensichtliches, lautes Knacksen. Es taucht vielleicht alle 3 Sekunden auf und ist nicht sofort als Knacksen erkennbar, es klingt einfach nur irgendwie komisch. Erst beim genaueren Hinhören, je nach Musikstück mal einfacher oder mal schwerer hört man das Störgeräusch raus.

Was du schreibst klingt durchaus logisch, so wie wenn da was auseinanderläuft und sich dann immer wieder neu synchronisiert.
Eine weitere Idee habe ich noch, die ich mal testen werden:
Auf dem ADAU1701 Board (das bekannte Sure Board) ist ein 12.000 MHz Quarz verbaut, aus irgendwelchen Gründen ist bei solchen Anwendungen ja ein 12.288 MHz Typ üblich, ich meine das hatte auch irgendwas mit I2S zu tun. Sure hat das auch in der neuen Boardversion geändert.
Das Sure Board ist nur mein Experiementieraufbau, letztendlich soll das ja an einem ADAU1701 laufen, der auf dem Class-D Verstärker verbaut ist. Dort ist auch ein 12.288 MHz Quarz verbaut. Wenn du meinst, dass das vielleicht das Problem sein könnte werde ich den Aufbau morgen mal am "richtigen" DSP auf dem Class-D Verstärker testen.

Mit dem externen USB-I2S Wandler als Taktgeber funktioniert es ja eben einwandfrei, also prinzipiell funktioniert das alles schon. Nur mit den Takten vom ADAU nicht so wirklich.

Was meinst du damit ob der ADAU output synchron zu den anderen Takten ist? Zu welchen Takten soll welcher Output synchron sein? 4 Kanal Oszi (DSO, uralt, grüner Röhrenmonitor, schwer und groß wie ein alter Rechner) wäre vorhanden.

Eine weitere Frage hätte ich noch, vermutlich ist da christian der richtige Ansprechpartner:
Ich möchte an den Boards eine externe Antenne anbringen und habe dazu auch schon 2,4 GHz Antennen aus einem Laptopmonitor vom Schrott geklaut.
Auf der Rückseite vom Board ist der "C7" (der in wirklichkeit ein 0 R Widerstand ist), der müsste den Antenneingang mit der Antenne verbinden. Den habe ich entfernt und direkt auf die Oberseite an die Anschlüsse vom CSR Board (nicht der großen Platine ausendrum) die Antennne gelötet. Die Reichweite hat sich dabei aber kaum verändert, bis kurz hinter die Wohnungstür war der Empfang möglich. Ich habe mir da ein bisschen mehr erhofft, habe ich was falsch gemacht? Muss noch mehr modifiziert werden oder reicht einfach das entfernen der Brücke auf der Rückseite um dann die Antenne direkt dranzulöten?
An der Antenne hängt noch ein halber Meter Koaxkabel, aber das hat ja auch damals beim WLAN Empfang sicher nicht gestört.

Ach ja, so sieht mein Board aus.
 
Reply
12Mhz sind das Problem, wenn dein CSR 44.1kHz ausgibt. Bei 48kHz sollte es laufen. Mit welchem internen Takt laufen die DSP Programme?

Ohne SRC zwischen CSR und DSP sollte bei 44.1kHz aber eh nichts kommen, wenn der DSP auf 48kHz läuft. Wobei, eventuell bekommt die PLL im CSR das noch so hingebogen, was auch erklärt, warum sie manchmal die Geschwindigkeit ändert.
 
Reply
Sowohl DSP als auch CSR laufen mit 48 kHz.
Ich werde das als nächstes mal mit einem DSP versuchen, dass einen anderen Quarz hat.

Edith hat herausgefunden:
Es lag am Quarz!
Mit dem DSP auf dem Verstärkerboard mit dem "richtigen" Quarz geht es einwandfrei. Also CSR als Slave und Takterzeugung vom DSP selber über dessen als Master eingestellte Outputs.

Ihr glaubt gar nicht wie glücklich ich bin!
Das Zeug macht genau was es soll, USB und Bluetooth ohne Probleme, super Qualität, das Programmieren hat ohne größere Schwierigkeiten geklappt, jetzt kann es mit den eigentlichen Lautsprecher weitergehen!
 
Reply
na siehste !
was war denn der falsche bzw richtige ?
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
12 gegen 12.288 getauscht?
 
Reply
Mein eigentliches Projekt sind ja zwei Aktivlautsprecher, für die ich Class-D Verstärker habe, auf denen gleich ein ADAU1701 sitzt. Dieser hat einen 12,288 Quarz.
Die ganzen Vorversuche, um die I2S Geschichte grundsätzlich zum laufen zu bringen habe ich auf einem Sure-Board gemacht (nicht gleich den Verstärker killen wenn irgendwas schief geht). Auf den Sure-DSP Boards der ersten Generation (ohne Betriebs-LED) waren noch 12.000 Quarze verbaut, warum auch immer, die neue Generation hat jetzt auch 12,288 Quarze.
Auf dem alte Sure-Board lief es eben nur mit Aussetzern bzw. mit einer externen Taktquelle.
Jetzt habe ich das vorhin alles am DSP auf dem Class-D Verstärker angeschlossen und schon funtkioniert es ohne störende Geräusche.

Jetzt gäbe es nur noch eine kleine Sache:
Das CSR Board schaltet ja automatisch zwischen den Quellen um, was normalerweise auch sehr praktisch ist.
Ich habe an der Rückplatte der Lautsprecher allerdings einen Umschalter zwischen Analog, Bluetooth und USB vorgesehen, den ich gerne verwenden würde. Den Umschalter habe ich einfach mal als 4-fach Umschalter ausgeführt, somit habe ich genug Möglichkeiten um irgendwelche Pins abhängig von der Schalterposition auf irgendwelche Potentiale zu legen.
Im Konfigurationsprogramm gibt es leider keine offensichtliche Einstellung für eine manuelle Quellenwahl.
Die wäre für mich relativ praktisch, da sich dann bei der USB-Wiedergabe, die wohl sehr oft verwendet wird, nicht immer gleich das Smartphone mit dem CSR verbindet sobald Blutooth am Handy aktiv ist. Denn Bluetooth hat Vorrang vor USB und so passiert es, dass die USB Wiedergabe immer unterbrochen wird wenn ich eine Nachricht bekomme, nur damit das Bluetoothboard den Benachrichtungston vom Smartphone abspielen kann.
Gibt es da vielleicht doch eine (versteckte) Möglichkeit das umzusetzen? Es würde auch schon reichen abhängig von einem PIO Pin das ganze Bluetooth am CSR zu deaktivieren wenn es keine Möglichkeit der manuellen Quellenwahl gibt.
 
Reply