ProgrammerIs simply a device that writes a program to a controller. Then the program is executed by itself and if something goes wrong, then it is very difficult to find out what exactly.Debuggerallows you to stop the execution of the program at any point and find out the values of all variables, registers and memory in general, the debugger allows you to execute the program step by step, view the function call stack and a bunch of other useful things. In general, the debugger is cool!
Interface
ISP (In System Programming) – in-circuit programming interface, allows you to program the controller without unsoldering from the board. The controller is programmed through the ISP at a low speed, but the ISP has a great advantage for beginners - the programmer for this interface consists of four wires. Largely due to this interface, Atmel has become a leader in hobbyist designs. In order to program the controller, you need to connect 4 signals to it - MISO, MOSI, SCLK, RESET.
HV prog – high voltage programming. He knows how to program controllers very quickly, is used in mass production, in amateur practice it is practically useless. (can be used to restore your ISP if you accidentally disconnected it by inattention). 18 signals must be connected to the controller - PD [7… 0], PC [7… 0], XTAL, RESET.
JTAGIs the most widely used debugging interface. Present in controllers with a large number of legs. Requires connection of five signals (TCK, TDO, TMS, TDI, RESET).
debugWire- proprietary debug interface Atmel, which allows you to monitor the internal processes of the controller on one wire (RESET). Since controllers with a small number of legs are usually used in amateur practice, this is just a great alternative to JTAG.
Unfortunately, Atmel spoiled the idea a little by the fact that debugWire on new controllers is disabled by default, and is enabled using the ISP interface (that is, you first have to connect as many as 4 pins to the controller, enable debugWire, and only after that you can disable 3 SPI pins ).