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.
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
Ich konnte nur das DS fuer MAB25 finden, aber da steht nix von gray code.
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>
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
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 :-)
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.
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.