In this post I’m going to focus on the heart of an Arduino, the Atmel ATmega 328P.
A brief introduction on this little beast.
- 8-bit MCU
- 32kB Flash Memory
- 1kB EEPROM
- 2kB SRAM
- 23 general purpose IO lines
- 6-channel 10 bit ADC
- SPI and I2C capabilities
The ATmega 328P first appeared on the Arduino Duemilanove where it replaces the ATmega 168 which has a smaller program memory.
I tried to get one from Jalan Pasar but it costs RM 40+, an outrageous price. Decided to get it online from Cytron together with the USB to UART adapter which I will highlight in the next post.
Ordered on Saturday, arrived on Monday morning.
The ATmega 328P, they even applied a sticker on it to clearly show the function of each pin. Some may like it, some may not but I don’t mind it at all. Thanks Cytron 🙂
To burn the bootloader on the new chip, you need another Arduino. In this demonstration I used my Uno R3.
First things first, before we start, we need to upload the Arduino ISP sketch into the Uno R3. I uploaded the one from the 0023 version because the 1.0 was giving me problems.
Next, following the guide found on the official Arduino website (here), here is the blank ATmega 328P MCU connected to the Uno R3.
Now fire up the Arduino 1.0 IDE, under Tools and Programmer, select Arduino as ISP.
To start the process, simply click on Burn Bootloader.
This will take some time, here’s a video of the whole process.
When the TX and RX lights stop flashing, it’s done.
To test it, I swapped the original ATmega 328P on my Uno R3 to the new one I just got from Cytron.
It works! Stay tuned for Part 2 where I’ll be assembling a full circuit on the breadboard and program it using a USB to UART converter.