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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.