Questions tagged [icsp]

In-Circuit Serial Programming, when you program the chip without having to physically remove it and place it in a programmer.

Most (if not all) of the chips used by the Arduino series can use ICSP (In-Circuit Serial Programming) to reprogram the chip. This is accomplished by sending serial commands to the chip using the SPI interface (Serial Peripheral Interface). Doing this saves the inconvenience (or virtual impossibility, in the case of surface mounted processors) of removing the chip and placing it into a programmer.

Generally speaking, the ICSP interface consists of 6 signals to the target chip:

  • MOSI - Master Out Slave In
  • MISO - Master In Slave Out
  • SCK - Serial clock
  • Reset
  • VCC
  • Ground

To program the target chip the programmer holds /RESET low (ie. at zero volts) and then issues very specific commands via the SPI interface (MOSI/MISO/SCK). This enters "serial programming" mode, in which the processor responds to "commands" sent via SPI as documented in the relevant datasheet.

Since /RESET is low, any code already on the chip does not execute.


Contrast to which uses code already installed on the chip (quite possibly by ICSP) and does not require extra hardware.


References

See:

36 questions
5
votes
1 answer

How does Arduino distinguish between SPI programming data and regular data?

The Arduino can be programmed using SPI without a boot loader. Without a boot loader, the Arduino starts running its sketch right away. So, how does the Arduino know that it is being programmed via SPI vs regular SPI traffic already present on the…
Ana
  • 480
  • 2
  • 7
  • 13
3
votes
2 answers

Does upload using `ICSP`overwrite the bootloader?

If I compile a sketch then upload using ICSP does it overwrite the bootloader? I am using Arduino program and Arduino Uno as ICSP.
Milliways
  • 1,645
  • 2
  • 18
  • 29
0
votes
2 answers

What are some fun things you can do using the ICSP header?

I bought 10 Arduino Nanos for a project, each with all of their headers soldered in place. Each was going to go into a tiny space, so I found myself needing do desolder the ICSP headers. This led to a bit of a moral conundrum. What would I lose by…
Hoytman
  • 747
  • 5
  • 13
  • 26