microstepping DAC werte berechnen

OP #1603846
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
Angehängte Dateien:
OP #1603859
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
Gast #1603917
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

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