Custom BLDC Motor & DSP-Based Control System
Designed and hand-wound a 9-pole BLDC motor, implemented open-loop SPWM firmware on a TI TMS320F28377D dual-core DSP, and debugged three inverter hardware revisions to stable rotation.
Date
2026-03-01
Role
Embedded Systems Engineer
Stack
TMS320F28377DEmbedded CCode Composer Studio3-Phase InverterSPWMJTAG
Demo
What We Built
Full-stack BLDC motor project: hand-wound stator, 3-phase inverter hardware, and open-loop SPWM firmware on a TI DSP, built from scratch by a 4-person team.
Motor
- Hand-wound 9-pole stator with 6-magnet (3 pole-pair) rotor
- Evaluated startup torque, rotor inertia, and thermal current limits before writing any firmware
- Rotor magnets chase the rotating magnetic field. Commutation handled entirely by the inverter + DSP, no brushes
Firmware
- Open-loop SPWM on a TI TMS320F28377D dual-core DSP
- Generates 6 PWM channels at a configurable carrier frequency
- Dead-time insertion prevents shoot-through; startup frequency ramp builds back-EMF before reaching target speed
- Debugged over isolated JTAG in Code Composer Studio
Hardware Revisions
- Rev 1: Bootstrap cap undersized, gate undervoltage lockout at low duty cycles
- Rev 2: Insufficient dead-time margin, MOSFET shoot-through at higher switching frequencies
- Rev 3: Coil overheating under load, reduced duty cycle ceiling and improved PCB thermal relief
Key Debug
Stall and oscillation fault traced to a pole-pair mismatch. Firmware assumed 4 pole-pairs, motor has 3. One constant change, stable rotation restored.
Next Steps
- Hall-effect sensors for real-time rotor position
- Space Vector PWM (SVPWM) for better DC bus utilization
- Closed-loop Field Oriented Control (FOC) for true torque control