Hi, ich brauche mal euren Rat :-) Ich habe hier ein System bestehend aus zwei Komponenten: Servo-Motor-Steuerung und Bedienpanel. Über das Bedienpanel lässt sich die aktuelle Position des Motors ablesen. Außerdem gibt es zwei Tasten, um den Motor zu verstellen. Beide Teile sind mit folgenden Leitungen verbunden: - GND + VCC (5V) - RX + TX - 4x ? (zu den Leitungen konnte ich keine Infos finden. Ggf. werden die garnicht genutzt) Nun würde ich gerne die Kommunikation mit einem µC belauschen, und die aktuelle Motorposition auch am PC anzeigen. Später würde ich gerne auch über den PC Tastendrücke simulieren. Einen kleinen AVR µC mit Verbindung zum PC (via USB) habe ich schon vorbereitet. Nun ist nur die Frage, wie ich die "Busleitungen" anzapfe... Meine erste Idee: Ganz simpel über Widerstände (1kOhm?) jede Leitung in den µC abzweigen. Dort dann die Leitungen an Digitale Pins legen. Die können dann (je nachdem ob gelauscht oder gesendet werden soll) als Eingang oder Ausgang konfiguriert werden. Ist das ein guter Ansatz? Oder könnte ich das System dadurch beschädigen? Wäre sowas wie eine Galvanische Trennung notwendig? Danke für euren Rat!
Hallo Boris, ich denke Logic Analysator und Oszi wären hier wohl Mittel der Wahl. Ists ein Servo so müsste er ja mit PWM angesprochen werden. Das hier schon durchgelesen: http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung Thomas
Du brauchst einen Mikrocontroller mit drei seriellen Schnittstellen. Also einen AVR aus der Xmega Reihe. Außerdem solltest du herausfinden, wozu die unbekannten vier leitungen dienen. Möglicherweise werden dort genau die Informationen übertragen, die für deine Anwendung relevant sind. Den Mikrocontroller schleifst du in die Verbindung ein, so dass er die Signale weiter reicht und dabei aufzeichnet und irgendwie an den PC sendet.
1 | Bedienfeld Servo |
2 | __________ |
3 | Tx >---------|Rx Tx|----------> Rx |
4 | | µC | |
5 | Rx <---------|Tx Rx|----------< Tx |
6 | | | __________ |
7 | | | | |----- 5V |
8 | | Tx|--*--| USB UART |----- D+ USB PC |
9 | | Rx|--*--| |----- D- |
10 | |__________| |__________| |
11 | | | |
12 | GND o-------------+--------*-------+----------- GND |
Ob eine Galvanische Trennung notwendig ist, hängt davon ab, ob PC und Motosteuerung das gleiche GND Potential haben. Falls sie nicht gleiches Potential haben, sollten zwei Optokoppler zwischen Mikrocontroller und USB-UART positioniert werden (mit * markiert). Die GND-Verbindung kann dann an dieser Stelle getrennt werden.
> Logic Analysator
Diese Geräte können IMHO nur mitlesen. Er will auch Daten senden.
Für den Einstieg ist der Logic Analyzer trotzdem erst wahl. Damit kann man neben der Erkennung der Baudrate (die auch mit dem Scope möglich ist) nämlich auch den Inhalt der Kommunikation verfolgen und parallel die anderen I/Os loggen. Wenn man dann verstanden hat was da gemacht wird, kann man sich mit einem µC dazwischen schalten und eingreifen. Mit freundlichen Grüßen Thorsten Ostermann
@Thorsten: Danke für die Klarstellung, das war auch genau was ich meinte. Bevor ich einen uC anfasse würde ich erstmal mit LogikAnalysator und/oder Scope den Datentransfer ansehen und verstehen. Danach würde ich weitergucken... Thomas
Thomas schrieb: > Danke für die Klarstellung, das war auch genau was ich meinte. > Bevor ich einen uC anfasse würde ich erstmal mit LogikAnalysator > und/oder Scope den Datentransfer ansehen und verstehen. Blöd nur, wenn man ein solches Gerät nicht sein eigen nennt... Ich hatte eigentlich vor, das auch mit dem µC zu erldigen. D.h. In einer Endlosschleife alle digitalen Eingänge lesen, die Bits zu einem Byte zusammensetzen und dass dann per Serieller Schnittstelle an den PC senden (mit maximaler baudrate, 115200 bps?). Meine Hoffnung war, dass ich die Kommunikation so schnell genug abtasten kann, um sie nachher am PC zu analysieren... War das zu naiv gedacht? ;-)
@Boris: Nein, war es nicht. Wo es aber Selea Clones schon ab ein paar Euros gibt würde ich mir die Mühe nicht machen. Schließlich musst du mit dem uC ja auch das Timing analysieren.
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.