Using Arduino as an Atmel Development Board

In this article I'll show you how to use the Arduino hardware board as a standard Atmel development board. It uses the Arduino hardware as a stepping stone towards independent Atmel projects and uses Atmel's tool chain and ISP. The target audience is C programmers wanting to experiment with micro-controllers or Arduino users wanting to take a leap in their understanding of the micro-controller at the heart of their projects.

Introduction

If you're already familiar with Atmel development but not with Arduino then I can recommend it as a handy and cheap development board which can be used with any ISP, skip down to the tips section below. If your coming from the Arduino world then read on. This article uses the Arduino Diecimila board as an example but the same tactic should work with any of the other Arduino boards with an ISP header.

What is Arduino? According to their propaganda, "Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments". Sounds groovy, so what is Arduino? Well it's a PCB with a power supply, micro-controller, USB interface and lots of I/O ports. It's designed to be a solid base to other projects and has proved popular because it eases people in to the development of projects requiring micro-controllers, the programs they can run and the other hardware they can interface with.

What is Atmel? They're a company who manufacture a range of 8 bit micro-controllers, including the AtMega168 at the heart of the Arduino board. Atmel's micro-controllers are also used in a massive range of other hardware, from consumer items like mice and card readers (it's very likely you own several of them already without even knowing it!) to some weird and wonderful artist's creations.

Programming

To get the Arduino board to do anything useful it needs to be programmed, typically for Arduino the programming would be done in something called the "Arduino development environment" using a language called the "Arduino programming language". I should probably mention that this kind of rampant branding of everything drives me bonkers and at this point I depart company from the Arduino crew and go down a different path, using standard Atmel development tools and programming in the C language. A comparison would probably be good here but I only know one side of the coin, the C language is:

  • in widespread use from micro-controllers all the way up to mainframes
  • know by vast numbers of people, including me!
  • extremely well documented online and in hundreds of books
  • has vast amounts of example code available, including code specifically for Atmel chips
  • supported by the manufacturer, including throughout their very thorough documentation

Side note: you're just a short step away from assembly instructions. Atmel studio allows you to write in C, compile then debug the code in an emulator, stepping through each assembly instruction, allowing you to see exactly what would be happening in the real device, a fantastic learning tool as well as debugging aid.

Getting Started

You will need the following:

Start by installing WinAVR, then Atmel Studio, both have sensible defaults so just step through the installers clicking "next" a lot! Restart the computer when the installation completes.

Tips

(coming soon)

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

Image CAPTCHA
Enter the characters shown in the image.