Selecting A Microcontroller¶
The Microcontroller (uC) that you use will determine a number of things about your development. This includes what features are made available by your uC of choice, but also the software development environment.
Not all uC's are stocked by Roboclub, but they are usually fairly inexpensive, so you can purchase the one you need.
- Selecting A Microcontroller
The package is the physical form factor of the IC (Integrated Circuit, aka chip). This determines the size of the uC, and how easy it is to connect to the pins.
The DIP package is what you probably expect when you think of an IC: a black plastic rectangle with pointy legs pointing down on each side. These are easy to plug into breadboards and protoboards, but are less often used on PCBs (Printed Circuit Boards) because they are more difficult to attach robotically. However, because they are easier for human attachment, they are primarily what Roboclub stocks.
Quad-Flatpack Nolead. These are very difficult to solder, so refrain from using this package unless there are no variants. Also make sure to order more quantity than you need since you will destroy some of them when soldering.
BGA (Ball Grid Array) is common on uC's that need hundreds of pins. The pins are literally an array of points on the bottom of the IC. These are extremely difficult to hand solder, so they are not stocked by Roboclub.
Atmel manufactures the AVR line of uC's. The common families of AVRs are: ATTiny, ATMega, ATXMega. ATTiny's are small, have few pins, and take very little power. ATMega's are larger (usually), have more pins and features. ATTiny's and ATMega's are programmed with the same conventions for accessing hardware (so code can be slightly portable between them). ATXMega's are the newer replacement family for the ATMega's. They provide even more features, but are more expensive, and some of the programming conventions have changed from the other families.
On Windows, you will want to use Atmel Studio (previously known as AVR Studio) to program them. On Linux/OSX, you will want to use avr-gcc (to compile) and avrdude to program. In order to program, you will need an AVR ISP Mk II, found in the Programmers Tupperware on the top shelf of the electronics stock. The are usually blue, and have a USB B port on one side, and a 2x3 header on the other (for connecting to the uC).
Arduinos are built using Atmel uC's.
Some AVR's that are particularly versatile:
ATtiny24: Good Tiny AVR with software-hardware SPI/TWI/UART (USI) and ADC
ATmega328: Good general purpose MCU, hardware SPI/TWI/UART and ADC
Atmega164: If you need many pins, e.g. for 16-bit parallel bus to an ADC/DAC
In Stock Microcontrollers¶
These are uC's that Roboclub tries to keep in stock.
General information: http://www.atmel.com/devices/attiny25.aspx?tab=parameters
These are 8 pin uC's with 6 data pins that are massively overloaded (each pin is capable of many different functions). The only difference between the three uC's in this family is the amount of Flash memory (2KB/4KB/8KB). The V variants (ATTINY25V / ATTINY45V / ATTINY85V) are designed to operate at lower voltages (1.8V-5.5V instead of 2.7V-5.5V).
These will all be found in the drawer labeled ATTiny85.
Use these when you need a dedicated processor to monitor or control a single sensor or actuator.
General information: http://www.atmel.com/devices/atmega328.aspx?tab=parameters