Hallo zusammen, ich habe hier gerade ein sehr altes Autoradio liegen (Pioneer KEH9030SDK) und wollte versuchen den Bus vom Frontpanel auszulesen um Daten über die Tasteneingaben zu bekommen. Das Problem ist nur, dass ich dieses Protokoll noch nie so gesehen habe und die Chips von Pioneer selbst hergestellt wurden. (Gelb ist SCK not und Blau ist SI) Daher allein aus Interesse die Frage an euch: Wisst ihr was das für ein Busprotokoll ist bzw. wie es funktionieren könnte? Vielen Dank im vorraus
Maximilian O. schrieb: > (Gelb ist SCK not und Blau ist SI) Es fehlt SO. Warum lässt du es nicht von einem Logikanalysator dekodieren? > 20us.png Für ein digitales Signal sieht das nicht gut aus
:
Bearbeitet durch User
Das Radio gab es anscheinend schon 1986, ein Jahr bevor SPI erfunden wurde. Man sieht aber, dass es eigentlich getrennte SI und SO Leitungen gibt, welche zusammen geschlossen wurden. Man könnte also denken, dass es sich einfach um ein syncrones serielles Protokoll handelt. Allerdings sieht es eher so aus, als ob die Daten eher über die Pulsweite übertragen werden. Diese 8 Bit am Anfang sind nämlich immer gleich, und das einzige was variiert ist die länge des Blocks danach.
Maximilian O. schrieb: > Das Radio gab es anscheinend schon 1986, ein Jahr bevor SPI erfunden > wurde. I²C gibt es seit 82, aber das Format passt nicht so ganz. Rainer W. schrieb: > Für ein digitales Signal sieht das nicht gut aus Die runden steigenden Flanken wären recht typisch für I²C...
Niklas G. schrieb: > Die runden steigenden Flanken wären recht typisch für I²C... Gut sieht das trotzdem nicht aus, auch wenn I2C damit vielleicht gerade noch klar käme. Eine Signalbezeichnung "SI" wäre für I²C allerdings ausgesprochen ungewöhnlich. Schon als Philips den I²C-Bus 1982 eingeführt hat, hießen die Signals SCL und SDA. Außerdem reicht für I²C die Anzahl der Clock-Pulse nicht aus.
:
Bearbeitet durch User
Ja SPI und I2C würde ich auch ausschließen. Warscheinlich ist es wirklich etwas proprietäres, aber dennoch wüsste ich gerne wie es funktioniert. Jetzt mal mit LA: D0 SCK not D1 SO D2 SI Wie gesagt zu beachten ist das SI durch die Schaltung Low wird wenn SO High ist. Ich habe in Idle 3 mal markiert was ich mit der Pulsweite meine. Außerdem habe ich mal eine Reihe aufgenommen, die zeigt was passiert, wenn ich einmal die Plus taste drücke. Es ist bei dem Knopf immer die selbe Reihe, nur unterschiedliche zoomstufen.
Ich vermute das ist einfach ein synchrones, serielles Protokoll bei dem die beiden Richtungen offenbar unterschiedliche Clock-Frequenzen benutzen (grob geschätzt ca. 15 kHz und 150 kHz). Da in beide Richtungen übertragen wird, ist anzunehmen, dass sowohl die Clock- als auch die Datenleitung irgendwo einen Pull-up haben, und von den beiden Busteilnehmern auf low gezogen werden können. Im Schaltplan sieht man auch die das Senden einen entsprechenden Transistor an der Datenleitung hängen. Das sehr simple Protolkoll scheint immer damit zu beginnen und synchronisiert zu werden, dass eine Seite die Datenleitung auf low zieht und danach die Übertragung von 8 Bit mit auf der langsameren Frequenz stattfindet (SPI, Datenübernahme bei steigender CLK Flanke). Nachdem 8 Bit in eine Richtung übertragen wurden, wartet die Gegenseite vermutlich einfach bis die Datenleitung wieder "losgelassen" wird (high wird), bevor sie eine Antwort zurückschickt. Das sind dann ebenfalls wieder 8 Bit, SPI, ebenfalls auf steigende Flanke, bei der ca. 10-fach höheren Clock-Frequenz. Und dann geht das Spiel wieder von vorne los. Man kann an den beiden leicht unterschiedlichen Low-Pegeln ganz gut erkennen, dass es zwei unterschiedliche Stellen sind, die den Bus abwechselnd kontrollieren. Deswegen ist es immer gut nicht nur einen Logic-Analyzer draufzuschmeissen, sondern sich das Ganze auch erstmal analog anzugucken, so wie du es gemacht hast. Dass die Flanken bei der schnelleren Clock so rund sind, kann übrigens auch an der Kapazität deines Tastkopfes liegen. Stelle mal auf "x10" um, wenn es das gibt. PS: weil jemand sagte SPI gäbe es erst seit 1986, Schieberegister gab es schon deutlich früher und das Protokoll entspricht dem von SPI.
:
Bearbeitet durch User
Rainer W. schrieb: > Gut sieht das trotzdem nicht aus, auch wenn I2C damit vielleicht gerade > noch klar käme. Warum? Schau Dir mal das Signal eines mit 100MHz betrieben Quad-SPI Flash an. Das sieht genau so aus, da gibt man sich sogar extra Mühe das gerade eben keine harten Schaltflanken da sind, EMV und so...
Andreas M. schrieb: > Schau Dir mal das Signal eines mit 100MHz betrieben Quad-SPI > Flash an. Hier geht es um 150kHz Clock. Bei I²C im Fast-Mode ist lt. Specs eine maximale Fall- bzw. Rise-Time von 300ns zulässig.
Schau dir mal das philips Dsa Protokoll an. Kann so was in der Art sein. Ich habe jetzt nicht alle Bilder angeschaut, also kann sein das es nicht passt.
Danke an alle Beiträge und Hinweise, vermutlich ist es aber wirklich so wie Joe F. es erklärt hat. Vielen Dank dafür! Ich werde mich dann jetzt erstmal dran machen das ganze noch weiter auszulesen und würde den Thread noch gerne kurz offen lassen falls dabei noch Fragen aufkommen.
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.