Arduino controllable PWM chip

Hello all,

This is my first ever post here, I hope it belongs to the right category.

I am currently in the process of investigating and playing with dc-dc converter. I read a lot and played a lot with Spice. Now I want to go to the bench and try something.

My goal is to build an isolated, regulated flyback dc-dc converter which output must be voltage controllable through a comm bus (could be RS232, UART or SPI). My idea is to use an Arduino board as the master board that would perform comm interface with the outer world as well as regulation laws and so on. Two things I'm struggling with: - I know the 440 Hz native PWM from the R3 board isn't enough for my goal ; I want to be able to adjust the frequency of the flyback between few kHz and 80-100 kHz at max. I also know it is possible to play with registers, timers and prescaler values within the ATmega in order to have a multi-kHz PWM, but I do remember that comes at the cost of a degraded accuracy when setting the duty cycle of the output pin. Moreover, I do not know if playing with these would make the R3 comm features unavailable (given the UART and SPI drivers call interrupts that may be in trouble with the prescaler/timer modification). TL DR ; is tweaking the frequency of the native PWM pins on the ATmega compatible with using the comm interfaces regularly (UART, SPI) ?

  • other idea would be to interface a chip between the ATmega and the FET driver that would tranform any output from the µc into a 10 to 100 kHz PWM signal. Of course, the easiest way would be to have a component that mimic the duty cycle of the R3 native PWM and "just" multiply the frequency (even if the reactivity of the control laws would still be doomed to be in the 440 Hz vicinity) but I clearly do not know such a chip. All the PWM controller I know are almost built-in dc-dc controller with voltage feedback but no input adjust pin ; but I'm sure I do not know enough on this and some magic chips exist somewhere.

I hope both my project and english are understandable ; if not, do not hesitate to ask for precision.

One more thing, I just want to thank all the community for making Arduino and µc things accessible for everyone!

Cheers,

Timer hardware is completely unaffected by SPI or I2C. There are several libraries for configuring
PWM to other frequencies. In general each hardware interface is completely independent of any
other, its only the CPU that is inherently shared.