Forum: Analoge Elektronik und Schaltungstechnik L6480 Motortreiber


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Manfred R. (marius1993)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Oben links findest du das AVR-GCC Tutorial.

von Cyblord -. (cyblord)


Bewertung
2 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

Job oder Studium?

MfG Klaus

von uwe (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Manfred R. (marius1993)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.