You are on page 1of 24

AVR Development Board Ver.

3 Users Guide

Page 1 of 24

AVR Development Board Ver.3 - Users Guide

AVR Development Board Ver.3 Users Guide

Model No: AVR-DB-V3

Get Up-and-Running Quickly and Start Developing Your Application on Today

AVR Development Board Ver.3 Users Guide

Page 2 of 24

Thank you for purchasing our AVR development board. Trademarks All brand and product names mentioned herein are trademarks, services marks, registered trademarks, or registered service marks of their respective owners and should be treated as such.

Table of contents
Topic Page No. 1. Introduction to AVR Development Board. 3 2. Introduction to AVR Microcontroller Series. 4 3. Introduction to AVR Tool Chain 8 4. Software Installation....10 5. Getting Started.11 6. LED Interfacing21 7. Precautions24

AVR Development Board Ver.3 Users Guide

Page 3 of 24

Section 1

Introduction to AVR Development Board


A well designed development board is always essential for smooth development/experimentation with microcontrollers. Every hobbyist must have some kind of development setup. Some people use breadboard while others use general PCB to fabricate their development system. Development is not very easy if bread boards or general PCB are used. If bread board is used, after few days of use the wire will become loose or come out of the hole. While making large circuit in a general PCB is a tedious job. Such problems are solved by using AVR Development Board. It is a circuit board with basic connection required to drive the microcontroller and also with features like serial port, LCD display, seven segment displays, prototyping area, power supply and it supports 40 pin AVR microcontrollers. A development board is very useful as you can program the microcontroller and also check the outputs using the LEDs or LCD display or even connect it to the rest of the project using wires or connectors. The power supply provided on the board can be used to supply power to other circuits. The board also has provision to run DC motors or even stepper motors with the help of motor driver ICs present on the board. A very good advantage of such a development board is that all the basic project requirements are present on the board and it also occupies less space even with all the modules like LCD and seven segment displays. The AVR development board has features which helps you in making and testing a project involving a variety of modules like: LED and Switches 12V and 5V power supply Buzzer LCD display Seven segment display

AVR Development Board Ver.3 Users Guide

Page 4 of 24

4 x 4 or 4 x 3 Keypad Motor Driver IC Serial Port

So one can say the AVR development board is the perfect circuit to design, make and test very interesting and innovative projects

Section 2

Introduction to AVR Microcontroller Series


The AVR architecture was conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan. The original AVR MCU was developed at a local ASIC house in Trondheim, Norway called Nordic VLSI at the time, now Nordic Semiconductor, where the two founders of Atmel Norway were working as student. 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 Alf and Vegard at Atmel Norway, a subsidiary of Atmel founded by the two architects. The designers worked closely with compiler writers at IAR Systems to ensure that the instruction set provided for more efficient compilation of highlevel languages. Atmel says that the name AVR is not an acronym and does not stand for anything in particular. The creators of the AVR give no definitive answer as to what the term "AVR" stands for. However, it is commonly accepted that AVR stands for Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor. Among the first of the AVR line was the AT90S8515, which in a 40-pin DIP package has the same pinout as an AVR microcontroller, including the external multiplexed address and data bus.

AVR Development Board Ver.3 Users Guide

Page 5 of 24

BASE BOARD DIAGRAM OF AVR DEVELOPMENT BOARD VER.3

Power supply

Regulator

BUZZER

Relay Driver RESET Program button Port A Port B LCD Port D Port C Serial connector Motor controller

Microcon troller

Seven Segment Display

4x4 Keyboard

Switch Array

LED Array

AVR Development Board Ver.3 Users Guide

Page 6 of 24

