Forum: Mikrocontroller und Digitale Elektronik microstepping DAC werte berechnen


von Philipp P. (putzer_philipp)


Angehängte Dateien:

Lesenswert?

Hallo allerseits!


Ich möchte gerne einen Schrittmotor im Microstepping Betrieb betreiben, 
dafür verwende ich den L6258 von ST.

Über je vier Leitungen pro Phase, also für jede Spule vier Leitungen, 
gebe ich dem DAC den Referenzstrom vor. Steuere ich den DAC geeignet an 
so erzeugt er mit im Stator ein Sinusförmiges Signal. Der zweite macht 
das gleiche, nur halt Phasenverschoben.

Im DB des Chips steh wie ich den Chip ansteuern muss, diese Signalwerte 
hab ich in ein array übertragen und mit einer Indexvariablen lauf ich im 
Timer interrupt da durch. Die Werte steigen und sinken linear (wie im 
Anhang)

Nun wollte ich fragen, da ich schon den ganzen abend kopfe, ob es nicht 
irgend eine Formel oder so was gibt damit ich die Werte nicht im Array 
speichern muss?

Oder ist das Durchlaufen des Arrays die einfachte und beste Lösung?


Gruß und Dank

Philipp

von Helmut S. (helmuts)


Lesenswert?

Das sind idealerweise einfach Sinus- und Cosinus-Werte, skaliert mit 
einem konstanten Faktor um Zahlen für die PWM zu bekommen.

Eine Tabelle ist die beste Lösung. Sinus und Cosinus in Echtzeit mit 
Reihenentwicklung zu rechnen wäre Verschwendung.

von Philipp P. (putzer_philipp)


Lesenswert?

der chip hat glaub ich schon einen nichlinearern DAC drein, also das was 
ich ihm gebe sind nur ganz normel zahlen von 0 bis 15, die setzte er 
dann entsprechend um. ich hab mir aus der signalform im DB die werte 
herausgesucht, hat lange gedauert, und habe dann gesehen dass da nur 
einfach rauf und runter gezält wird

von Reinhard Kern (Gast)


Lesenswert?

Philipp Putzer schrieb:
> der chip hat glaub ich schon einen nichlinearern DAC drein, also das was
> ich ihm gebe sind nur ganz normel zahlen von 0 bis 15, die setzte er
> dann entsprechend um. ich hab mir aus der signalform im DB die werte
> herausgesucht, hat lange gedauert, und habe dann gesehen dass da nur
> einfach rauf und runter gezält wird

Hallo,

wenn der DAC schon Sinus macht, kannst du dir natürlich alles Weitere 
sparen. Ansonsten verwende ich auch "Hand Made" Tabellen, weil man das 
wohl oder übel selbst optimieren muss. Bei 4 Bit linearem DAC verwende 
ich die Folge 0 6 11 14 15 14 11 6 0... Daraus ist auch zu ersehen, dass 
man nur die Tabelle 0..90 Grad braucht, der Rest zu 360 Grad ergibt sich 
durch Spiegelung. Man sieht auch, dass es bei 4 Bit wenig Sinn macht, 
einen Schritt in mehr als 8 oder 16 Mikroschritte aufzuteilen.

Gruss Reinhard

von Philipp P. (putzer_philipp)


Lesenswert?

hm, ja stimmt, einen Schritt in so kleinen schritten aufzuteilen haut 
mit den meisten Motoren (die billigeren eben) eh nicht so gut hin.

ich werds mal mit deien Werten versuchen, die hast du dann auch nur in 
einer Tabell vorliegen, oder? Also ohne eine Rechenvorschrift oder 
sonstwas?

Gruß
Philipp

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.