- UPCX530 - 
Positioniercontroller für hall-sensor-bestückte BLDC- und DC- Servomotoren

BLDCMotorEncoder320x240

BLDCPCB320x240 DCMotorEncoder320x240

Weitere Entwickler:

Dieses Projekt basiert auf Arbeiten von Lawrence Glaister VE7IT, Maximilien Mousset und weiteren Personen, die im Quelltext genannt sind, sowie auf dem Quellcode der Application Note AN957 von Microchip.

Beschreibung der Firmware:

Das Ziel des Projektes war die Entwicklung eines kleinen und billigen PID-regulierten Positioniercontrollers, der sowohl für mit Hallsensoren bestückte BLDC- als auch für DC-Servomotoren geeignet ist. Er wird über Schritt- Richtungs- und ein Enablesignal angesteuert.

Der Controller benutzt einen Microchip dsPIC30F4012-30 DSP im 28 Pin Gehäuse um die Motorposition zu regeln. Für den Betrieb mit BLDC-Motoren regelt dieser Controller außerdem den Phasenwinkel der Motorwicklungen anhand der Hallsensorsignale. Die Einstellungen der PID-Parameter werden via einer seriellen Schnittstelle übertragen und im EE-Prom des Controllers gespeichert. Hierzu kann die beiliegende Software oder ein serielles Terminalprogramm genutzt werden.

Der Controller erkennt den Motortyp automatisch anhand der Signalpegel am Hallsensoreingang während des Startvorganges. Befindet sich mindestens ein Eingang auf low, springt der Controller in den BLDC-Modus. Sind alle eingänge high (kein Hallsensor angeschlossen), springt der Controller in den DC-Modus.

Der Controller hat einen internen Dead-Time-Generator für die MOSFET Treiber. Der Generator erleichtert die Auswahl an MOSFET-Treibern für die H-Brücke. Ein Eingang erlaubt das sofortige Abschalten der Brücke im Falle eines Fehlers (z.B. Überstrom).

Der TTL Eingang für den A/B Encoder ist mit einem internen digitalen Low-Pass-Filter ausgestattet. Das Index-Signal wird vom Controller nicht ausgewertet. Es kann bei Bedarf vom Host ausgewertet werden.

Ich habe den Controller um einen internen einstellbaren Step-Signalgenerator erweitert. Dies erlaubt ein einfaches Einstellen der PID-Parameter auch ohne externe Schrittsignalquelle.

Die Firmware ist für dem Microchip C30 Compiler komplett in C geschrieben. Der Quellcode ist "gewachsener" Code, der von verschiedenen Entwicklern geschrieben wurde, und daher etwas unübersichtlich ;-). Um ihn selbst zu kompilieren wird leider die lizenzierte Version des Compilers benötigt, weil nur diese den benötigten Optimierungsgrad ermöglicht. Der bereits vorkompilierte HEX-File ist aber in den Projektdateien enthalten.

Projektplatine

Ich habe eine kleine Platine entwickelt (56mm X 56mm), die für den Betrieb in der Nähe des Motors gedacht ist. Sie ist für den Betrieb von DC- und BLDC-Servomotoren bis zu 240W bei 24V und 480W bei 48V Motorbetriebsspannung ausgelegt. Neben der Motorversorgung benötigt sie noch eine zweite Versorgungsspannung von 10V bis 15V, um die Logik und die Brückentreiber zu versorgen. Alle benötigten Teile für den Aufbau sollten leicht zu bekommen sein.

Im Projekt ist auch eine kleine Platine enthalten, die für die Programmierung der PID-Parameter gedacht ist. Sie stellt auch einen Standardanschluss für die In-System Programmierung bereit.

Alle Platinendateien sind im Projekt enthalten (Altium-Designer und extended Gerber Dateien).

PC Software

Basierend auf derm "Tuning Tool" von Maximilien Mousset habe ich eine Tuning-Software in Embarcadero Delphi geschrieben. Die Software erlaubt das Tuning der PID Regelschleife und der Parameter für die BLDC Vektor Modulation. Sie zeigt grafisch den Positionierfehler gegen die Zeit an wie Maximilien Moussets Software. Auch der integrierte Schrittsignalgenerator wird über die Software gesteuert.

Die Software ist sowohl vorkompiliert wie auch als Quellcode in den Projektdateien vorhanden.

Fortsetzung:

Einige der Videos hier sind lokal auf meinem Webspace gespeichert und benötigen den Apple QuickTime Player und einige Zeit zum laden.

Ein Video, das die Steuerung im Betrieb mit einem kleinen BLDC-Motor zeigt

Ein Video, das einen Test der Steuerung mit einem Magnetstreifenencoder zeigt

Ein Video des noch unfertigen Bestückungsautomaten. Dieser nutzt den UPCX530 für seine X und Y Achse.

Beschreibung des Controllers

Firmware des Controllers

Das Controllerboard

Aufbau des Controllerboards

Die PC-Software

Weblinks

Downloads

Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Ok