Hallo! Ich habe einen Motor mit Inkrementalgeber, der das Signal als Line Driver Signal ausgibt (also RS-422-Pegel). Eine vielleicht dumme Frage: Ich habe außerdem einen USB-RS485-Adapter, basierend auf einem FTDI-Chip. Den sehe ich ja im Windows als einen COM-Port und könnte darüber eine serielle Kommunikation laufen lassen. Jetzt ist die Frage: Könnte ich diesen Adapter dazu "missbrauchen", dieses Signal auszuwerten? Danke!
Moin, klar, sowas mache ich auch, zum Sniffen funktioniert das wunderbar. Nur Modbus I/O geht wegen dem schlecht definierten Timing bedingt gut.
"Line Driver" kann alles mögliche heißen. Aber in diesem Kontext ist RS-422 möglich. Aber RS-422 und RS-485 sind rein elektrische Spezifikationen; darüber kann irgendein Protokoll laufen. Dein USB-Adapter erwartet UART, dein Inkrementalgeber liefert das wahrscheinlich nicht. Gibt es zu diesem Motor-Ausgang eine Dokumentation?
zhg schrieb: > Inkrementalgeber, der das Signal als Line > Driver Signal ausgibt (also RS-422-Pegel). Das ist kein serielles Signal und kann daher mit einem USB-Adapter auch nicht empfangen werden - die Spannungen sind schon in Ordnung, aber die Impulsfolgen nicht. Georg
Georg schrieb: > Das ist kein serielles Signal und kann daher mit einem USB-Adapter auch > nicht empfangen werden - die Spannungen sind schon in Ordnung, aber die > Impulsfolgen nicht. Der Kniff ist es, RX mit einem der Steuerpins zu verbinden. Damit bekommt man z.B. auch einfache Flanken eingelesen, ist dann natürlich kein RS232, man missbraucht nur die Steuerleitungen. ;)
Detler schrieb: > Damit bekommt man z.B. auch einfache Flanken eingelesen, aber nur sehr, sehr langsame, denn dank USB sind maximal 1000 Abtastungen pro Sekunde möglich. Betrachtet man eine UART, so tastet die üblicherweise mit 16- oder 8facher Taktfrequenz ab, um das Signal sicher erkennen zu können. Mit so einer "Software-UART" per UART-Handshakeleitung kommt man also auf bestenfalls 120 Bits/sec. Schnell ist anders.
Danke für die Antworten. Clemens L. schrieb: > "Line Driver" kann alles mögliche heißen. Aber in diesem Kontext ist > RS-422 möglich. > > Aber RS-422 und RS-485 sind rein elektrische Spezifikationen; darüber > kann irgendein Protokoll laufen. Dein USB-Adapter erwartet UART, dein > Inkrementalgeber liefert das wahrscheinlich nicht. > > Gibt es zu diesem Motor-Ausgang eine Dokumentation? Das ist mir schon alles klar, deshalb war die Frage, ob man da vielleicht mit einem Trick auf den internen UART des FTDI-Chips zugreifen könnte. Im Grund geht es nur um das Nullsignal des Encoders und nicht um einen tatsächlichen Encoderchannel (der viel schneller kommt). Das Nullsignal kommt ja vergleichsweise langsam, bei Drehzahlen so von 100 bis 3000rpm.
zhg schrieb: > Ich habe außerdem einen USB-RS485-Adapter, basierend auf einem FTDI-Chip. zhg schrieb: > Das ist mir schon alles klar, deshalb war die Frage, ob man da > vielleicht mit einem Trick auf den internen UART des FTDI-Chips > zugreifen könnte. Dann guck doch mal, ob dein FTDI-Chip Handshake-Leitungen weiterreicht.
zhg schrieb: > Im Grund geht es nur um das Nullsignal des Encoders und nicht um einen > tatsächlichen Encoderchannel (der viel schneller kommt) Wie sieht das aus? Gibts ein Datenblatt resp. eine Beschreibung des Encoders, so daß man sich mal die Signale ansehen kann?
zhg schrieb: > Im Grund geht es nur um das Nullsignal des Encoders und nicht um einen > tatsächlichen Encoderchannel Und worin soll der zusätzliche Erkenntnisgewinn bestehen, verglichen mit einem Oszi oder Frequenzzähler oder auch nur einer LED? Georg
Rufus Τ. F. schrieb: > Wie sieht das aus? Gibts ein Datenblatt resp. eine Beschreibung des > Encoders, so daß man sich mal die Signale ansehen kann? Was willst noch für eine Beschreibung? Nein gibts nicht, da das ein älterer Motor ist. Das Nullsignal ist einfach ein Puls nach jeder vollen Umdrehung (ca. 20µs lang, was ich auf dem Oszi gesehen habe), der Puls wird über einen Line Driver IC mit RS-422 Signalpegel ausgegeben... Georg schrieb: > Und worin soll der zusätzliche Erkenntnisgewinn bestehen, verglichen mit > einem Oszi oder Frequenzzähler oder auch nur einer LED? Die Idee ist mir beim Entwickeln gekommen, ob es denn nicht möglich wäre, mit einem dieser RS-485-Adapter mit FTDI-Chip, die ich sowieso hier liegen habe. Wolfgang schrieb: > Dann guck doch mal, ob dein FTDI-Chip Handshake-Leitungen weiterreicht. Genau, das war die Frage: Kann ich darauf in Windows irgendwie zugreifen? Die FTDI-Chips sind ja recht verbreitet und ich habe gesehen, dass es da auch umfangreiche SDKs gibt (in die ich mich jetzt nicht einarbeiten will), deswegen dachte ich, ob es schon was fertiges gibt.
Wieso Handshake-Leitungen? Wenn der Null-Puls (der natürlich entsprechend auf GND gezogen werden muss) eine einigermassen konstante Länge hat, die entsprechend der Baudrate in 9 bits passt, kommt einfach irgend ein Zeichen an. Bis zu den 9 Bits kann man auch noch die Pulsbreite auswerten. Da brauchts kein SDK, mit einfacher UART-Abfrage bei 115200 bps bist du auf der sicheren Seite mit deinen 20us. Nur auf den Zeitpunkt des Eintreffens kannste dich bei USB bedingt verlassen, zum Zählen reichts aber.
zhg schrieb: > Das Nullsignal ist einfach ein Puls nach jeder vollen Umdrehung (ca. > 20µs lang, was ich auf dem Oszi gesehen habe), der Puls wird über einen > Line Driver IC mit RS-422 Signalpegel ausgegeben... Naja, aber diese Beschreibung hattest Du noch nicht von Dir gegeben. Das bedeutet, daß auf der entsprechenden Leitung nichts anderes los ist als dieser 20µs-Puls pro Umdrehung? Um den abzutasten, ist eine UART à la FT232 allerdings ungeeignet, inbesondere die Handshakeleitungen geben das gar nicht her. Nimm einen µC oder ein fertiges µC-Board wie den kleinsten verfügbaren Arduino und lass' den das machen.
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.