Monday 27 July 2015

hardware - How can I use my SMD Arduino to program a separate DIP ATmega328?


I have an arduino with a surface mounted (SMD) microcontroller:


Arduino SMD edition


I know how to use a DIP arduino as a programmer for a DIP ATmega328. It's easy --you just pop your microcontroller in the holder.


However, with a surface-mount Arduino, there's no obvious. Desoldering the microcontroller is one way, but that's icky and destructive.


Can I use this Arduino as a programmer for a DIP ATmega328 without mortally damaging the board? If so, how?



Answer




Check the Arduino site for instructions to use your Arduino SMD board to program another Arduino board.


Arduino ISP diagram


To extend this to programming a DIP ATmega328, you would translate the 6 wires pictured to the corresponding pins on the DIP module.



  • D13 = PB5, pin 19

  • D12 = PB4, pin 18

  • D11 = PB3, pin 17

  • RESET = RESET, pin 1

  • 5V = AVCC and VCC, pins 20 and 7, respectively

  • GND = AGND and GND, pins 22 and 8, respectively



The Arduino UNO schematic would be helpful for reference for verification.


As pointed out, you would also need to connect a 16MHz crystal with 22pF capacitors on the chip that is being programmed. You would need to connect this to pins 9 and 10 on the chip you are programming as seen here:


Using an Arduino board to burn the bootloader onto an ATmega on a breadboard.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...