AVR1927: XMEGA-A1 Xplained Getting Started

AVR1927: XMEGA-A1 Xplained Getting Started
Guide
Features
• Easy to reprogram with just a USB cable and a preprogrammed boot loader
• Easy to debug code with JTAG-based debugger/emulator
• Can be used with Atmel® AVR® STK®600, Atmel AVR Dragon™, Atmel AVR
JTAGICE mkII, and Atmel AVR ONE!
8-bit
Microcontrollers
Application Note
1 Introduction
The Atmel XMEGA-A1 Xplained evaluation kit is a hardware platform for evaluating
the Atmel ATxmega128A1 microcontroller.
The kit offers a range of features that enable the Atmel AVR XMEGA® user to get
started using AVR XMEGA peripherals right away and understand how to integrate
the AVR XMEGA device in their own design. This getting started guide will walk
you through all the basic steps needed to start using the XMEGA-A1 Xplained
evaluation kit.
Figure 1-1. XMEGA-A1 Xplained evaluation kit.
Rev. 8372A-AVR-04/11
2 What is needed to get started?
To be able to run the preprogrammed code, you need the Atmel XMEGA-A1 Xplained
evaluation kit and a USB cable (Standard-A to Mini-B or Mini-AB) to connect the
board to a PC.
When connecting the XMEGA-A1 Xplained to a PC, the operating system will request
a driver file for installing the serial communication driver. This driver file is available in
the zip file associated with this document. The driver file supports both 32- and 64-bit
versions of Windows® XP and Windows 7. Driver installs are not necessary on Linux®
operating systems.
To modify the example code or write new code and compile it, you need a toolchain
for Atmel AVR microcontrollers and an IDE to edit and debug code. Atmel provides
both the Atmel AVR Studio® 4 and the Atmel AVR GNU Toolchain. Other IDEs and
toolchains are also available, such as the IAR™ Embedded Workbench.
If you also want to debug the code at runtime, you’ll need a debugger like the Atmel
AVR JTAGICE mkII or Atmel AVR ONE! More information on these tools is available
from the Atmel website. See the reference section later in this document for more
details.
2.1 Documentation for XMEGA-A1 Xplained
The AVR1924: XMEGA-A1 Xplained Hardware User’s Guide package includes all indepth information about the kit, such as schematics, BOM, assembly drawings, 3D
plots, and more. The package is available from the Atmel website:
www.atmel.com/xplained
2.2 AVR Software Framework
The AVR Software Framework (ASF) provides software drivers and libraries to build
applications for Atmel AVR devices. It has been designed to help develop and glue
together the different components of a software design. It can easily integrate into an
operating system (OS) or run as a standalone product.
The new AVR Software Framework (version 2+) can be used to get the latest
software updates. It can be found here:
http://atmel.com/dyn/products/tools_card.asp?tool_id=4192&category_id=163&family
_id=607&subfamily_id=2138
2.3 Integrated development environment for Atmel AVR microcontrollers
2.3.1 AVR Studio 4
AVR Studio 4 is a free integrated development environment (IDE) for Atmel AVR 8-bit
MCUs. It can be used to write code, program, and debug a microcontroller.
Atmel AVR Studio 4
www.atmel.com/avrstudio
2
AVR1927
8372A-AVR-04/11
AVR1927
2.3.2 Embedded Workbench for Atmel AVR
IAR Embedded Workbench® is an integrated development environment with project
management tools and editor.
IAR Embedded Workbench for Atmel AVR
http://www.iar.com/website1/1.0.1.0/107/1/
2.4 FLIP (BatchISP)
BatchISP is a command line tool for programming the flash memory and EEPROM of
the board controller, and is part of the FLIP installation. It can be used to
communicate with the preprogrammed boot loader on the board controller.
FLIP (FLexible In-system Programmer) for programming:
http://atmel.com/dyn/products/tools_card.asp?tool_id=3886
2.5 Toolchain
In order to build an application from source code, a toolchain, which includes the
assembler, compiler, linker, and other required tools, is needed. The code for this kit
is compatible with the AVR GNU and IAR AVR toolchains.
2.5.1 AVR GNU Toolchain
This is a free toolchain that can be downloaded from the Atmel webpage. It includes
all the necessary tools, such as C/C++ compiler, assembler and linker, for AVR
application development. The toolchain integrates with the Atmel AVR Studio 4
application through the AVR GCC plug-in.
AVR GNU Toolchain (free C/C++ compiler for AVR 8- and 32-bit MCUs)
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725
2.5.2 IAR AVR Toolchain
This is a commercial toolchain that includes all the necessary tools, such as C/C++
compiler, assembler, and linker, for AVR application development. A 30-day
evaluation version as well as a 4k (code size limited) kick-start version is available
from the IAR website.
IAR Embedded Workbench for Atmel AVR
http://www.iar.com/website1/1.0.1.0/107/1/
2.6 Programmers and debuggers
Programmers and debuggers are needed when either the application is programmed
without using the boot loader or when debugging support is needed. Several different
tools are available that can be used directly with the Xplained kit. The most common
tools are described in the following chapters.
2.6.1 AVR Dragon
Atmel AVR Dragon is a low-cost debug/programming tool that can be used for code
development with the XMEGA-A1 Xplained kit.
Atmel AVR Dragon (on-chip programming and debugging tool)
http://atmel.com/dyn/products/tools_card.asp?tool_id=3891
3
8372A-AVR-04/11
2.6.2 AVR JTAGICE mkII
Atmel AVR JTAGICE mkII is a mid-range debug/programming tool that can be used
for code development with the XMEGA-A1 Xplained kit.
Atmel AVR JTAGICE mkII (on-chip programming and debugging tool)
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3353
2.6.3 AVR ONE!
Atmel AVR ONE! is a high-end debug/programming tool that can be used for code
development with the Atmel XMEGA-A1 Xplained kit.
Atmel AVR ONE! (on-chip programming and debugging tool)
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4279
4
AVR1927
8372A-AVR-04/11
AVR1927
3 Board overview
Figure 3-1 shows the features available on the board. For more information on the
XMEGA-A1 Xplained hardware, take a look at the Atmel application note AVR1924:
XMEGA-A1 Xplained Hardware User’s Guide.
Figure 3-1. Overview of the XMEGA-A1 Xplained kit.
5
8372A-AVR-04/11
4 Connecting the board
Connect a USB cable between the board and a PC or a USB power supply to power it
up. That is all that is needed. When power is applied, the Power/Status LED will light
up green.
WARNING
Do not power the board without having the jumper attached next to the
USB connector or an ammeter mounted. Otherwise, the device may be
damaged by power sourcing through I/O pins. The power measurement
header is located next to the USB connector, as shown in Figure 3-1.
4.1 Connecting AVR Dragon
A 10-pin header cable is needed to connect the Atmel AVR Dragon tool to the Atmel
XMEGA-A1 Xplained board. Connect the cable between the JTAG connector on the
AVR Dragon kit and the XMEGA-A1 Xplained JTAG connector. Take a look at Figure
4-1 to see how the connection should be made.
Figure 4-1. Connecting the AVR Dragon kit to an Xplained board.
4.2 Connecting AVR JTAGICE mkII
The grey connector on the Atmel AVR JTAGICE mkII probe has to be used when
connecting to the XMEGA-A1 Xplained board. See Figure 4-2 for reference on how to
make this connection. The notch of the grey connector must be placed into the cutout of the board.
6
AVR1927
8372A-AVR-04/11
AVR1927
Figure 4-2. Connecting the AVR JTAGICE mkII probe to an Xplained board.
4.3 Connecting AVR ONE!
The Atmel AVR ONE! JTAG connector can be connected to the Atmel XMEGA-A1
Xplained kit with a standoff adapter, as shown in Figure 4-3.
Figure 4-3. Connecting the AVR ONE! debugger to an Xplained board.
7
8372A-AVR-04/11
5 Programming the kit
5.1 Programming via the boot loader
The preprogrammed boot loader on the Atmel ATxmega128A1 offers the possibility to
program the device via the UART interface. Because the default firmware of the
board controller acts as a UART-to-USB bridge, the ATxmega128A1 can be
programmed from the PC via the USB connection to the kit.
The boot loader on the ATxmega128A1 is evoked by pushing the mechanical switch
(SW0) during reset. Programming can be performed by using the BatchISP command
line tool from the FLIP installation.
5.1.1 Prerequisite
To program the device, you need BatchISP, which can be found under the FLIP
installation directory. You need to install FLIP version 3.4.2 or later.
To program the new firmware into the device using BatchISP, you need to have the
UART-to-USB gateway in the board controller intact.
FLIP needs an XML configuration file for the device. If using FLIP v3.4.2, the XML
configuration file is not included. Copy the XML file from the zip file associated with
this application note, and put the file in the Flip 3.4.2\bin\PartDescriptionFiles
installation directory.
5.1.2 Step-by-step guide
To program the device, please follow these steps:
1. Disconnect the USB cable from the kit
2. Press and hold the button (SW0) while re-attaching the USB cable
3. Open the device manager and locate the COM port used by the kit:
Figure 5-1. Xplained kit COM port.
8
AVR1927
8372A-AVR-04/11
AVR1927
4. Run the command below using the correct COM port:
Batchisp
-device ATXMEGA128A1
-hardware RS232
-port COM19
-baudrate 115200
–operation onfail abort
memory flash
erase f
blankcheck
loadbuffer your_firmware_file.hex
program verify
start reset 0
5. Your firmware should now be running.
NOTE
The boot loader can only be synchronized once after power-up, which means that you
can only connect to the target once using BatchISP. If you were not able to do
everything you needed to do on the first try, you will need to power cycle the board
and run the command again. An example of programming the device via the boot
loader can be seen in Figure 5-2.
Figure 5-2. Example of programming with BatchISP.
The boot loader supports reading and writing of the following memories:
• Flash (0x00000 - 0x1FFFF, application section of the flash)
• EEPROM (0x000 - 0x7FF)
• User (0x000 - 0x1FF, user signature row)
For more information about the BatchISP command line tool, run “batchisp -h” from a
command line to get a list of options and parameters. You can also read the FLIP
help file for information.
9
8372A-AVR-04/11
5.2 Restoring the boot loader
When the boot loader has been erased, it can be restored with any of the previously
mentioned programming tools.
The hex file for the boot loader can be found in the zip file associated with this
application note and is named atxmega128a1_batchisp_uart_bootloader.hex
NOTE
10
The boot loader section is protected, and can only be erased with an external
programmer.
AVR1927
8372A-AVR-04/11
AVR1927
6 Example applications
Several examples are available in the ASF that can be downloaded from the Atmel
website ASF section:
http://atmel.com/dyn/products/tools_card.asp?tool_id=4192&category_id=163&family
_id=607&subfamily_id=2138
Each example has full source code with documentation, as well as ready-made
binaries to get you started quickly. The examples can be compiled using either GCC
or IAR compilers.
6.1 Preprogrammed firmware
The Atmel ATxmega128A1 MCU on the Atmel XMEGA-A1 Xplained board is
preprogrammed with a UART boot loader and default example firmware.
6.1.1 Functionality of the preprogrammed firmware
The preprogrammed firmware in the ATxmega128A1 MCU includes a memory game
where the user can enter a pattern by pressing the buttons on the Xplained board in
any given pattern. When the pattern is stored, the user can try to copy the pattern by
following the feedback given by the board.
The board has some configurations available to change the mode of operation. The
configuration can be changed by placing jumpers on PORTA (J2). The available
configurations are:
• With no jumpers attached on the port, the board shows parallel running lights. The
running lights mark the timeout until a button press sequence is stored to
EEPROM, and a game of memory is started using the saved button presses. If no
buttons have been pressed when the board times out, the timeout will be reset
• If a jumper is placed between port pins 0 and 1 during power-up (reset), the board
will try to load existing button presses stored in EEPROM, if any, and start playing
memory directly
• If a jumper is placed between port pins 2 and 3 during power-up or reset, the
board will play tones from the chromatic scale, starting at an A of 441Hz, instead
of playing the sound samples
6.2 More example projects and tutorials
For further exploration of the ATxmega128A1, please see the application notes that
are applicable for the device. Also, there are several example projects and drivers
available in the AVR Software Framework modules for the ATxmega128A1. Readymade projects targeted just for the XMEGA-A1 Xplained kit are also available.
For basic training to get familiar with the ATxmega128A1 device, Atmel application
notes AVR1500 to AVR1510 are a good starting point. These application notes are
available from the Atmel website:
http://atmel.com/dyn/products/tools_docs.asp?category_id=163&family_id=607&subf
amily_id=1965&tool_id=4506
11
8372A-AVR-04/11
7 How to compile example projects
The compilers generate two files when compiling a project. The hex file contains the
actual data that will be programmed into the device. This hex file can be programmed
into the device using one of the programmers listed in Section 2.6 or by using the
preprogrammed boot loader.
The other file generated is a debug file, which contain both the data to be
programmed into the device and debug information to make the code readable during
debugging. This file can be opened in Atmel AVR Studio 4 for single-stepping and
debugging. The file extension of the debug file depends on the compiler, and will be
either .elf for AVR GNU Toolchain or .dbg for IAR Embedded Workbench.
7.1 AVR GNU Toolchain
To make this project using AVR GNU Toolchain, open a shell/dos prompt and
navigate to the gcc subfolder. Type “make” and press enter. The binary and debug
files are created as:
xmega_applications_xplain_demo_atxmega128a1_xmega_a1_xplained.hex
xmega_applications_xplain_demo_atxmega128a1_xmega_a1_xplained.elf
7.2 IAR Embedded Workbench
To open the project in IAR Embedded Workbench, navigate to the iar subfolder and
open the project:
xmega_applications_xmega_a1_xplained_demo_atxmega128a1_xmega_a1_xplained.eww
The project can be compiled by pressing the F7 key on your keyboard or by selecting
“make” from the project menu. The binary and debug files are created as:
xmega_applications_xmega_a1_xplained_demo_atxmega128a1_xmega_a1_xplained.hex
xmega_applications_xmega_a1_xplained_demo_atxmega128a1_xmega_a1_xplained.dbg
12
AVR1927
8372A-AVR-04/11
AVR1927
8 References
[www.atmel.com/Xplained]
[www.atmel.com/avrstudio]
8.1 IAR compiler
This is a commercial C/C++ compiler available for AVR 8-bit MCUs. A 30-day
evaluation version as well as a 4k (code size limited) kick-start version is available
from the IAR website:
IAR Embedded Workbench for Atmel AVR
http://www.iar.com/website1/1.0.1.0/107/1/
8.2 AVR Software Framework
This is a large library of drivers and code available for download and free use from
the Atmel website:
Atmel AVR Software Framework (ASF)
http://atmel.com/dyn/products/tools_card.asp?tool_id=4192&category_id=163&family
_id=607&subfamily_id=2138
13
8372A-AVR-04/11
9 EVALUATION BOARD/KIT IMPORTANT NOTICE
This evaluation board/kit is intended for use for FURTHER ENGINEERING,
DEVELOPMENT, DEMONSTRATION, OR EVALUATION PURPOSES ONLY. It is
not a finished product, and may not (yet) comply with some or any technical or legal
requirements that are applicable to finished products, including, without limitation,
directives regarding electromagnetic compatibility, recycling (WEEE), FCC, CE, or UL
(except as may be otherwise noted on the board/kit). Atmel supplied this board/kit
“AS IS,” without any warranties, with all faults, at the buyer’s and further users’ sole
risk. The user assumes all responsibility and liability for proper and safe handling of
the goods. Further, the user indemnifies Atmel from all claims arising from the
handling or use of the goods. Due to the open construction of the product, it is the
user’s responsibility to take any and all appropriate precautions with regard to
electrostatic discharge and any other technical or legal concerns.
EXCEPT TO THE EXTENT OF THE INDEMNITY SET FORTH ABOVE, NEITHER
USER NOR ATMEL SHALL BE LIABLE TO EACH OTHER FOR ANY INDIRECT,
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES.
No license is granted under any patent right or other intellectual property right of
Atmel covering or relating to any machine, process, or combination in which such
Atmel products or services might be or are used.
Mailing Address: Atmel Corporation, 2325 Orchard Parkway, San Jose, CA 95131
Copyright © 2011, Atmel Corporation
14
AVR1927
8372A-AVR-04/11
AVR1927
10 Table of contents
Features ............................................................................................... 1
1 Introduction ...................................................................................... 1
2 What is needed to get started?....................................................... 2
2.1 Documentation for XMEGA-A1 Xplained.......................................................................... 2
2.2 AVR Software Framework ................................................................................................ 2
2.3 Integrated development environment for Atmel AVR microcontrollers ............................. 2
2.3.1 AVR Studio 4 ................................................................................................................................ 2
2.3.2 Embedded Workbench for Atmel AVR ......................................................................................... 3
2.4 FLIP (BatchISP)................................................................................................................ 3
2.5 Toolchain.......................................................................................................................... 3
2.5.1 AVR GNU Toolchain..................................................................................................................... 3
2.5.2 IAR AVR Toolchain....................................................................................................................... 3
2.6 Programmers and debuggers ........................................................................................... 3
2.6.1 AVR Dragon ................................................................................................................................. 3
2.6.2 AVR JTAGICE mkII ...................................................................................................................... 4
2.6.3 AVR ONE! .................................................................................................................................... 4
3 Board overview ................................................................................ 5
4 Connecting the board ...................................................................... 6
4.1 Connecting AVR Dragon .................................................................................................. 6
4.2 Connecting AVR JTAGICE mkII ....................................................................................... 6
4.3 Connecting AVR ONE! ..................................................................................................... 7
5 Programming the kit ........................................................................ 8
5.1 Programming via the boot loader ..................................................................................... 8
5.1.1 Prerequisite .................................................................................................................................. 8
5.1.2 Step-by-step guide ....................................................................................................................... 8
5.2 Restoring the boot loader ............................................................................................... 10
6 Example applications .................................................................... 11
6.1 Preprogrammed firmware............................................................................................... 11
6.1.1 Functionality of the preprogrammed firmware ............................................................................ 11
6.2 More example projects and tutorials............................................................................... 11
7 How to compile example projects ................................................ 12
7.1 AVR GNU Toolchain....................................................................................................... 12
7.2 IAR Embedded Workbench ............................................................................................ 12
8 References...................................................................................... 13
8.1 IAR compiler ................................................................................................................... 13
8.2 AVR Software Framework .............................................................................................. 13
9 EVALUATION BOARD/KIT IMPORTANT NOTICE ........................ 14
15
8372A-AVR-04/11
10 Table of contents ......................................................................... 15
16
AVR1927
8372A-AVR-04/11
Atmel Corporation
2325 Orchard Parkway
San Jose, CA 95131
USA
Tel: (+1)(408) 441-0311
Fax: (+1)(408) 487-2600
www.atmel.com
Atmel Asia Limited
Unit 01-5 & 16, 19F
BEA Tower, Milennium City 5
418 Kwun Tong Road
Kwun Tong, Kowloon
HONG KONG
Tel: (+852) 2245-6100
Fax: (+852) 2722-1369
Atmel Munich GmbH
Business Campus
Parkring 4
D-85748 Garching b. Munich
GERMANY
Tel: (+49) 89-31970-0
Fax: (+49) 89-3194621
Atmel Japan
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chou-ku, Tokyo 104-0033
JAPAN
Tel: (+81) 3523-3551
Fax: (+81) 3523-7581
© 2011 Atmel Corporation. All rights reserved. / Rev.: CORP072610
®
®
®
®
®
®
Atmel , Atmel logo and combinations thereof, AVR , AVR logo, AVR Studio , STK , XMEGA , and others are registered trademarks or
®
trademarks of Atmel Corporation or its subsidiaries. Windows and others are registered trademarks of Microsoft Corporation in U.S.
and or other countries. Other terms and product names may be trademarks of others.
Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to
any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN THE ATMEL
TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS
ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE
LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION,
DAMAGES FOR LOSS AND PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO
USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or
warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and
product descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically
provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel products are not intended, authorized, or
warranted for use as components in applications intended to support or sustain life.
8372A-AVR-04/11