Програматор – це просто пристрій, що записує програму в контроллер. Далі програма виконується сама по собі і якщо що-те піде не так, то дізнатися що саме — дуже складно. Відладчик дозволяє зупинити виконання програми у будь-якій точці і упізнати значення усіх змінних, регістрів і взагалі пам'яті, відладчик дозволяє виконувати програму покроково, подивитися стек викликів функцій і купу інших полезностей. Вообщем, відладчик – це круто!
Интерфесы
ISP (In System Programming) – інтерфейс внутрішньосхемного програмування, дозволяє програмувати контроллер не випаюючи з плати. Через ISP контроллер програмується з невеликою швидкістю, але ISP має велику гідність для початківців – програматор для цього інтерфейсу складається з чотирьох дротів. Багато в чому завдяки цьому інтерфейсу, Atmel став лідером любительських конструкцій. Для того, щоб запрограмувати контроллер, до нього треба підключити 4 сигнали – MISO, MOSI, SCLK, RESET.
HV prog – високовольтне програмування. Уміє дуже швидко програмувати контроллери, використовується при масовому випуску, в любительській практиці практично даремний. (може бути використаний для відновлення ISP, якщо ви його випадково відключили через неувагу). До контроллера треба підключити 18 сигналів — PD[7…0], PC[7…0], XTAL, RESET.
JTAG – самий широко використовуваний налагоджувальний інтерфейс. Є присутнім в контроллерах з великою кількістю ніжок. Вимагає підключення п'яти сигналів (TCK, TDO, TMS, TDI, RESET).
debugWire – проприетарный налагоджувальний інтерфейс Atmel, який дозволяє стежити за внутрішніми процесами контроллера по одному дроту (RESET). Так, як в любительській практиці зазвичай використовуються контроллери з маленькою кількістю ніжок, це просто чудова альтернатива JTAG’у.
На жаль, Atmel трохи зіпсував усю чудовість ідеї тим, що debugWire на нових контроллерах відключений за умовчанням, і включається за допомогою ISP інтерфейсу (тоесть, прийдется спочатку підключити до контроллера цілих 4 контакти, включити debugWire, і тільки після цього можна відключити 3 контакти SPI).