Skip to main content

AVR

What is Atmel Advance virtual RISC uC?


ATmega16 and ATmega328 AVR Microcontrollers

An AVR microcontroller is a type of device manufactured by Atmel, which has particular benefits over other common chips, but first what is a microcontroller?
The easiest way of thinking about it is to compare a microcontroller with your PC, which has a motherboard in it. On that motherboard is a microprocessor (Intel, AMD chips) that provides the intelligence, RAM and EEPROM memories and interfaces to rest of system, like serial ports (mostly USB ports now), disk drives and display interfaces.
A microcontroller has all or most of these features built-in to a single chip, so it doesn’t need a motherboard and many components, LEDs for example, can be connected directly to the AVR. If you tried this with a microprocessor, bang!
AVR microntrollers come in different packages,some designed for through-hole mounting and some surface mount. AVRs are available with 8-pins to 100-pins, although anything 64-pin or over is surface mount only. Most people start with a DIL (Dual In Line) 28-pin chip like the ATmega328 or the 40-pin ATmega16 or ATmega32.
PC microprocessors are always at least 32-bit and commonly now 64-bit. This means that they can process data in 32-bit or 64-bit chunks as they are connected to data buses this wide. The AVR is much simpler and deals with data in 8-bit chunks as its data bus is 8-bit wide, although there is now an AVR32 with 32-bit bus and an ATxmega family with a 16-bit data bus.
A PC has an operating system (Windows or Linux) and this runs programs, such as Word or Internet Explorer or Chrome that do specific things. An 8-bit microcontroller like the AVR doesn’t usually have an operating system, although it could run a simple one if required, and instead it just runs a single program.
Just as your PC would be useless if you didn’t install any programs, an AVR must have a program installed to be any use. This program is stored in memory built-in to the AVR, not on an external disk drive like a PC. Loading this program into the AVR is done with an AVR programmer, usually when the AVR is in a circuit or system, hence AVR ISP or AVR In System Programmer.
AVRISP AVR Programmer for AVR Microcontrollers
So what is a program? A program is a series of instructions, each very simple, that fetch and manipulate data. In most applications where you would use an AVR, such as a washing machine controller for example, this means reading inputs, checking their state and switching on outputs accordingly. Sometimes you may need to modify or manipulate the data, or transmit it to another device, such as an LCD or serial port.
A series of simple binary instructions are used to do these basic tasks and each one has an equivalent assembly language instruction that humans can understand. The most basic way of writing a program for an AVR is to use assembly language (although you could write binary numbers if you want to be pedantic).
Using assembly language allows you to understand far more about the operation of the AVR and how it is put together. It is also produces very small and fast code. The disadvantage is that you as the programmer have to do everything, including memory management and program structure, which can get very tedious.
To avoid this, high level languages are increasingly being used to write programs for the AVR, C in particular but also Basic and Java derivatives. High level means that each line of C (or Basic or Java) code can translate into many lines of assembly language.
The compiler also deals with the program structure and memory management so it is much easier. Commonly used routines, such as delays or maths, can also be stored in libraries and reused very easily. The C compiler also deals with larger numbers that take up more than a byte (8-bits).
In my opinion, writing AVR programs in C is like driving a car. Yes you can do it very easily but if something goes wrong you haven’t got a clue how to fix it and you can’t deal with tricky situations like icy roads. Starting with assembly language and writing some simple programs lets you understand what is going on “under the hood” so you know how it works and can get the most out of it. Then swap to C by all means but at least you know how the AVR microcontroller fits together and its limitations.
AVR Microcontroller Basics Kit Picture

Comments

Popular posts from this blog

PCB Design using EAGLE – Part 1: Introduction to EAGLE and Software Environment

Have you ever come across a situation where you prototyped a project on a solderless breadboard and liked it so much that you want it on a PCB? Well, read on! So far we have been writing software programs, building binaries out of them and executing them on micro-controllers. It’s time to get physical now! This post, and a couple of upcoming posts will deal with this very thing – how to realize your project in hardware. We’ll deal with PCBs, and also learn how to design and fabricate them. PCB of NI myRIO (Source: National Instruments) Introduction to PCB Design If you are an electronics hobbyist you might have probably designed many electronic circuits and even prototyped them on a breadboard. Now it’s time to step up to the next level. Let’s design the same on a PCB. This article and a couple more of them will be addressing the topic of PCB designing. There are many types of circuits that you can design on a PCB – like analog, digital, RF – and the PCB layout may make

The ADC of the AVR

Analog to Digital Conversion Most real world data is analog. Whether it be temperature, pressure, voltage, etc, their variation is always analog in nature. For example, the temperature inside a boiler is around 800°C. During its light-up, the temperature never approaches directly to 800°C. If the ambient temperature is 400°C, it will start increasing gradually to 450°C, 500°C and thus reaches 800°C over a period of time. This is an analog data. Signal Acquisition Process Now, we must process the data that we have received. But analog signal processing is quite inefficient in terms of accuracy, speed and desired output. Hence, we convert them to digital form using an Analog to Digital Converter (ADC). Signal Acquisition Process In general, the signal (or data) acquisition process has 3 steps. In the  Real World , a  sensor  senses any physical parameter and converts into an equivalent analog electrical signal. For efficient and ease of signal processing, this analo

Nvidia Announces New Drive CX And PX Automotive Tech At CES

Right after the company announced the new Tegra X1 mobile SoC at a press conference in Las Vegas, Nvidia's CEO, Jen-Hsun Huang, went on to announce the company's plans in the automotive space. As it turns out, actually, it will be doing quite a bit, and the way we see it, it may even be what the automotive industry needs. The first announcement in the category was the Nvidia Drive CX, which the graphics card maker calls a "Digital Cockpit Computer." The idea behind it is to be a single central computing system that takes care of all the displays inside the car. Nvidia believes that in the future, cars will have more and more screens built in, and having all of it managed from a central computer is what will make it shine. Today's high-tech cars have about 700 thousand pixels that need to be pushed, which isn't that much. Despite that, Nvidia built the Drive CX to be powerful enough to push up to 16.6 million pixels. This makes sense, though, as by addi