mit mbed lpc1768 schrittmotorsteuerung ueber rs485 ansteuern

Gast #2899702
Lesenswert?

Hi!

Also gleich vorweg- ich bin Anfänger in Sachen Mikrocontroller...

Ich möchte gerne 2 Schrittmotoren mit meinem mbed nxp lpc1768 board 
ansteuern. Die Schrittmotoren verfügen über eine Schrittmotorsteuerung:

http://de.nanotec.com/schrittmotorsteuerung_smci33.html

Diese verfügen über jeweils eine RS485 Schnittstelle.

Ich denke, dass ich dafür Treiber wie diese brauche:

http://uk.rs-online.com/web/p/line-transceivers/0412905/

und dazu noch 2 D-SUB-9 Stecker.

Liege ich da richtig?
#2899794
Lesenswert?

> Ich denke, dass ich dafür Treiber wie diese brauche:
>
> http://uk.rs-online.com/web/p/line-transceivers/0412905/

ja, sowas in der Richtung.

Z.B. bei einem Programmierfehler kann es bei RS485 vorkommen, daß Dein 
µC und die Schrittmotorsteuerung gleichzeitig senden. Dabei können u.U. 
die RS485-Treiber kaputt gehen. Um davor (und anderen Fehlern) geschützt 
zu sein nehme ich gerne Fault protected Treiber, gibts z.B. von Maxim:
http://para.maximintegrated.com/en/results.mvp?fam=rs485&267=60

> und dazu noch 2 D-SUB-9 Stecker.

wozu die? Wenn ich mir das Bild von der Steuerung so anschaue, möchte 
die lieber direkt Drähte eingesteckt bekommen. Würde ich daher auf der 
µC-Seite ähnlich machen.
Gast #2899809
Lesenswert?

Gerd E. schrieb:
> wozu die? Wenn ich mir das Bild von der Steuerung so anschaue, möchte
> die lieber direkt Drähte eingesteckt bekommen. Würde ich daher auf der
> µC-Seite ähnlich machen.

Der Stecker für RS485 ist oben drauf.



Wie programmiert man das eigentlich? Kann ich davon ausgehen, dass ich 
das von der microcontroller seite, ein einfaches uart programm schreibe 
mit dem ich nachrichten schicke? worauf ist noch zu achten?
#2899820
Lesenswert?

> Wie programmiert man das eigentlich? Kann ich davon ausgehen, dass ich
> das von der microcontroller seite, ein einfaches uart programm schreibe
> mit dem ich nachrichten schicke? worauf ist noch zu achten?

du musst schauen was die steuerung für ein protokoll will. RS485 ist 
normal unidirektional, daß heißt Du musst zwischen senden und empfangen 
umschalten. Über das Protokoll ist geregelt wer wann senden darf. Ist 
also nen bischen anders als nen Terminalprogramm am PC, das ist 
bidirektional.

Ein gängiges Protokoll über RS485 ist z.B. Modbus.
Gast #2902715
Lesenswert?

Also ich hab mir das jetzt genauer angesehen und eine kleine Skizze 
erstellt.

Um sicherzugehen, dass ich das ganze verstanden habe, habe ich eine 
kleine Skizze gemacht und in den Anhang gestellt.
Die Anschlüsse für den D-SUB 9 Stecker habe ich aus dem Datenblatt für 
die Schrottmotorsteuerung.

Da ich keine Verwendung für gleichzeitiges Senden und Empfangen sehe, 
gehe ich davon aus, dass ich einen Half-Duplex Treiber brauche.

Da die Anschlüsse A und B invertierte und nicht invertierte 
Datenleitungen sind, bin ich davon ausgegangen, dass ich die RX+ und TX+ 
Anschlüsse kurzschließen kann und an den nicht invertierten Anschluss 
für die Datenübertragung an den Treiber (A) führen kann. Analog dazu RX- 
und TX- an den invertierten Anschluss (B).
Liege ich da richtig?

Im Datenblatt des Treibers (MAX13422E) ist angeführt, dass ich A und B 
mit einem 120 Ohm Widerstand kurzschließen soll. Kann ich davon 
ausgehen, dass im Anschluss der Schrittmotorsteuerung auch ein solcher 
Widerstand vorhanden ist, oder muss ich den Widerstand selbst zwischen 
(RX+,TX+) und (RX-,TX-) einbauen?

Aus dem Programmierhandbuch für den Controller entnehme ich folgendes 
Protokoll für die Kommunikation:

- Jeder Befehl startet mit dem Zeichen # und endet mit '\r'
- Nach dem Startzeichen kommt die Adresse des Motors
- Danach der Befehl als ASCII-Zeichen

Nach Abarbeitung erhält man eine Antwort der Steuerung

Danke
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren