I'm about to start making my own microcontroller circuit (using an Atmega series MCU, at least for the beginning) and I think I'm gonna get the AVR JTAGICE JTAG debugger & programmer. I also plan on making my own PCB lab at home so I was wondering - based on your experience - if it was better to use DIP packages or SMD (SOIC, TSSOP, TQFP/LQFP).
As far as I understood DIP packages are preferred in the D.I.Y. sector, whereas SMD are better because they take less space and should be less sensible to electromagnetic interference (for instance with other ICs).
Now to the question: if you need to (re-)program the microcontroller, which one would you use ? AFAIK there are two alternatives:
- Use a DIP socket soldered to the PCB and put the DIP MCU in there. Whenever I need to reprogram it, I take it out of the socket, put into an adapter-like board to JTAG, reprogram it and transfer it back to the socket
- Put a SMD component on the PCB and let a JTAG port accessible from the exterior (should be 20 pins, right ?). I'd also like to keep the circuit as small as possible, so are there any low-footprint headers with 20 pins ? Sorry but I don't know how they're called exactly. It doesn't need to be JTAG really: I can leave a low-footprint header there, go onto an adapter PCB with a cable and go to the debugger via the official JTAG cable.
I think the first solution is the simplest and probably a bit cheaper. It should even be easier to solder. What do you suggest ?