Forum: Mikrocontroller und Digitale Elektronik mit mbed lpc1768 schrittmotorsteuerung ueber rs485 ansteuern


von Andi (Gast)


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?

von Gerd E. (robberknight)


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.

von Andi (Gast)


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?

von Gerd E. (robberknight)


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.

von Andi (Gast)


Lesenswert?

http://de.nanotec.com/dyn_downloads_ind/242/Programmierhandbuch_V2.6_de.pdf

Ich denke, dass hier das Protokoll beschrieben ist.

Es wäre alternativ lt. Hersteller auch möglich das Teil über eine RS232 
Schnittstelle zu steuern, jedoch sind die RS232/RS485 Kabel ziemlich 
teuer, besonders die vom Hersteller selbst (für andere gibt es natürlich 
keine Haftung).

von Andi (Gast)


Lesenswert?

Gibt es irgendwo ein gutes Programmierbeipsiel, das zeigt wie ich das am 
besten angehen kann?

von Andi (Gast)


Angehängte Dateien:

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

von Andi (Gast)


Lesenswert?

hat keiner ein Kommentar dazu...?

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
Noch kein Account? Hier anmelden.