SuperDroid Robots
Robots, Parts, & Custom Solutions
Request A Quote
##GOOGLEPLUS##
##PINTEREST##
Microcontrollers | Arduino Microcontrollers | Programmable Microcontrollers
Microcontrollers

What is a microcontroller?

A microcontroller (abbreviated as MCU or uC) is a small computer built into a single integrated circuit (IC) which contains memory, processor(s) and I/O controls. They come in a vast array of packages and capabilities. The idea is to meet the engineering challenge will the appropriate level of force. If your problem consists of monitoring data or sensors and manipulating an actuator, status LEDs or to transmit then the latest Intel powered computer would be incredibly excessive, expensive and cumbersome. This is where the microcontroller comes in. It provides us a tool to complete the task cheaply and with ease. Another huge benefit for microcontrollers is that they come in all shapes and sizes.

Architectures

There are two main families of microcontrollers that are popular among beginners and hobbyists. Microchip's platform is PIC, which stands for Peripheral Interface Controller. Atmel's platform of microcontrollers are called AVR, or Advanced Virtual RISC.

Sidenote: RISC stands for Reduced Instruction Set Computing. The idea is to use fewer, more general purpose, assembly instructions to make a device quicker and more battery efficient.

Which microcontroller should I choose?

There isn't a cut and dried winner, especially for a beginner. You will most likely not come to a point where there's a specific high-end feature that you will need. Both Microchip and Atmel microcontrollers come in such a wide variety and form factors that you will be able to find what you need. An abundance of development boards exist for both PIC, such as our custom PIC boards, and the Atmel based Arduino Mega 2560.

When considering purchasing a development board or a specific microcontroller, you need to really look at what your main requirements are. Are the chips you will be interfacing with 5V, 3.3V, or 1.8? How many digital I/O are you going to need? What about analogs? Will you be needing SPI or I2C? Ethernet? USB? How many UARTS will you need? Once you figure these outthere are several things you should look into.

For the absolute beginner, the Atmel microcontrollers can be very enticing due to the Arduino Open Source Hardware project. Due to the nature of open source there is an abundance of software libraries and hardware extensions (shields) available. This provides a strong foundation for the beginner to build on top of and get started in the world of microcontrollers.

A Brief History of Microchip's PIC Microcontroller

A Brief History

The original PIC was built to be used with General Instrument's new 16-bit CPU, the CP1600. While generally a good CPU, the CP1600 had poor I/O performance, and the 8-bit PIC was developed in 1975 to improve performance of the overall system by offloading I/O tasks from the CPU. The PIC used simple microcode stored in ROM to perform its tasks, and although the term was not used at the time, it shares some common features with RISC designs.

In 1985, General Instrument spun off their microelectronics division and the new ownership canceled almost everything; which by this time was mostly out-of-date. The PIC, however, was upgraded with internal EPROM to produce a programmable channel controller and today a huge variety of PICs are available with various on-board peripherals (serial communication modules, UARTs, motor control kernels, etc.) and program memory from 256 words to 64k words and more (a "word" is one assembly language instruction, varying from 12, 14 or 16 bits depending on the specific PIC micro family).

PIC Programming

PIC microcontrollers have an array of development environments available for both the beginner the professional. Microchip supports an IDE called MPLABX that is based on Oracle's open source NetBeans IDE. It and can be found on MicroChip's website. This is a great place to start for beginners. There are many 20 min training/tutorial videos on how to get started with this free IDE

Once you feel more confident on PIC programming there are other paid alternative IDE with a few more bells and whistles. MikroC Pro which allows you to program your microcontroller in C. The advantage to MikroElektronika's IDE is that they support a wide range of microcontrollers. In on development environment you can work on PIC, PIC32, AVR, or ARM. If you prefer Basic then you may consider purchasing Microcode Studio for Basic.

Back to Top

A Brief History of Atmel's AVR

A Brief History

The AVR architecture was conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan. The AVR architecture was later bought by Atmel Corporation in 1996.

The original AVR MCU was developed at a local ASIC house in Trondheim, Norway called Nordic VLSI at the time, now Nordic Semiconductor. It was known as a RISC (Micro RISC) and was available as silicon IP/building block from Nordic VLSI. When the technology was sold to Atmel from Nordic VLSI, the internal architecture was further developed by Bogen and Wollan at Atmel Norway. The designers worked closely with compiler writers at IAR Systems to ensure that the instruction set provided for more efficient compilation of high-level languages.

Getting Started

Similarly to Microchip's MPLABX IDE, Atmel has it's own official development environment called Atmel Studio. Atmel Studio allows you to program both Atmel's AVR and ARM based microcontrollers in C/C++. The entire development environment is also open source. To program your microcontroller, we sell a USB AVR Programmer.

Back to Top

The Arduino Platform

Arduino is an open-source electronics prototyping platform based on Atmel's AVR microcontrollers. They provide a free and open-source IDE to get you up and running. The IDE comes with a large community and code examples to help you make whatever you can think of. The Arduino hardware comes in various sizes and form factors to fit your project and your wallet.

We have a few different samples of Arduino code that we have written here at SuperDroid Robots. This code can be seen at our GitHub. Here you can see sample code for a vectoring triwheeled robot, an all-terrain robot and our promotional autonomous robot. Any of this code is fine for others to use or modify.

Breakdown of Available Arduino Platforms

Mini R5

Mini R5

uC: ATmega 328

Input Voltage: 7-9V

System Voltage: 57-9V

Clock Speed: 16 MHz

Digital I/O: 14

Analogs: 6

PWM: 8

UART: 1

Memory: 32 Kb

Click Here To Order
Micro

Micro

uC: ATmega32U4

Input Voltage: 5-12V

System Voltage: 5V

Clock Speed: 16 MHz

Digital I/O: 12

Analogs: 4

PWM: 5

UART: 1

Memory: 32 Kb

Click Here To Order
Mega 2560 R3

Mega 2560 R3

uC: ATmega2560

Input Voltage: 7-12V

System Voltage:5V

Clock Speed: 16 MHz

Digital I/O: 54

Analogs: 16

PWM: 14

UART: 4

Memory: 256 Kb

Click Here To Order
Leonardo

Leonardo

uC: ATmega32U4

Input Voltage: 7-12V

System Voltage: 5V

Clock Speed: 16 MHz

Digital I/O: 20

Analogs: 12

PWM: 7

UART: 1

Memory: 32 Kb

Click Here To Order
Uno R3

Uno R3

uC: ATmega32U4

Input Voltage: 7-12V

System Voltage: 5V

Clock Speed: 16 MHz

Digital I/O: 14

Analogs: 6

PWM: 6

UART: 1

Memory: 32 Kb

Click Here To Order
Due

Due

uC: SAM3X8E

Input Voltage: 7-12V

System Voltage: 3.3V

Clock Speed: 84 MHz

Digital I/O: 54

Analogs: 12

PWM: 12

UART: 4

Memory: 512 Kb

Click Here To Order

Need Customization?

With our experienced team of electrical, firmware, and software engineers, we provide custom designs and solutions to fit your needs. We have extensive experience in electronics deisng with high-speed digitial and analog design. Embedded firmware development using USB, Ethernet, RS-485, RS-232, SPI, and I2C protocols. We also do significant application development in .NET to allow simple and easy connectivity and control from a computer.

MCU types

Learn about the architecture, basics, and industry leaders in microcontrollers. This page explains the key details and programmable microcontrollers, especially Arduino microcontrollers and ARM based microcontrollers.
Powered by SuperDroid Robots, Inc