Kalle Hyvönen of DGKelectronics writes:
I’m currently building an induction heater. I’ve already built one controller based on an analog PLL so this time I decided to go all digital and use an ARM Cortex-M4 microcontroller (STM32F303). For this I needed to implement a digital phase-locked loop running on the MCU.
An ADPLL is basically an analog phase-locked loop but implemented in software. You take the phase difference between a reference signal (the one you are trying to lock to) and your output signal with a phase-frequency detector and feed that difference to a filter that calculates a value that you then use to adjust your oscillator and try to match the frequency and phase of the reference signal. In an ADPLL even the oscillator is digital. In my version I’m using the STM32 integrated PWM module.
Check out the video after the break.