What Is a Programmer / Debugger?
A programmer is a tool that uploads the written code (firmware) to a microcontroller. A debugger lets you watch and debug the chip step by step while it runs the code.
Programmer
It takes the compiled code from the computer and writes it to the chip's program memory (Flash). On some boards this circuit is built in (direct upload via USB), while for external chips a separate programmer is needed.
Debugger
A debugger lets you stop at a specific line of code (a breakpoint), see the variables and step one at a time. This is embedded development's most powerful tool for seeing exactly where a bug occurs.
| Tool | Function |
|---|---|
| Programmer | Uploads code to the chip |
| Debugger | Watches/stops while running |
| Interface | JTAG / SWD / ISP |
Interfaces
Communication with the chip is usually over JTAG or the fewer-pin SWD. These lines carry out both programming and debugging from a single connection. Most modern tools do both.
Where Is It Used?
Embedded software development, firmware upload on a production line, debugging and working with development boards.
Common Mistakes
- Voltage match: the programmer and target chip must be at the same logic level.
- Wrong pinout: connecting the JTAG/SWD pins backwards cuts the communication.
- Target supply: some tools don't power the target, a separate supply is needed.
Frequently Asked Questions
Is a programmer the same as a debugger?+
What's the difference between JTAG and SWD?+
Search parts related to "What Is a Programmer / Debugger?"
Find the right part by comparing price, stock and distributors.