I2C Motortreiber AMIS30624

OP #4258589
Lesenswert?

Hallo allerseits,



ich steuere im Moment eine Schrittmotor mittels eines I2C 
Schrittmotorentreibers ( AMIS 30624 Datenblatt: 
http://www.onsemi.com/pub_link/Collateral/AMIS-30624-D.PDF ) an für ein 
etwas größeres Projekt. Der Motor hat einen Schrittwinkel von 15° und 
ist zusätzlich noch mit einem Getriebe versehen welches eine 
Untersetzung von 900 hat.

Jetzt habe ich ein gaaaaanz großes Problem.
Ich kann ohne weiteres diesen Motor keine volle Umdrehung fahren lassen, 
da mir wahrscheinlich die Untersetzung einen Strich durch die Rechnung 
macht.

Wenn ich es richtig verstanden habe, kann ich mit dem Schrittmotor nur 
bestimmte Targets anfahren (S.17/18 Datenblatt). Wenn ich nun den Punkt 
32767 anfahre dreht sich ein herkömmlicher Schrittmotor ohne 
Untersetzung zig male, der jetzige jedoch vielleicht nur ca. 20°.

Any Ideas ? Habe ich evtl. etwas falsch verstanden im Datenblatt? Habe 
soweit alles durch. Ich dachte eher an eine Funktion, in der ich dem 
Treiber mitteilen kann das er z.B. 21600 Schritte für eine volle 
Umdrehung ausführen soll

(21600 weil ->360/( 15° Schrittwinkel_Motor * Untersetzung ( 1/900 ) ) )



Bin über jeden Tipp dankbar.
#4258707
Lesenswert?

Hallo,

wahrscheinlich nicht sehr hilfreich, weil der Motor wohl zum Stehen 
gebracht werden muss.Das wäre zu testen.
>ResetPosition
>This command is provided to the circuit by the I 2 C master
>to reset ActPos and TagPos registers to zero. This can be
>helpful to prepare for instance a relative positioning.
>ResetPosition corresponds to the following I 2 C command frame:
OP #4259016
Lesenswert?

Christian B. schrieb:
> Schau mal in Tabelle 11 des Datenblattes. Dort steht, daß der
> Treiber
> +/- 2048 Vollschritte machen kann.

Ja bei einem Herkömmlichen Motor (Schrittwinkel 1,8°) würde mich das auf 
ca. 10.24 Umdrehungen bringen.


Bei meinem Getriebemotor jedoch ca. 0.09 Umdrehungen also ca. 34.133 
Grad pro volle Umdrehung.



Zu Antwort 2:
Im Moment führe ich eine for-Schleife aus, welche permanent eine 
SetPosition auf 32768 ausführt und nach dieser fahrt gleich die Position 
zurücksetzt also ResetPosition. So habe ich nach 16 Durchgängen eine 
volle Umdrehung ( nach Augenmaß )
#4259088
Lesenswert?

Aber mit Präzision hat das dann nicht mehr viel zu tun oder?
Leider kenne ich mich zu wenig damit aus, aber ich würde sagen: der 
Treiber ist für die Anwendung nicht geeignet. Evtl. gibt es einen 
geeigneteren? Auf jeden Fall gibt es Treiber die nur Takt und 
Richtungseingang haben und dann den Motor bewegen. Wenn du deine 
Steuerung entsprechend umprogrammieren kannst ist so etwas 
möglicherweise besser geeignet. (z.B.: A3987 von Allegro Mikrosystems)
OP #4264698
Lesenswert?

Ok werde mir mal diesen Treiber zulegen und schauen ob es funktioniert.

Egal wie ich es drehe und wende ich komme einfach nicht auf ein 
richtiges Ergebnis mit dem AMIS 30624.


Wenn ich eine 90° Drehung machen möchte,

führe ich den Treiber im Half Step Mode aus.
Das Positioning geht von -4096 <- 0 -> + 4095 (im Halbschrittmodus)
Also wenn ich die Position 4095 von null aus anfahre müssten das bei 
meiner Übersetzung 34.13° drehung ergeben. Das mache ich zwei mal und 
nun sollten mir ca 21,7 ° übrig bleiben... Das wären ungefähr 2600 
Halbschritte für den o.g. Motor

Meiner Rechnung zufolge inkl. 3er Bitshift und SignedBit = 1
wäre das ein Datenwort von 0xD1 und 0x40 oder löse ich das Datenwort 
einfach falsch auf ?

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