Schrittmotoren

stepper.h

#ifndef STEPPER_H
#define STEPPER_H

#include <peripherals/microstepper.h>

unsigned int make_index(unsigned int frequency);
void init_freq(struct stepper *stpr, unsigned int startindex, unsigned int topindex);
void init_acc(struct stepper *stepper0, unsigned int startindex, unsigned int topindex, unsigned int tmp1);
void init_stepper(struct stepper *stepper0, unsigned int startfrequency, unsigned int topfrequency, unsigned int time);
void set_idle_pwr(struct stepper *stepper0, unsigned int pwr_down_sel); 
void init_motion(struct stepper *stepper0, unsigned int steps_msb, unsigned int steps_lsb, unsigned int direction) ;
void go(struct stepper *stepper0);
void estop(struct stepper *stepper0);
unsigned int is_moving(struct stepper *stepper0);
#endif

microstepper.h

microstepper.h
#ifndef __MICROSTEPPER_H
#define __MICROSTEPPER_H

#define STEPPER_RAMP_INT_CNT        5   
#define STEPPER_FSYS                25000
#define STEPPER_FSTART              ((STEPPER_FSYS>>9)+(STEPPER_FSYS>>10)+(STEPPER_FSYS>>11)+(STEPPER_FSYS>>12)+(STEPPER_FSYS>>13)+(STEPPER_FSYS>>15))
#define STEPPER_FMAX                (11*1000*8)
#define STEPPER_DELTAF              (STEPPER_FMAX-STEPPER_FSTART)

#define STEPPER_START_BIT           0
#define STEPPER_ESTOP_BIT           1
#define STEPPER_DIRECTION_BIT       2
#define STEPPER_PWR_DOWN_SEL_BITS   3
#define STEPPER_IDLE_BIT            5

#define STEPPER_NO_IDLE_PWR         0
#define STEPPER_QUARTER_IDLE_PWR    1
#define STEPPER_HALF_IDLE_PWR       2
#define STEPPER_FULL_IDLE_PWR       3

typedef struct stepper {
    volatile unsigned int ramp_conf[STEPPER_RAMP_INT_CNT*2+1];
    volatile unsigned int steps_msb;
    volatile unsigned int steps_lsb;
    volatile unsigned int mode;
    volatile unsigned int speed;
    volatile unsigned int acc;
} microstepper_regs_t;

#endif

Versuchsaufbau mit dem Memec Board

Der Motortreiber Modul wird mit einem 50 poligem Flachkabel am Steckverbinder JP29 des Memec-Boards angeschlossen. Die Logik des Motortreibers muss mit einer 5 V Spannungsquelle verbunden werden. Der Anschluss (x3) befindet sich oberhalb des Kühlkörpers. Im Versuchsaufbau wurde mit dem blauen Draht das 5 V Netzteil des Memec-Boards verbunden. Die Masseverbindung aller Schaltungsteile miteinander wird durch die 4 gesteckten Jumper mit den Massekontakten am Steckverbinder JP29 hergestellt. Für die Schaltungen zur Stromregelung werden auf der Leiterplatte des Motortreibers zwei Brücken zu den 3,3 V am Steckverbinder JP29 hergestellt. Die 3,3 V liegen am Schraubverbinder oben Links (x7) auf der Leiterplatte. Der + Pol rechts muss mit dem gleich daneben angeordneten Schraubverbinder (x6) rechts und mit dem am unteren Rand der Leiterplatte befindlichen Schraubverbinder (x5) links verbunden werden. Die 30 V für die Motoransteuerung muss mit dem Schraubverbinder (x4) an der rechten Seite der Leiterplatte in der Mitte hergestellt werden. Oben rot mit + 30 V und unten schwarz mit - 30 V. Nun ist nur noch der Schrittmotor anzuschließen. Eine Wicklung wird mit der Schraubklemme (x2) am rechten Rand der Leiterplatte oberhalb des 30 V Anschluss verbunden und die Zweite mit der Schraubklemme (x1) am rechten Rand der Leiterplatte unterhalb des 30 V Anschluss verbunden. Im Bild sind an der oberen Klemme (x2) oben eine grüne und unten eine schwarze Leitung angeschlossen. Die zweite Wicklung ist mit der unteren Klemme (x1) oben rot und unten blau zu verbinden. Die Mittelanzapfungen beider Wicklungen (weiß und gelb) werden nicht benötigt und müssen isoliert werden. In den folgenden beiden Bildern und dem im 3. Punkt verlinkten Schaltplan können Sie das alles überprüfen.
Soll das im Foto zu sehende gelbe Rad 100 Umdrehungen ausführen, dann muss der Motor 1600 Umdrehunen (2560000 Mikroschritte) ausführen und dazu werden nur 35 Sekunden benötigt.
  • Bild des Versuchsaufbaus
  • Bild vom Motortreiber
  • Schaltung des Motortreibers
  • Zustände des Automaten zur Ansteuerung des Motors. Beim Test hat sich herausgestellt das noch ein STOPP Zustand notwendig war um den Motor korreckt anzuhalten wenn im Wartezustand nicht mit dem vollen Strom gearbeitet werden soll.
  • Dokumetation zum Schrittmotor ECM243
  • Farben der Schrittmotorenanschlüsse
  • Aktuelle Konfiguration auf dem Memec Board


SpartanMC