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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gad Z. (gad)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


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

von Gad Z. (gad)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Gad Z. schrieb:
> danke für die hilfreiche Antwort.

Gerne, freut mich, dass es klappt!

Jim

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.