ICSP - Page 1
Forum section: electronics / general

author: ChrisGreece52
author_rank: Frequent Contributor
timestamp: May 19, 2013, 10:31:15 am
content: Hello ... i was messing with my arduino and then i thought ... what can you do with the ICSP and the other 6 pin header on it... I saw some videos aobut it and one said that i can hook up a mouse and the other said that it is for programming other AVR chips....The other header i reffer to is the one behing the usb port and near to the Small atmel chip (for USB to Serial)

author: amyk
author_rank: Super Contributor
timestamp: May 19, 2013, 11:10:06 am
content: RTFS... see what the ICSP header is connected to? And what the other 6-pin header is?

author: ChrisGreece52
author_rank: Frequent Contributor
timestamp: May 19, 2013, 11:37:50 am
content: Quote from: amyk on May 19, 2013, 11:10:06 amThanks for the schematic.As i can see both are ICSP headers (the one near the USB-Serial converter chip is for sure)But what are they being used for???

author: PA0PBZ
author_rank: Super Contributor
timestamp: May 19, 2013, 11:42:32 am
content: http://lmgtfy.com/?q=ICSP

author: Paul Price
author_rank: Super Contributor
timestamp: May 19, 2013, 11:56:45 am
content: I program using the "C" language and not the Arduino programming syntax and I don't need the bootloader that wants to interface with the Arduino code and board so I purchased a debugger/programmer that plugs into these little sharp pins and I can directly download my compiled C-language program and also debug using this connector. This gives direct access to all the features of the MCU.

author: ChrisGreece52
author_rank: Frequent Contributor
timestamp: May 19, 2013, 12:04:26 pm
content: Quote from: PA0PBZ on May 19, 2013, 11:42:32 amThanks when i googled it the first time i got somewhere where i could not understand a thing ....

author: ChrisGreece52
author_rank: Frequent Contributor
timestamp: May 19, 2013, 12:05:12 pm
content: Quote from: Paul Price on May 19, 2013, 11:56:45 amThanks google got me herehttp://en.wikipedia.org/wiki/In-circuit_serial_programmingBut i am still confused... where can i use it ??

author: nuhamind2
author_rank: Regular Contributor
timestamp: May 19, 2013, 12:29:32 pm
content: The one near the small atmel is to program the small atmel.The one near the big atmel is to program the big atmelYou don't always need those two because the big atmel is programmed through the serial port which is facilitated by the small atmel. And you don't usually re-program the small atmel as it would break it's function as USB to Serial bridge

author: ChrisGreece52
author_rank: Frequent Contributor
timestamp: May 19, 2013, 12:53:57 pm
content: Quote from: nuhamind2 on May 19, 2013, 12:29:32 pmGot that but the ICSP can be used ONLY for programming the chip or it could be used to programm ANY chip ? (any chip you connect it to)

author: Paul Price
author_rank: Super Contributor
timestamp: May 19, 2013, 01:06:18 pm
content: You got the tail wagging the dog. The ICSP is always a way to program the chip soldered on the board and it don't work the other way.

author: nuhamind2
author_rank: Regular Contributor
timestamp: May 19, 2013, 01:41:08 pm
content: Quote from: ChrisGreece52 on May 19, 2013, 12:53:57 pmI'm not sure what you say. To program a chip you need a programmer. Atmel release a programmer to be used with chip sold by atmel. If you want to program chip sold by other manufacture (like microchip) you need programmer from that manufacture.Actually your arduino has a programmer (that small atmel ).If you take a look at any other development platform which has capacility to be programmed without additional devices (like STM32 discovery, TI launchpad and so on) you'll notice that there are at least 2 chip, the one to be programmed and the one act as programmer.Since every manufacture might specify it's own way to program their chip, a programmer released by a manufacture can only be used to program their own chip.(Except in 1st April 2013)

author: ChrisGreece52
author_rank: Frequent Contributor
timestamp: May 19, 2013, 02:01:42 pm
content: Quote from: nuhamind2 on May 19, 2013, 01:41:08 pmThanks now i got it because i remembered i wanted to get an avr programmer module so i can program chips to use in small projects.But i think that you can also build arduino on a breadboard use an AVR programmer to burn the bootloader and then a usb to serial converter so you cna program the chip.

author: nuhamind2
author_rank: Regular Contributor
timestamp: May 19, 2013, 02:46:42 pm
content: You can even turn your arduino into avr programmerhttp://arduino.cc/en/Tutorial/ArduinoISP

author: ChrisGreece52
author_rank: Frequent Contributor
timestamp: May 19, 2013, 10:15:29 pm
content: Quote from: nuhamind2 on May 19, 2013, 02:46:42 pmThats cool thank you

author: darrylp
author_rank: Regular Contributor
timestamp: May 20, 2013, 12:34:46 am
content: QuoteNot its not the programmer for the arduino. The arduino itself has a bootloader that rograms the rest of the flash on the chip.--Darryl

author: mariush
author_rank: Super Contributor
timestamp: May 20, 2013, 12:47:50 am
content: So to sum it up.ICSP is a connector that brings together several wires that are needed to program a microcontroller with a programmer. Usually, the minimum amount is voltage, ground, reset signal, data and clock.A programmer powers up the microcontroller, sends a reset signal and then sends data which gets written in the onboard memory.Arduino has that connector in case you want to write the programs directly to it using a programmer.If you write the programs through USB, what actually happens is that there is already code (a firmware) inside the Arduino microcontroller which was put there using ICSP when the product was manufactured and this code takes what you give it through usb, writes it in the memory in the microcontroller and then resets itself to allow your program to run.The firmware and the Arduino software sending data through usb to the arduino are designed in such way designed that the firmware remains in the Arduino and always starts first, and then gives up control to your program. Think of it like the microcontroller having 16 KB of disk space and the first 1 KB of disk space holds that firmware and your program is always written after the first 1 KB.If you actually want to overwrite that firmware and write data into ALL the Arduino memory, you have to use that ICSP connector and a programmer to actually write data (almost) anywhere on the chip flash memory.ICSP is just a method of programming chips, there's other methods like JTAG, aWire etcHere's more info about ICSP (In Circuit Serial Programming) :http://en.wikipedia.org/wiki/In-circuit_serial_programminghttp://en.wikipedia.org/wiki/In-system_programming