Forum: Mikrocontroller und Digitale Elektronik Unbekannter serieller Bus


von Julian (Gast)


Angehängte Dateien:

Lesenswert?

Moin!
Ich habe ein Laser-Entfernungsmessgerät bei dem ich die Kommunikation 
zwischen Chip und Display abgreife, um so an die gemessenen Daten zu 
kommen. Das Prinzip ist in dem Forum erklärt: 
https://forum.arduino.cc/index.php?topic=427556.0;images Dort hat jemand 
ein Programm hochgeladen, in dem er händisch das Signal dekodiert. Unter 
anderem ist an "keineZeit"s-Post 
(https://forum.arduino.cc/index.php?topic=427556.msg3653021#msg3653021) 
ein Oszi-Bild angehängt, welches die Kommunikation zwischen Chip und 
Display zeigt, welches ich nun auch hier angehängt habe.

Ich habe das Programm bereits benutzt und es funktioniert soweit in 
Ordnung, allerdings fragte ich mich, ob man die Kommunikation nicht 
deutlich vereinfachen könnte, indem man das Busprotokoll herausfindet, 
über den kommuniziert wird.

Auf dem Bild sind drei Signale zu sehen:
Gelb: Eine Art Clock-Signal
Türkis: Das Datensignal
Lila: Eine Art Byte-Beginn-Ende-Signal

Da es ein Clock-Signal gibt, scheint es ein synchroner Bus zu sein, 
somit fallen die asynchronen Busse, wie One-Wire-Bus oder UART 
prinzipiell raus. Meine Vermutung liegt bei I2C oder SPI.

Was gegen I2C spricht, ist die niedrige Standard-Pegel auf dem 
Datensignal, der ja normalerweise High wäre und zum Beginn einer 
Übertragung auf Low gezogen werden würde. Entsprechend fällt dieser 
meines Erachtens ebenfalls weg.

Bei SPI könnte ich mir vorstellen:
Gelb - Clock (invertiert), Türkis - MOSI, Pink - Chip-Select
Soweit ich weiß, startet SPI nach dem Chip-Select "einfach so" die Clock 
und signalisiert damit, dass Daten gesendet werden. Das würde ja 
prinzipiell auch so passen, allerdings wundert mich hierbei der lange 
LOW-Pegel der Clock zu Beginn der Übertragung, den es so bei SPI ja 
eigentlich nicht gibt und vorallem mit dem kurzen High-Peak sämtliche 
Hardware ausm Takt bringen könnte?

Habt ihr eine Ahnung, um welchen Bus es sich hier handelt? Es haben sich 
bereits diverse Leute mit dem Thema beschäftigt, allerdings konnte ich 
nirgends was finden, dass jemand den Bus ausgemacht hätte. Ich kann mir 
hingegen auch nicht vorstellen, dass der Display-Treiber einen 
proprietäres Protokoll benutzt. Vielleicht könnt ihr mir meine Vermutung 
mit SPI bestätigen oder habt ne andere gute Idee, immerhin gibt es ja 
doch so einige Busse...

Schöne Grüße
Julian

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Soweit ich weiß werden die anzuzeigenden Segmente einfach als seriellen 
Datenstrom in das Diplay geschickt. Da ist kein spezielles Protokoll da 
hinter.

von Julian (Gast)


Lesenswert?

Okay, also einfach eine Art Schieberegister? Das ist natürlich auch 
möglich.

von Mario M. (thelonging)


Lesenswert?

Julian schrieb:
> (https://forum.arduino.cc/index.php?topic=427556.msg3653021#msg3653021)

"Die Schnittstelle hat etwas von einem 68x8 bitigem Schieberegister. 
Jedes Bit entspricht einem Anzeigefeld."

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
Noch kein Account? Hier anmelden.