Go Down

Topic: ICSP pins. (Read 385 times) previous topic - next topic

Noble123

I am designing my own PCB and using an ATmega168 as my primary MCU. I am also using ATmega16U2 to act as programmer for the Atmega168. Looking at the schematic for Arduino Uno I cannot understand the ICSP pins. I mean the use of the pins. Assuming I do not add those pins to my circuit, how will it affect the operation of the Circuit? if I connect the Atemga16u directly to the atmega168 would it not work?
The intended purpose of the circuit is to drive two DC motors using two motor drives.

Budvar10

The ICSP connector on UNO has just doubled pins form the headers. It is used for direct programming without the bootloader, e.g. if you want to load the bootloader. :) Programming via serial port (with 16U2) means that the bootloader must be present, it is required for serial programming.
The ICSP is 6pin minimalistic Atmel standard. It is not needed if you have other way how to bootload the chip, but provides more comfort. I'm recommending to have it.
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

mryazdani

ICSP is a port for loading bootloader  on your microcontroller. It provide all the pin you need together. After you burn the bootloader it's not very usable unless you want to use the pins. As Budvar10 said you can find all of them in the pin header. After you burn the bootloader you only need rx (pin 0), tx (pin 1), reset pin and of course  ground.
Please tell us you want to burn a bootloader or load your program to micro. Do you have Arduino Uno board?

avr_fred

#3
Jan 13, 2018, 02:56 am Last Edit: Jan 13, 2018, 02:57 am by avr_fred
Quote
if I connect the Atemga16u directly to the atmega168 would it not work?
No, it will not. The 16U2 must have the USB to serial converter program programmed into its flash memory and the 168 must have the Arduino bootloader programmed into its flash memory. That's why the two 6 pin connectors are installed - to allow these programs to be written into the chips using an ISP programmer.

The chips that Arduino buys come preloaded with the images but they install the pins for the end users in case the firmware ever needs to be changed or updated. You absolutely need the headers installed since the chip you buy will be blank.

You don't specifically need the 16U2 chip, you could use a dedicated USB to serial converter like the FTDI232. This was done on the Nano and Duemilanove boards, all the Chinese clones use the CH340G which is a good, low cost replacement.

Go Up