Если нужен плохонький (дешёвый) преобразователь с программируемыми параметрами -- можно поиграться со встроенными в МК таймерами и компараторами (а ШИМ использовать для формирования опорного для компаратора!) А иначе ШИМ оставить и поставить внешний контроллер.