Hey there, want to ask. Atmega 8, 168 and 328 is the official arduino and clones. What does this means actually ? Means the arduino IDE have the bootloader to burn these AVR chip so can be programmed using arduino IDE ? How about others AVR chip lioa atmega 32 ??
There is "standard" hardware for that chip, or at least existing hardware.
The chip is supported by the version of the compiler distributed with the Arduino IDE. This compiler is several years old now, and some of the newest chips might not be "known."
The Arduino "Core Libraries" have been modified or re-written to support that chip. This is things like digitalWrite(), analogRead(), and millis()
At least some effort has been made to support additional popular libraries. Assorted vendors have been yelled at for "you claimed to be arduino compatible and yet the "wire" library doesn't work at all!"
There is a bootloader. (This is actually somewhat less important, since the IDE has a "burn using programmer" option that can be used to burn chips that cannot support a bootloader (tiny13 comes to mind))
Actually, what is the purpose of burning bootloader ? Cant I just use a normal AVR chip then I used the FTDI programmer to upload the code into the chip using arduino IDE ??
You need a bootloader to tallk over the Serial port to the FTDI chip. That's how the sketch download works.
After Reset, bootloader starts up, checks if there's serial port action, if yes tries to download, and if no then is jumps to start of the existing sketch.
Connect it to the ICSP header, select Tools:Programmer:select the bootloader
Then Tools: Burn Bootloader.
You blank chip must either be in a board, or wired up like an Uno: 16 MHz crystal, 22 pf caps from crystal pins to gnd, 10K pullup resistor from reset to +5, 100nF caps on VCC, AVCC to Gnd. Programmer then connects to +5, Gnd, and Reset, SCK, MOSI, MISO pins.
I think I had to add 2 lines to programmers.txt to make it show up in the list, and add the drivers for it when it was connected to the PC the first time.
The initial design of the Arduino LilyPad had a 10-pin ICSP header and used the internal clock on the ATmega168 rather than an external oscillator. The bootloader on the initial design is the traditional NG bootloader.
So you could probably do something like make a new boards.txt entry for whatever processor you are after with appropriate fuse settings for internal oscillator.
Ah..Just forget about using internal osciallator as it is not that accurate too from what I heard. Just stick to 16MHz and burn arduino UNO bootloader or optibootloader.
Anyway, any difference between optiboot and UNO bootloader ?
The Uno bootloader is a slightly older version of optiboot. There shouldn't be any differences relevant to an ATmega328, unless you're compiling from the source code and making changes to the options.