-
-
Erfahrener Benutzer
Fleißiges Mitglied
Ich glaube, dass man das Prinzip eines R/2R-DAC nicht zur Generierung von Sinuskurven optimieren kann. Die sich abschwächende Steigung eines Sinus kannst du damit nicht nachbilden, da immer wieder die gleichen LSB mit ihren festen Werten verwendet werden und der Anstieg eines Sinus bei sagen wir 0-10 Grad ein ganz anderer ist als bei 80 - 90 Grad. Das Prinzip R/2R funktioniert aber nur, wenn die Steigung konstant ist. Keine sehr gute Erklärung, aber ich glaube, dass das gedanklich richtig ist.
Ich wollte auch eine Mikroschrittendstufe mit einem µC aufbauen, habe mich dann aber zu einer hartverdrahteten Logik umentschieden, da sie einfach schneller ist. Ich habe die Kurvenzüge in zwei EPROMs abgelegt(da reicht ja selbst ein 27C16 für die zillionenfache Datenmenge aus), der Datenbus führt zu je einem AD7524 DAC. Zähler in einem CPLD sind für die Adressgenerierung da. Der µC tickert nur die Zähler rauf und runter, das macht ein Timerinterrupt.
Jan
-
Erfahrener Benutzer
Roboter-Spezialist
Das mit dem Eeprom ist ne interessante Sache, aber wie genau funktioniert das? Man legt also einfach die entsprechenden Werte (bits) im Eeprom ab und spricht die richtigen Addressen an. D.h. die verschiedenen Mikroschritte sind sicher in Array's im µC abgelegt, oder? Leider kenne ich mich mit Zählern nicht so aus, ist aber vom Prinzip klar. Nur was ist ein CPLD? Kannst Du vielleicht eine kleine Skizze für die Ansteuerung des Zählers bis DAC geben? Klingt nach der besten Variante, die man treffen kann.
Vielen Dank, Ruppi
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo Ruppi,
ein CPLD ist ein programmierbarer Logikbaustein, größer als ein GAL, kleiner als ein FPGA. Ich habe so ein IC genommen, da ich noch ein paar Sonderfunktionen mit in die Schaltung aufgenommen habe, die wenn sie aus Einzel-ICs aufgebaut worden wären, die Schaltung aufgebläht hätten.
Für einen bipolaren Motor brauchst du zwei EPROMs, zwei DACs und eine Zählereinheit. Die gilt für beide EPROMs, da die Mikrostep-Spannungsfolgen ja konstant 90° auseinander sein müssen.
In ein EPROM schreibst du also einen Sinus von 0-360° und in das andere den Cosinus 0-360°, beginnend mit ADresse 0. Die Anzahl der einzelnen Sinussegmente bestimmt die erreichbare Schrittzahl, ist klar.
Ich habe dir gerade mal den Schaltplan gezeichnet.
Bild hier
/Reset ist low aktiv und setzt die Zähler gleich 0, Dir legt die Drehrichtung fest und ein Puls an Step bewirkt einen einzelnen Schritt.
Der Prozessor muss also für jeden Schritt nur einmal einen Port toggeln. Von der Frequenz, mit der das passiert, ist die Verfahrgeschwindigkeit abhängig. Die Pulse habe ich mit einem Timer-interrupt erzeugt. Der Prozessor muss sonst keine intelligenten Aufgaben im Zusammenhang mit der Steuerung wahrnehmen.
Der Analogteil ist nicht mitgezeichnet. Der AD7524 ist ein r2r-DAC und braucht einen I/U-Konverter (im Datenblatt ist eine Standardapplikation).
Jan
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen