Forum: Analoge Elektronik und Schaltungstechnik L6480 Motortreiber


von Manfred R. (marius1993)


Angehängte Dateien:

Lesenswert?

Guten Tag zusammen,

ich bin zurzeit am entwickeln einer Motortreiberplatine. Der 
Motortreiber ist von ST Bez.: L6480. Die Platine habe ich bereits fertig 
aufgebaut(Schaltung aus dem Datenblatt). Am Ausgang hängt ein 
Schrittmotor von Nanotec Bez.: ST4118M1404-A 1,7V 1,4A. Der Motortreiber 
wird über eine SPI Schnittstelle programmiert. Ich möchte den 
Motortreiber über einen Arduino programmieren. Nun habe ich Probleme ein 
einfaches Testprogramm zu schreiben, da ich in diesem Gebiet nicht ganz 
so fit bin. So wie ich es aus dem Datenblatt rauslesen konnte, gibt es 
verschiedene vorgefertigte Register. Die mit verschiedenen Werten 
"gefüttert" werden können. Aber den Durchblick habe ich nicht und werde 
ich ohne Hilfe auch nicht bekommen. Ein einfaches Beispielprogramm würde 
mir schon sehr weiter helfen. Im Netz habe ich leider nicht viel 
gefunden. Im Anhang noch ein Bild von meinem Versuchsprogramm.

Vielen Dank ich hoffe mein Problem ist einigermaßen verständlich.
Mani

: Verschoben durch Admin
von Sascha_ (Gast)


Lesenswert?

Oben links findest du das AVR-GCC Tutorial.

von Cyblord -. (cyblord)


Lesenswert?

Au Backe. Du kannst das Datenblatt nicht und lesen postest Quellcode als 
.docx? So wirst du hier nicht viele Freunde finden.

Kannst du denn wenigstens mal beschreiben, was du an den Registern nicht 
verstehst? Im Datenblatt ist JEDER Register kurz beschrieben. Also was 
dessen Funktion ist.

Warum nimmst du keinen einfacheren Schrittmotortreiber, wenn du mit 
komplexen programmierbaren Treibern überfordert bist?

: Bearbeitet durch User
von Manfred R. (marius1993)


Lesenswert?

Entschuldige die schlechte Darstellung. Ich verstehe was die einzelnen 
Register für einen Zweck haben. Sind die Register nur dazu da, den 
Controller richtig zu konfigurieren? Und wie programmiere ich das? Z.B 
mein MAX_SPEED – Register?. Brauche ich die verschiedenen Register nur, 
sobald ich ein Kommando über meine SPI Schnittstelle dem Kontroller 
schicke dass das auf die Verschiedene Register zurückgreifen kann. Z.B. 
Ich schicke dem Kontroller das Kommando Run, greift er dann auf mein 
MAX_SPEED, MIN_SPEED usw. Register zurück. Muss ich alle Register 
konfigurieren?
Ein simples Programmbeispiel z.B.
Ein Register konfigurieren und daraufhin ein Kommando an den Kontroller 
senden.

Ich muss mit diesem Motortreiber arbeiten, da ich diesen vorgegeben 
bekommen habe. Ich wünschte mir auch es wäre leichter aber da muss ich 
jetzt durch. Ich hoffe mit eurer Hilfe bekomme ich den Durchblick
Vielen Dank

von Klaus (Gast)


Lesenswert?

Manfred R. schrieb:
> Ich muss mit diesem Motortreiber arbeiten, da ich diesen vorgegeben
> bekommen habe.

Job oder Studium?

MfG Klaus

von uwe (Gast)


Lesenswert?


von Manfred R. (marius1993)


Lesenswert?

Nein, hatte ich noch nicht gelesen. Danke hat mir sehr weiter geholfen! 
Wie ich aus diesen PDF-Dateien rauslesen konnte, muss ich zuerst 
folgende Dinge konfigurieren: MAX_SPEED, MIN_SPEED, ACC, DEC. Jetzt kann 
ich mir diese Daten berechnen mit der vorgegebenen Formel (Seite 45/46) 
im Datenblatt z.B. MAX_SPEED = [step/s]= (MAX_SPEED * 2^-18)/tick
Nachdem ich das berechnet habe, bekomme ich einen Zahlenwert im Bereich 
zwischen 15,25 steps/s bis 15610 steps/s als Ergebnis. Wie baue ich nun 
mein Register auf(Binär Code) damit der Controller was damit anfangen 
kann?

Ist für meine Studium.

Vielen Dank

von uwe (Gast)


Lesenswert?

Mit dem SetParam Kommando schreibst du jetzt die Werte, die du 
ausgerechnet hast, in die entsprechenden Register dessen Adresse in 
Tabelle 11 auf Seite 43 des Datenblattes stehen.

von uwe (Gast)


Lesenswert?

Auf Seite 62 des Datenblattes stehen die Kommando Bits.
Also z.B. für SetParam Bit 7 und 6 und 5 auf 0 in Bits 4 bis 0 die 
Adresse des Parameters (ACC z.B 0x05). Auf Seite 64 Siehst du nun die 
genaue Beschreibung vom Kommando SetParam. In Tabelle 11 Steht das 12 
Bits für ACC benötigt werden.  man kann aber in Tabelle 11 auch sehen 
das ACC nach dem Reset 0x8A enthält. Vieleich reicht das ja schon für 
deinen Motor.

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.