Electronic – Why are some IC’s programmable in circuit, but others aren’t

icspintegrated-circuitmicrocontrollerprogramming

Why are some IC's programmable while still connected in a system/circuit, but others aren't? What's the determining factor(s) for whether a chip can or cannot?

This question stems from my research on ICSP headers, and particularly, a statement made that "In most cases the MCU doesn’t even need to be removed from its circuit first [in order to be programmed via an ICSP header]."

Source

Edit: This is in relation to AVR ISP/ISCP.

Best Answer

Depends on the circuit. If the ISP pins are not broken out or accessible, you will need to remove the chip. If the ISP pins, essentially SPI, are being used for something that will mess with the programming, the chip has to be removed. If the ISP pins are being used as GPIO and tied high or low, that could mess with the programming.

If you somehow messed up a circuit and tied a ISP pin to vcc/ground, that would certainly require the chip to be removed.

If you mess up a fuse where the low voltage ISP is not able to fix it, you have to resort to the High Voltage programming mode, which at 12v, could kill some circuits, you would want to remove the chip.

ISP requires that the target AVR chip be running atleast 4 times faster than the ISP clock. If it is not, ISP is not able to be used.