PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wieso benötigt RN Control (1.4 ) für integrierten Motortreiber gleich 3 freie Ports??



Soeren7
07.09.2012, 17:41
Hallo,

ich stieß neuerdings auf ein Problem.
Ich hatte mir eine Schrittmotorsteuerung gekauft, dich ich nun mit einem 10poligen Kabel an das RN-Control Board 1.4 anschließen wollte.

Da ich allerdings den Motortreiber vom RN Control 1.4 Board nutze für 2 Elektromotoren, musste ich feststellen, dass diese gleich alle
3 freien Ports belegen. Zudem nutzt der Motortreiber jeweils nur 2 Pins von jedem Port.

Auszug aus Handbuch:
PORT B:
Pin 1 PB0 / T0 / XCL / wird vom Motortreiber für Motor 2 Kanal 1 genutzt
Pin 2 PB1 / T1 / wird vom Motortreiber für Motor 2 Kanal 2 genutzt

PORT C:
Pin 7 PC6 / TOSC1 / wird vom Motortreiber für Motor 1 Kanal 1 genutzt
Pin 8 PC7 / TOSC2 / wird vom Motortreiber für Motor 1 Kanal 2 genutzt

PORT D:
Pin 5 PD4 / OC1B / wird für PWM Motor 1 benutzt (Geschwindigkeitsregelung)
Pin 6 PD5 / OC1A / wird für PWM Motor 2 benutzt (Geschwindigkeitsregelung)


Nun benötige ich für die Schrittmotoransteuerung nur 2 Pins.
für die Bewegung:
setportcon(0);
waitms(1);
setportcoff(0);

Und für die Richtungsänderung:
if (bit_is_set (PINC,PA1)) //überprüfung, ob PA1 gesetzt
setportcoff(1); //PA1 auf 0 setzten
else
setportcon(1); //PA1 auf 1 setzten

Und die Spannungsversorgung + Masse denk ich mal.
Also so sieht die Belegung der Schrittmotoransteuerung aus:

Pin 1 Clock/Takt (bei GND Flanke bewegt sich Motor einen Schritt)
Pin 2 CW/CCW (Drehrichtung, Pullup vorhanden)
Pin 3 RESET (Pullup vorhanden)
Pin 4 CNTL
Pin 5 H/F (Halb- oder Vollschritt, Pullup vorhanden)
Pin 6 Enable (Motor wird durch GND ausgeschaltet, Pullup vorhanden)
Pin 7 SYNC
Pin 8 HOME
Pin 9 GND / Masse
Pin10 Logikspannung +5V (dient zur Versorgung der Schaltung)

Was kann man nun tun?
Obwohl ich bzw. von PORT C nur Pin 0 und Pin 1 anspreche, die ja nicht vom Motortreiber auf dem Rn-Board genutzt werden,
bleibt mein Schrittmotor stehen sobald die 2 Elektromotoren stehen bleiben. (ala setPWMlinks(0); setPWMrechts(0);)

Würde mich über Hilfe sehr freuen!!
Mfg Sören

Hubert.G
08.09.2012, 10:01
Mit setzten von Kanal 1 und 2 auf 0 ist der Motor im Freilauf, werden beide Kanäle auf 1 gesetzt wird der Motor gebremst.
Mit nur einem Kanal auf 1 wird die Drehrichtung umgeschaltet.
Daher drei Pin je Motor.
Dein Problem wird, nehme ich mal an, Software seitig sein.

oberallgeier
27.12.2013, 10:06
... Kanal 1 und 2 auf 0 ist der Motor im Freilauf, werden beide Kanäle auf 1 gesetzt wird der Motor gebremst ...Hallo Hubert,

mir waren schon früher drei Zustände bei den Motortreibern aufgefallen - schon beim MiniD0 mit dem L293D - wie am RNControl. Derzeit habe ich ne Platine mit zwei VNH2SP30 als Motortreiber und da stelle ich beim Test folgendes fest:
- Beide Kanäle auf 0 - die Drehzahl geht rasch auf Null, der Motor wird schnell langsamer
- Beide Kanäle auf 0 - die Drehzahl geht abrupt auf Null, der Motor steht fast augenblicklich
- Beide Kanäle auf 0/1 bzw 1/0 UND PWM auf 0 - der Motor läuft "geruhsam" aus

Dazu kommt natürlich noch der vierte Zustand, den ich schon früher mit Sprungantworten ausgemessen und hier vorgestellt hatte:
- Beide Kanäle auf 0/1 bzw 1/0 und PWM auf "Gegenschub". Hier muss aber auf Stillstand geprüft werden, damit das Vehikel nicht in die Gegenrichtung abdampft (erinnert mich deutlich an entsprechende Bremsmanöver bei meinen Segeltörns).

Nun würde ich den dritten Fall - Motor läuft "geruhsam" aus - wie beim Auto (und um den von Dir benutzten Begriff "Freilauf" zu umgehen) als Leerlauf bezeichnen dort läuft das Fahrzeug einfach aus (aber am Berg einfach runter). Interessant ist das allemal, ich werde bei passender Gelegenheit mal alle vier Zustände ausmessen und die Sprungantworten dazu vorstellen. Immerhin ist das rechtzeitige Abbremsen bei Fahrrobotern wichtig, daher finde ich die Abstufung der einzelnen Verfahren und deren quantitativen Unterschiede schon von Interesse.

Hubert.G
27.12.2013, 11:22
Hallo Joe
In meinem vorhergehenden Beitrag habe ich vergessen zu erwähnen das Freilauf oder Bremsen auch vom Enable abhängig ist. 1 Bremsen, 0 Freilauf.
Ich hatte mal ein Datenblatt in dem alle möglichen Zustände aufgelistet waren, ist aber leider in den Computertiefen verschwunden.

oberallgeier
27.12.2013, 12:56
Hallo Joe ... Ich hatte mal ein Datenblatt in dem alle möglichen Zustände aufgelistet waren ...Au weiha - da spotte ich immer über alle, die ihre Datenblätter nicht lesen und dann . . . dies. Aber nun hatte ich es gelesen, hab ja sogar mehrere (und die hatte ich irgendwann auch gelesen): TI, STM etc.


FUNCTION TABLE
(each driver)
INPUTS† OUTPUT
A EN Y
H H H
L H L
X L Z

H = high level, L = low level, X = irrelevant,
Z = high impedance (off)
† In the thermal shutdown mode, the output is
in the high-impedance state, regardless of
the input levels.