15
\$\begingroup\$

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?

asked Apr 9, 2013 at 18:15
\$\endgroup\$

2 Answers 2

9
\$\begingroup\$

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.

answered Apr 9, 2013 at 22:29
\$\endgroup\$
4
  • \$\begingroup\$ Will this work with just a ATmega on a breadboard? Are the pin numbers for the pins on the ATmega pin? What is the prefix "PB" also? \$\endgroup\$ Commented Apr 9, 2013 at 23:19
  • \$\begingroup\$ You need to add a crystal to the atmega328 and connect the 2 VCC pins and the 2 GND pins of the atmega. \$\endgroup\$ Commented Apr 9, 2013 at 23:21
  • \$\begingroup\$ @n0idea - good point, I've updated the post. \$\endgroup\$ Commented Apr 9, 2013 at 23:36
  • 1
    \$\begingroup\$ @AnnonomusPerson - PA, PB, etc is shorthand for Port A, Port B, which is what you will find in the datasheet for the ATmega328. That is the chip pin names, independent of Arduino naming. \$\endgroup\$ Commented Apr 9, 2013 at 23:37
2
\$\begingroup\$

Another solution is to use the ISP Shield from Evil Mad Scientist. The kit costs about 13ドル and takes about 30 minutes to solder together.

If you are planning to program many parts, the ZIF (Zero Insertion Force) socket on the ISP Shield will definitely pay off. Even if you don't purchase the shield, consider a ZIF socket for programming more than a handful of parts.

ISP Shield from Evil Mad Scientist

answered Apr 19, 2013 at 20:42
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.