Hallo, ich habe einen FPGA (Spartan 3E EVO-Board) an dem ein Servo hängt. Die Übertragung erfolgt mittels einem RS232 ähnlichen Signals nur "One Wire" (nur 3,3V). Der Servo tut was er soll, nur nicht antworten. Für die Antwort des Servos muss der FPGA 0x00 und 0x00 senden. Der Servo zieht dieses Signal dann auf LOW. Dafür setze ich den Ausgang auf "hochohmig" z und arbeite mit einer "Open-Drain" Schaltung mit einem Pullup-Widerstand von 3,3kOhm (habe ich irgendwo in ner Xilinxs-Anleitung gefunden). Leider schafft der Servo es nicht das Signal auf Low zuziehen (Aufm Oszi sieht man es gut, er zieht nur auf ca. 2,5V runter). Ich habe versucht den Pullup Widerstand zu vergrößern, ohne Erfolg. Irgendwann wird die Spannung so gering, dass das Empfangen auch nicht klappt. Ich komme nicht weiter, vielleicht sehe ich auch den Wald vor lauter Bäumen nicht. Wie kann ich so was realisieren? Gruß Snowyrain
Höchst wahrscheinlich setzt Du das Signal nicht auf hochohmig. Zeige einmal wie dein Kode aussieht und ev. wie die Schaltung.
Hallo, vielen Dank für Antwort. Hier die Zeilen: RX_B_intern<= '0' when TXRX_B ='1' else '1'; TXRX_B <= '0' when TX_B_intern ='1' else 'Z'; Ich habe intern ein Modul mit einer Seriellen-Schnittstelle hier sind: RX_B_intern : Eingang TX_B_intern : Ausgang Das Signal TXRX_B (INOUT) ist der Ein/Ausgang zum Servo. Die Invertierung ist drin, da ich erst alles mit einem MAX232 getestet habe. Da tat alles wie es sollte. Nur jetzt mit nur einem Pin klappt es nicht. Er empfängt nur immer das was er sendet. Auf dem Oszi sieht man das der Servo das Signal versucht runter zuziehen aber es nicht schafft. Vielen Dank für Mühe! Gruß Snowyrain
@ Samuel Schmidt (Firma Student) (snowyrain) >RX_B_intern<= '0' when TXRX_B ='1' else '1'; >TXRX_B <= '0' when TX_B_intern ='1' else 'Z'; Passt soweit. >nicht. Er empfängt nur immer das was er sendet. Auf dem Oszi sieht man >das der Servo das Signal versucht runter zuziehen aber es nicht schafft. Pull-Up zu klein? Falschen Widerstand erwischt? MFG Falk
Bleibt TX_B_intern auch brav auf '0' während des Empfangs?
@ Klaus Falser (kfalser)
>Bleibt TX_B_intern auch brav auf '0' während des Empfangs?
Ist egal, dann würde es ja auf jeden Fall auf LOW gezogen, aber nicht
auf HIGH hängen bleiben.
MFG
Falk
Hallo, mir ist ein echt blöder Fehler passiert. Die Schaltung hatte einen Masse-Fehler. Vielen Dank für die Hilfe. Habe die Servos mit einer fliegenden Verdrahtung angeklemmt und es geht. Sogar mit dem Internen PullUp-Winderstand. Gruß Snowyrain
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.