Все зависит от контроллера. Каждый производитель предлагает свой программатор. Сторонние производители выпускают универсальные программаторы, их достаточно много. И чем дороже, тем больше возможностей. В плане освоения ничего там очень сложного нет. Тут на форуме поиском найдешь работу с тем же USBDM.