Hallo Gemeinde,
ich bastle gerade an einem einfachen BLDC-Treiber für einen 2-phasigen Motor mit einem ATTINY44. Ja, er ist wirklich nur 2-phasig, Drehrichtung ist egal und ich brauche auch keine Drehzahlsteuerung (also kein PWM). Deshalb schreibe ich "einfacher" BLDC-Treiber. Er treibt nur eine Kolbenpumpe an. Drehzahl ist nur so ca. 2500 RPM, sollte also auch kein großes Timingproblem sein. Aber für mich wohl doch nicht so "einfach"
Also, per Zwangskommutierung bringe ich ihn zum Laufen (das klappt auch). Danach will ich mit dem integrierten Komparator über die BEMF den Nulldurchgang erfassen.
Das habe ich in sofern hin bekommen, dass ich per Interrupt 2 LEDs (als Ersatz für die Phasen) zum Wechselblinken bekomme.
Der Motor startet per Zwangskommutierung, dann läuft er etwas nach und während dessen blinken die beiden LEDs abwechselnd.
Wenn ich jetzt im Code zu den beiden LED-Ausgängen auch noch die beiden Phasen des Motors ansteuere, passiert nichts mehr. (Im Code einfach die auskommentierten Zeilen: "Phase1 =... und Phase0 =... aktiviert) Der Motor startet per Zwangskommutierung, dann läuft er etwas nach aber weder die LEDs blinken, noch dreht er weiter. Warum tut das Ding nicht mehr das, was es vor dem Zuschalten der beiden Phasen getan hat?
Anbei die Schaltung und der Code:2P_BLDC.pdf
2P_BLDC.bas
ich bastle gerade an einem einfachen BLDC-Treiber für einen 2-phasigen Motor mit einem ATTINY44. Ja, er ist wirklich nur 2-phasig, Drehrichtung ist egal und ich brauche auch keine Drehzahlsteuerung (also kein PWM). Deshalb schreibe ich "einfacher" BLDC-Treiber. Er treibt nur eine Kolbenpumpe an. Drehzahl ist nur so ca. 2500 RPM, sollte also auch kein großes Timingproblem sein. Aber für mich wohl doch nicht so "einfach"
Also, per Zwangskommutierung bringe ich ihn zum Laufen (das klappt auch). Danach will ich mit dem integrierten Komparator über die BEMF den Nulldurchgang erfassen.
Das habe ich in sofern hin bekommen, dass ich per Interrupt 2 LEDs (als Ersatz für die Phasen) zum Wechselblinken bekomme.
Der Motor startet per Zwangskommutierung, dann läuft er etwas nach und während dessen blinken die beiden LEDs abwechselnd.
Wenn ich jetzt im Code zu den beiden LED-Ausgängen auch noch die beiden Phasen des Motors ansteuere, passiert nichts mehr. (Im Code einfach die auskommentierten Zeilen: "Phase1 =... und Phase0 =... aktiviert) Der Motor startet per Zwangskommutierung, dann läuft er etwas nach aber weder die LEDs blinken, noch dreht er weiter. Warum tut das Ding nicht mehr das, was es vor dem Zuschalten der beiden Phasen getan hat?
Anbei die Schaltung und der Code:2P_BLDC.pdf
2P_BLDC.bas