SPI-"Ähnliches" Signal von CD-Wechsler für Autoradio auswerten

Moin aus Bremen,

ich versuche gerade, mittels Arduino das Datenprotokoll eines Audi-CD-Wechslers zu entschlüsseln/auszuwerten.
Die Steuerbefehle an den Wechsler habe ich schon entschlüsselt und kann sie nachbilden, jetzt habe ich mir mal die Rückmeldung vom CD-Wechsler angeschaut, da komme ich an meine Grenzen.

Es gibt für diesen Kanal eine "Clk" und eine "Data" Leitung, über die der Wechsler kontinuierlich den Status überträgt. Dieses Datenpaket besteht aus 8 Bytes mit je 2 ms pause dazwischen, dann folgt eine Pause von 40ms, dann folgt die nächste Übertragung der 8 Bytes. Takt 114khz. Bei der Datenleitung ist ein HIGH-Pegel eine logische Null.

Im Anhang mal 3 Oszi-Screenshots der Übertragung mit verschiedenen Time Bases, sodass man alle Abstände gut erkennen kann - gelb ist die Takt- und blau die Datenleitung.

Ich möchte jetzt die Informationen aus dem 2. und 3. Byte (hier werden CD- und Track-Nummer ausgegeben) mittels Arduino auslesen/auswerten - der rest ist nicht notwendig.

Sieht für mich - bis auf das "invertierte" Datensignal und die fehlende SlaveSelect-Leitung nach einer SPI-Schnittstelle aus... Daher werden vermutlich die bekannten SPI-Libraries nicht in Frage kommen... oder?

Ich habe nun schon mittels bitbang/polling in Kombination mit einer "digitalWriteFast"-Lib versucht das ganze auszuwerten, das klappt auch grundsätzlich - aber nicht 100% zuverlässig, vermutlich ein Timingproblem, und die Methode kommt bei 114khz an ihre Grenzen... Code dazu und ein Screenshot der Ausgabe im Anhang (eigentlich sollten die Datenblöcke alle identisch sein).

Habt ihr eine Idee, wie man das lösen könnte?

Gruß Dennis

bitread.txt (1.18 KB)

Warum versuchst Du Dich jetzt im Crossposting?

Gruß Tommy

Tommy56:
Warum versuchst Du Dich jetzt im Crossposting?

Gruß Tommy

Ganz einfach - ich bin aufgrund anderer URL und nicht übergreifenden Nutzeraccounts davon ausgegangen dass das hier ein anderes Forum ist... :wink:

Das ist ein anderes Forum, Du solltest Dich aber mal schlau machen, was Crossposting ist und warum es verpönt ist.

Gruß Tommy

Ich bin seit 20 Jahren in Foren aktiv, aber dass Portalübergreifendes Posting als Crossposting verpönt ist, war mir neu- ich gehe davon aus, dass sich auf unterschiedlichen Portalen unterschiedliche Nutzergruppen aufhalten, und wenn mir auf einem nicht geholfen wird, es legitim ist, evtl noch einmal woanders nachzufragen. Falls ich falsch liege, tut es mir leid.

Du hast es also nicht nötig, Dich darüber zu informieren. Auch gut, das sagt viel über Dich aus.

Gruß Tommy

... und wenn schon überall hausiert wird, sollte man so fair sein und Das auch in jedem thread erwähnen.
Bringt Einem keine Zusatz-Beliebtheits-Punkte, aber der Hass, wieder nur einen Schmarotzer füttern zu dürfen, ebbt etwas ab.

Nun wissen zumindest die Leute aus den beiden Foren, daß man sich um Nichts kümmern muß, da der Typ ja eh 'Nebenan' mit Antworten versorgt wird ... oder eben nicht, ganz einfach :slight_smile:

Ist so, als wenn Du in einem Fachgeschäft die Beratung abgreifst (gern auch in Mehreren) und dann bei eBay die Ware vom fC beziehst ...

such doch mal nach "arduino audi cd emulation"

harryberlin:
such doch mal nach "arduino audi cd emulation"

https://lmgtfy.com/?q=arduino+audi+cd+emulation

GitHub - tomaskovacik/vwcdavr: AVR alternative to vwcdpic HW+SW

Habe ich schon, beschäftige mich seit wochen mit dem Thema und weiß langsam nicht mehr wo mir der Kopf steht :wink: Das einzige Beispiel, wo wie bei mir benötigt, Daten dieser Schnittstelle empfangen und nicht gesendet werden, ist aus deinem unteren Link der Sniffer - allerdings funktioniert dieser bei mir nicht korrekt und spuckt nur mist aus... Evtl liegt das aber auch daran, dass ich nicht den Original-Wechsler habe, sondern einen Bluetooth-Wechsler-Emulator, der vermutlich die Daten etwas schneller sendet. Das dazugehörige Radio kann dies verarbeiten, der Arduino vermutlich nicht mehr...