A fixed frequency three phase PWM generation code for an AVR ATMEGA328P/-PU microcontroller and schematic for a variable frequency drive system for an AC induction motor. The schematic for the system consists of an AVR ATMEGA328P-PU controller, SI8234 isolated gate driver, and transistors protected with diodes and bootstrap circuits.
Variable frequency was attempted but the implementation logic was not sound (I had just finished 2nd-year electrical engineering and most of the project involved subjects that were new to me). Some additions and changes were made, but ultimately a new lookup table has to be generated to achieve consistent outputs for varying frequencies. See the notes in variable frequency source file.
pulse-width modulation, C, look-up tables, counters/timers, MOSFETS, gate drivers, IGBT, induction motors, AC, AVR PWM modes, CTC mode, output compare registers, low pass filters, potentiometers, analog to digital conversion (ADC), direct digital synthesis, ATmega328P
Languages: C/C++
IDEs and IDPs: Arduino IDE, Atmel Studio 7.0
SPICE software: TINA-TI
Schematic capture software: Altium Designer, TINA-TI
Microcontrollers: Arduino UNO (ATmega328P-PU) as controller and Arduino Nano (ATmega328P) for testing
Low pass filter designer: link
Isolation bootstrap calculator: link