The polarity of the RESET line was opposite (AVR's having an active-high RESET, while the AVR has an active-low RESET), but other than that, the pinout was identical. The AVR is a modified Harvard architecture machine where program and data is stored in separate physical memory systems that appear in different address spaces, but having the ability to read data items from program memory using special instructions. Basic families AVRs are generally classified into five broad groups:

tinyAVR the ATtiny series


o o o

0.58 kB program memory 632-pin package Limited peripheral set

megaAVR the ATmega series


o o o

4256 kB program memory 28100-pin package Extended instruction set (Multiply instructions and instructions for handling larger program memories)

Extensive peripheral set

XMEGA the ATxmega series


o o o

16384 kB program memory 4464100-pin package (A4, A3, A1) Extended performance features, such as DMA, "Event System", and cryptography support.

Extensive peripheral set with DACs

AVR Development Board Ver.3 Users Guide

Page 7 of 24

Application-specific AVR
o

megaAVRs with special features not found on the other members of the AVR family, such as LCD controller, USB controller, advanced PWM, CAN etc.

FPSLIC (AVR with FPGA)


o o o

FPGA 5K to 40K gates SRAM for the AVR program code, unlike all other AVRs AVR core can run at up to 50 MHz

32-bit AVRs

In 2006 Atmel released microcontrollers based on the new, 32-bit, AVR32 architecture. They include SIMD and DSP instructions, along with other audio and video processing features. This 32-bit family of devices is intended to compete with the ARM based processors. The instruction set is similar to other RISC cores, but is not compatible with the original AVR or any of the various ARM cores. All these microcontrollers have EEPROM, SRAM and flash memory and hence removing the need for external memory in most cases. Almost all devices (except the smallest TinyAVR chips) have serial interfaces, which can be used to connect larger serial EEPROMs or flash chips. The data is usually stored in SRAM and the program is stored in the program memory. The program memory is usually indicated in the naming of the device. For e.g. ATMEGA16 has 16K bytes of program memory and similarly ATMEGA32 has 32K bytes. Sometimes if the data is almost constant throughout the program then it can be stored in the flash memory and thus SRAM space can be saved.

AVR Development Board Ver.3 Users Guide

Page 8 of 24

Section 3

Introduction to AVR Tool Chain


A lot of softwares are used with AVR development boards to write programs for microcontrollers, compile them and to load them into the microcontrollers. To name a few there are software like AVR GCC, Code Vision AVR, Pascal etc. which help in compiling the program which is to written into the microcontroller. Next there are softwares like AVR ISP Programmer and STK 500 to upload the program i.e. the .hex file into the microcontroller. Next there is Atmel AVR Studio 5 which is the Integrated Development Environment (IDE) for developing and debugging embedded Atmel AVR applications. The AVR Studio 5 IDE gives a seamless and easy-to-use environment to write, build, and debug C/C++ and assembler code. If a bootloaded microcontroller is used then AVR GCC compiler and AVR ISP programmer can be used. A main advantage of AVR GCC over other compilers is that it is a freeware and is easily available. Installing AVR GCC Compiler First go to AVR folder in the CD which is provider along with this manual. Go to Compilers folder and open WinAVR. Click on the setup file and install WinAVR. After installation is complete, there will be WinAVR files like Programmers Notepad, MakeFile etc. on the desktop.

Getting Started with AVR GCC First open Programmers Notepad and open a makefile. Edit the makefile and make changes in target, FCPU value and source files according to your requirements. After saving the makefile, open a new file and write the C program in the file and save it.

AVR Development Board Ver.3 Users Guide

Page 9 of 24

Then click on Tools and select Make All. After that the compiler will run the C file and create .hex file in the same folder as the C file.

This is the .hex file which should be written into the microcontroller.

Installing AVR Programmer First go to AVR folder in the CD which is provider along with this manual. Go to Programmers folder and open AVR ISP Programmer. Click on the setup file and install AVR Programmer. After installation is complete, there will be a file AVR PROG on the desktop.

Getting Started with AVR PROG Double click on AVR Prog icon. A small window opens with options like Program, Read and Verify. Click on Browse and select the hex file which is to be written into the microcontroller. Then click on Program which is present below Flash and not the one which is below EEPROM. After programming close the window and run the program. Bootloaded microcontroller : If you are using a bootloaded microcontroller you can use AVR Prog or else you have to use other softwares to program. Also to put the microcontroller in programming mode, first press and hold PROG switch present on the development board and at the same time press RESET switch once and release it. After that release PROG switch.

AVR Development Board Ver.3 Users Guide

Page 10 of 24

Section 4

Installing Softwares
Installing SDCC (Small Device C Compiler): is freeware ANSI C compiler that targets WinAVR and many more. Follow the same steps as guided in the previous section, except locate the below file Development kit/compilers/sdcc/sdcc-2.7.0-setup Installing AVR Prog is a pc tool for programming flash based Microcontroller Follow the same steps as guided in the previous section, except locate the below file Development kit/programmer/ AVRProg.exe

Section 5

AVR Development Board Ver.3 Users Guide

Page 11 of 24

Getting started
After installing the software, to compile the program using WinAVR
software follow the below steps, figures will guide you.

1. Run the Programmers Notepad (WinAVR)

2. Save the file by using .c extension

AVR Development Board Ver.3 Users Guide

Page 12 of 24

3. Write all your program in the textbox appears on the screen and save the file.

AVR Development Board Ver.3 Users Guide

Page 13 of 24

4. After completion of the program go to Tools menu select MakeAll option. It appears process exit code: 2 on the below showed output screen.

5. Then run the MFile(WinAVR) go to Start Menu WinAVR MFile(WinAVR)

All programs

AVR Development Board Ver.3 Users Guide

Page 14 of 24

6. Select the microcontroller from the list of supported microcontrollers given in the compiler. Go to Makefile MCU type ATmega select your atmega type no.

7. Go to Make file

Output format

ihex

AVR Development Board Ver.3 Users Guide

Page 15 of 24

8. Go to Makefile\Debug format\AVR COFF (AVR Studio 3.x, VMLab < 3.10 [obsolete])

9. Select Makefile\Programmer \bsd

AVR Development Board Ver.3 Users Guide

Page 16 of 24

10. Select Make file\Port\com1

11. Select Save as and save the file in the project folder with the name Make file.

AVR Development Board Ver.3 Users Guide

Page 17 of 24

12. Open the Make file in the compiler and make some changes as follows.

13. Type the F_CPU = 7372800

AVR Development Board Ver.3 Users Guide

Page 18 of 24

14. TARGET= LEDinterfacing (your file name) and save the file.

15. Finally compile the program by selecting (WinAVR) Make All in the Tools menu. And it shows the Process Exit Code : 0 (on the output screen).

AVR Development Board Ver.3 Users Guide

Page 19 of 24

16. After the compilation process Run the software AVRProg. Go to C:\Program Files\Atmel\AVR Tools\AvrProg

17. Execute AVRProg \ Browse\Your project name (saved in HEX format)

AVR Development Board Ver.3 Users Guide

Page 20 of 24

18. Next click on the Flash\Program command button 19. Then press & hold the PROG button in one finger and consequently press & release the RESET button in another finger finally release the PROG button. 20. After the indication of Programming Ok on AVRProg press the RESET button to execute the system.

AVR Development Board Ver.3 Users Guide

Page 21 of 24

Section 6 LED Interfacing


In this section you will be learning how to interface a LED and microcontroller. This is one of the most basic projects that one can do using a microcontroller. By interfacing a LED properly one can learn the basics like making a port input or output and assigning value to the port and making a particular pin HIGH or LOW. By making user defined header files for simple projects like this one can learn the basics of user defined header files. Lets start with a simple task of switch on a LED. To switch on a LED the first thing that should be done is , make the particular pin as output pin and then a HIGH value should be given to the pin to which the LED is connected. How do we do that ? Its simple! ATMEGA32 has 4 ports namely PORT A,B,C and D. Each port has 4 pins .All these ports can be made input or output. So that means we have 32 input/output pins. Usually in all developments boards a LED is connected to the 1st pin i.e. PORT B pin PB0. Making the PORT as output or input is decided by the value written into the PORT DDR( Data Direction Register). By writing logic HIGH (1) into this the particular port is made output and a logic low(0) makes the port as input port. So now the task is to make PORT B as output. This can be done in two ways: 1. You write logic HIGH to the whole port. This is done as follows: DDRB = 0xFF; DDRB implies to Data Direction Register of PORTB. 0xFF is in hexadecimal and in binary it is 1111 1111. It means all 8 pins of PORT B are made as output pins. But a disadvantage is that all the 8 pins become output port and they cant be used for any other task ( i.e. to act as input pin ). So we follow another method. 2. You write logic HIGH only to the particular pin. This is done by using a standard function used to address a particular bit or pin in a register. The function is _BV() and it is used as follows: DDRB |=_BV( PB0 ) ;

AVR Development Board Ver.3 Users Guide

Page 22 of 24

| is logic OR operator. We know that anything OR operated with 0 will retain the previous value and anything OR operated with 1 will always be 1. So by performing OR operation on DDRB bit PB0, no matter what the previous value is , it becomes 1 , thus making it an output pin. Now that the port or pin is made as output, it is time to write logic HIGH into the port and make it give a logic HIGH i.e. +5V output to glow the LED. This is also done in the same way as DDR, but the only difference is that instead of DDR we will be using PORTB. PORTB = 0xFF ; or PORTB |=_BV( PBO ) ; Thus LED is turned ON by giving logic HIGH to PORT B pin PB0 . Similarly to switch OFF LED , the PORT is still output port but logic LOW should be written into the port . So DDRB will be the same and you need not write it again. Logic LOW is written into Port B pin PB0. PORTB = 0x00 ; or PORTB &=~_BV(PB0) ; By writing 0x00 , the whole port i.e. all 8 pins will go LOW. So the second method is used. & is AND operator. We know that anything AND operated with 1 will retain the previous value and anything AND operated with 0 will always be 0. So by performing AND operation on PORT bit PB0, no matter what the previous value is , it becomes 0 , thus only pin PB0 goes low. So the LED is switched OFF by writing logic LOW into the Port. Now that we learnt how to switch ON and switch OFF a LED, lets put it in a small program such that the LED switches ON for some time an switches OFF for some time. For this we need to use delay function. By giving a certain amount of delay after switching ON the LED , the LED will remain ON for that much amount of time and then it can be switched OFF and with a delay it will remain OFF for than much amount of time. And we will include another parameter where the LED should switch ON and OFF for a certain number of times. We will make a user defined function for that with number of time , On time and OFF time as parameters.

AVR Development Board Ver.3 Users Guide

Page 23 of 24

The program for this is given. BlinkingLED.c: Demonstration of interfacing an LED designed for AVR running at 7.3728 MHz Compile the program in WinAVR Compiler. Operation: when loading program through programmer completes, LED blinks continuously at the interval of 500ms. -----------------------------------------------------------------------------*/ //Includes Definition of AVR #include <avr/io.h> #include <util/delay.h> //Define Port/Pins #define LED_DDR #define LED_PORT #define LED_PIN

DDRB PORTB PB0

//Define Macros #define LEDOn() LED_PORT |= _BV(LED_PIN) #define LEDOff() LED_PORT &= ~_BV(LED_PIN) //MAIN Function Begins int main(void) { LED_DDR |= _BV(LED_PIN); //Initialize port direction LED_PORT &= ~_BV(LED_PIN); //Initialize port for (;;) { LEDOn(); _delay_ms(500); LEDOff(); _delay_ms(500); } return 0; } //makes LED on //delay of 1000ms //Makes LED off //delay of 1000ms

AVR Development Board Ver.3 Users Guide

Page 24 of 24

Section 10 Precaution
Please note that the AVR Development Board come without any case/box and all components are exposed for finger touches and therefore extra attention must be paid to ESD (electrostatic discharge) precaution. Make it a habit always to first touch the metal surface of one of the USB or Ethernet connectors for a few seconds with both hands before touching any other parts of the boards. That way, you will have the same potential as the board and therefore minimize the risk for ESD. Never touch directly on the AVR Development Board. The push-buttons on the AVR Development Board have grounded shields to minimize the effect of ESD.

You might also like