Forum: Mikrocontroller und Digitale Elektronik Encoder SSI gekappter Gray-Code


von Gad Z. (gad)


Lesenswert?

Hallo,
ich habe einen Absolut-Encoder (MAB22 mit IC-MH) mit 12-Bit SSI 
Interface, welches laut Datenblatt die 12 Bit als 13-Bit gekapptem 
Gray-Code ausgibt.

Mein problem ist, das Oszi mehr als 13 Bit auf der Schnittstelle 
geändert werden.
Und nach der Gray-Code Wandlung zu Binär habe ich Spünge drin in meinen 
werten.

Hat jemand Erfahrung mit dem Auslesen einer solchen Schnittstelle?
Ich brauche keine Hilfe für das Auslesen selber oder die Gray-Code 
Wandlung.
Aber ich stehe irgendwie auf dem Schlauch, was ich mit dem gekappten 
Gray-Code anfangen soll.
Ich bräuchte ja den Startwert wo der gekappte Gray-Code beginnt, oder?

Beitrag #5497161 wurde vom Autor gelöscht.
von TK (Gast)


Lesenswert?

Hallo,

Deine Beschreibung ist ohne Bild der Signale für mich unverständlich.
Wenn der Encoder 12bit ausgibt, dann kommen auch 12bit raus.
Was ist 13bit gekappter Gray-Code bei einem 12bit Encoder?
Und ja - natürlich gibt der Encoder auch mehr als 12bit aus, wenn Du 
mehr Taktimpulse übergibst (da fängt das Schauspiel nämlich wieder von 
vorne an)

>Und nach der Gray-Code Wandlung zu Binär habe ich Spünge drin in meinen
>werten.
Dann ist die Wandlung falsch. Oder der Encoder dreht soooo schnell, dass 
die Sprünge von da her kommen (dann liest Du zu langsam)

>Ich bräuchte ja den Startwert wo der gekappte Gray-Code beginnt, oder?
Wo die SSI Ausgabe beginnt, steht ja in der Norm, meistens nach Ablauf 
der Monoflop-Zeit (man muss nur wissen, wie groß die jetzt ist)

Gruß
TK

von Johann Klammer (Gast)


Lesenswert?

Ich konnte nur das DS fuer MAB25 finden, aber da steht nix von gray 
code.

von Gad Z. (gad)


Angehängte Dateien:

Lesenswert?

Danke für die Antworten...

Zum besseren Verständnis hier ein Ausszug aus dem Datenblatt.
Außerdem ein Auszug aus einem Dokument, welches den Gray-Code erklärt.

Das ganze Datenblatt gibt es bei www.ichaus.de

Ich lese die Daten zwar mit SPI, aber momentan schaue ich nur am 
Analyser, was tatsächlich vom Sensor geschickt wird.
Ebenso rechne ich den Gray-Code zum Testen manuell um.

Ich würde jetzt nach dem Datenblatt zwei Bytes erwarten mit 13-Bit und 
führenden Nullen und einem Stop-Bit, die z.B. so aussehen:
<00111111> <11111110>

Tatsächlich lese ich folgende Bytes am Lgikanalyser.
Davor steh der theoretisch erwartete Binärwert bei 12-Bit Aufkösung der 
Sensordaten.
Komisch ist vorallem, das sich beim Wechsel von Wert 4095 zu 0000 die 
Bits 1 und 15 gleichzeitig ändern. Das ist ja bei Gray eigentlich 
unmöglich.


Wert_MSB_______LSB
4094_<10000000><00010010>
4095_<10000000><00000010>
0000_<00000000><00000000>
0001_<00000000><00010000>

von Jim Panse (Gast)


Lesenswert?

Hallo Gad,

Du taktest ja 16 Bit aus. Das sind mehr als die 13 Bit des SSI 
Standards, wie im iC-MH Datenblatt beschrieben.

Bit 15-4: 12 Bit Winkelwert, Gray-codiert
Bit    3: Das 13te Bit für SSI Konformität, "0"
Bit    2: SSI Stop-Bit, "0"
Bit  1-0: Bit 15-14, Datenwort Wiederholung?

Prüf mal, ob die Daten wiederholt ausgegeben werden. Kannst ja ein 
weiteres Byte austakten.

Noch was, ich glaube das mit dem gekappten Code kannst du vergessen. 
Nimm einfach die 12 Bit Winkelwert und fertig.

Jim

von Gad Z. (gad)


Lesenswert?

Hallo Jim,
danke für die hilfreiche Antwort.

Ja ich takte 16 Bit aus weil ich ja über SPI immer nur ein Byte 
empfangen kann.

Hatte mich wohl zu sehr auf irgendwelche 13-Bit eingeschossen wegen dem 
gekappten Gray-Code.

Habe es gerade getestet, ist tatsächlich so das Bit 4-15 die 12-Bit 
Gray-Daten enhält.
Nach Wandlung Gray=>Binär enhalte ich saubere 0-4095 :-)

von Veit D. (devil-elec)


Lesenswert?

Hallo,

du kannst per Software SPI exakt soviele Takte senden / Bits lesen wie 
du benötigst. Und du musst das Timeout zwischen den Lesezyklen 
einhalten. Am Besten das Datenblatt vom iC-MH von ichaus besorgen.

von Jim Panse (Gast)


Lesenswert?

Gad Z. schrieb:
> danke für die hilfreiche Antwort.

Gerne, freut mich, dass es klappt!

Jim

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.