[hemmerling] Atmel ATxmega "XMEGA" ( by Microchip Technology Inc. )

ATxmega Starter Tools

( Mostly ) ATxmega Hardware - Evaluation Boards and Addons

Addon Cards for XMEGA-A3BU Xplained Kit


Assembly Language ( CPU Opcodes ) Reference

Atmel Studio 5 - Sample projects for Atmel AVR XMEGA

Operating Systems, Runtimes & Firmware for ATmega & ATxmega

Free standard Frameworks and standard Libraries

Free special Applications & Application Notes

Free Firmware

Commercial Operating Systems

The Development Toolchain ( IDEs, Compilers & Utility Tools ) for ATmega & ATxmega

The Difference between ATmega and ATxmega from Developer's Point of View

  • The Special Function Registers (SFRr / bitnames of the onchip peripherals are all different between ATmega and ATxmega.
  • For each development tool ( e.g. C/C++ compiler ), you need to get proper files ( e.g. C/C++ header files ) that support the ATxmega for the compiler you plan to use.
  • For each C/C++ application you develop, you have to use the right C/C++ header files, and use the right SFrs/bitnames of the really-existing onchip peripherals of the real target in your source code files.
  • Additionally, the developer must instruct the compiler to generate code exactly for the specific CPU, by setting the appropriate compiler switch. See AVR Libc "Using the GNU tools".
  • For example, old AVRs and some AVRtiny don't have a MULtiplication unit. So for these targets,the C compiler has to do shifts+adds to multiply, instead of using the MUL instruction.

In-system Programming ( ISP ) / In Circuit Serial Programming ( ICSP ) & On-chip Debugging ( OSD )

Hardware Tools

  • Atmel.
    • The in-circuit debugger Atmel JTAGICE 3.
      • “Mid-range In-System Debugger for Atmel 8- and 32-bit AVR Microcontrollers”.
      • Currently it just works with Atmel AVR Studio 5.
      • It doesn't and will never work with Atmel AVR Studio 4.
      • The device has an ID number, which is printed on a label glued on the device box. An installed Windows driver is dedicated for a single device ID. I.e. you can control several different devices from one Windows host, by connecting several devices to one host and installing a Windows driver for each device. The little drawback: If you have 2 devices and want to connect the one device instead of the other one to the Windows host, you must reinstall the Windows driver.
      • You don´t need the device for uploading and running a software ( this might be done by the USB connection by FLIP if you install an USBF DFU bootloader ), you just need it for debugging with Atmel Studio 5.
      • On the other hand, if you debug your software using JTAGICE3, you don´t use FLIP to upload the code, but you overwrite the Flash memory by JTAGICE3 and so an installed bootloader. As an installed bootloader is mandatory for the use of FLIP, serious use of FLIP during the debugging phase of the development of a software is not intended.
      • Atmel staff members told me inofficially, that a free ( command line ) untility to work with the tool on Windows is under development.
    • The in-circuit debugger Atmel AVR Dragon.
  • Frank Erdrich "µController-Projects" - The OpenSource hardware & software “Projekte / AVR JTAG-Interface” ( last update: 2005-02-12 ).
  • OLIMEX Ltd., Bulgaria.

Software Tools


Free IDEs

AVR Studio

  • In opposite to the development tools of other chip manufacturers,
    1. Atmel's development system “AVR Studio” ( the IDE ) is free.
    2. “AVR Studio” may use the OpenSource compiler SourceForge "WinAVR" as standard compiler, and not a proprietary own tool.. So with this compiler, there is no artifical “code size limit”, neither for 8-bit nor for 32-bit.
  • Sample projects are in the AVR Studio 4 folder “C:\Program Files\Atmel\AVR_Tools\AVR Toolchain\doc\avr-libc\examples” #.
  • Sample projects are in the AVR Studio 5 folder “C:\Program Files\Atmel\AVR Studio 5.0\AVR Toolchain\doc\avr-libc\examples” #.
  • Both “AVR Studio 4” and “AVR Studio 5” install an AVR Jungo USB driver, as interface for embedded devices.
AVR Studio 6
  • The free Atmel AVR Studio 6 for WinXP, Vista, Win7 with Visual Studio Shell (Isolated mode) 2010 and .NET 4.0.
AVR Studio 5.x
  • The free IDE Atmel AVR Studio 5, Atmel AVR Studio 5 for WinXP, Vista, Win7 with Visual Studio Shell (Isolated mode) 2010 and .NET 4.0.
    • You can select the target at the project properties. So for CPU emulation without target hardware, open a project, select “Project” / ”<projectname> Properties” at the menu bar. View the menu card “Debugging” and set “Selected debugger” to “AVR Simulator”.
    • Documentation Atmel AVR Studio 5.
      • PDF Document “Atmel AVR32833: Atmel AVR Studio 5 - How to Add a New Project into an Existing Solution”.
    • Sample projects for “Atmel AVR XMEGA Xplained Kit” ( with ATxmega128A1 ) or “Atmel AVR XMEGA-A3BU Xplained kit” ( with ATxmega256A3BU ) → “File / New / Example Project”, “Show Projects = 'AVR XMEGA, 8-bit”. The documentation is just available online, not on the local PC on which AVR Studio 5 is installed. The documentation of each project includes a dependency graph ( EN.Wikipedia "Dependency graph" ) of the source files ( probably made with the OpenSource Graphviz ).
Extensions for AVR Studio 5
AVR Studio 4
  • The free legacy Atmel AVR Studio 4 for W2k.
    • For CPU emulation without target hardware, select “Debug” / “Select Platform and Device” at the menu bar. Then select “AVR Simulator 2” as target.
    • The latest editioon for Windows 95 is “AVR Studio 4.12 SP3”.
    • The latest editioon for Windows 98SE is “AVR Studio 4.16 SP1”.
Extensions for AVR Studio 4

Arduino IDE





  • The free IDE Advanced Micro Tools "VMLAB" for Windows - “VMLAB: hardware and software together. It is a new concept in the microcontrollers tools: a virtual prototyping IDE”.

Free Compilers, Assemblers...

Free Tools

Free Unit Test Frameworks

  • The free AVR Software Framework ( ASF ) for Atmel AVR microcontrollers is shipped with a “Test Suite” ( “asf / common / utils / unit_test” ) :-). It provides the macros “test_fail”, “test_assert_true”, “test_assert_false” for use as assertion calls.

Development Tools with commercial and OpenSource License Model

Commercial IDEs with Compilers

  1. The commercial E-LAB Computers "AVRco" for Windows - “Pascal-scm für Atmel AVR”.
    • The free Standard release of AVRco - Code size limited to 4 kBytes Flash.
    • The free Mega8/Meg88 release of AVRco - Code size limited to 8 kBytes Flash AND Mega8/88.
    • In general, there is support for all ATTiny, ATmega and now for all ATxmega, too. The CPU description is based on ”.DSC” files, not on ”.H” files. The compiler loads the requested file after the instruction “Device = XMegaxxx”. At this moment the compiler knows all relevant facts of the CPU. For example, if you try to load an USB driver in your software, though the targeted ATxmega has no USB onboard, a compiler error is generated. So if you should have a brand-new CPU once, look for if there is already a proper ”.DSC” file in the directory “C:\Program Files\AVRco\AVRco”.
    • The compiler is bundled with hardware, which works as a dongle: An included InCircuit Programmer + JTAG Debugger ISP3.
    • The debugger doesn't and won`t support debugWIRE. It supports:
      • ATmega CPUs with JTAG and up to 128K Flash.
      • ATxmega CPUs.
    • The next generation of InCircuit Programmers + JTAG Debuggers of this company will support the use of the PDI interface for debugging, with ATxmega CPUs.
  2. The commercial IAR Embedded Workbench for Atmel AVR for Windows - “Integrated development environment and optimizing C/C++ compiler for AVR”.
    • The free “KickStart edition of IAR Embedded Workbench”.
      • It has a 4 KBytes code size limitation.
      • It does (normally) not include source code for runtime libraries.
      • It does not include support for MISRA C.
      • An AVR assembler is included :-). There is the rumour, that the size limit of the Kickstart edition is a size limit of the C compiler, not of the assembler ?!
    • By the C-Spy tool, hardware debugging is supported with many AVR hardware debuggers, including JTAGICE3.
  3. The commercial HP Infotech "CodeVisionAVR Compiler" for Windows - “C Compiler” ( not C/C++ ! ).
    • The compiler supports inline assembly code and calling functions written in assembly.
    • You can access the C global volatile variables from assembler.
    • If you want to use a whole module written in assembly, you must create a .C file that contains all the assembly code enclosed between: #asm .. #endasm.
    • CodeVisionAVR V2.05.3a ( and newer ) fully supports the ATxmega chips.
    • CVAVR creates a .COF object file that can be opened in AVR Studio and source level debugged using JTAGICE or AVRONE.
    • A built-in CodeWizardAVR Automatic Program Generator allows you to write in a matter of minutes all the code needed for implementing many frequently needed functions.
  4. The Shareware Karisu & ImageCraft Creations Inc "ICCV8 for AVR" for Windows - “C Compiler Tools with Windows IDE for Atmel AVR Microcontrollers” ( not C/C++ ! ).
    • “The Application Builder is part of the IDE that allows you to generate peripheral initialization code via a point and click interface”.
      • “Xmega64A1, Xmega128A1, Xmega256A1 - [x] Header File, [x] IDE Device Selection, [ ] Application builder”.
    • For source code debugging with Atmel hardware debuggers by JTAG or debugWIRE, please load the project into Atmel AVR Studio and do it there ( “Support for COFF debugging with AVR Studio” ).
    • ICCV8 Advanced: “Support for 128K bytes and 256K bytes MegaAVRs”, “MISRA safety checks for more robust code” :-).
  5. The commercial MCS Electronics "BASCOM" for Windows.
    • MCS Electronics "BASCOM-AVR" - Specifications & features. “BASCOM-AVR is the original Windows BASIC COMPILER for the AVR family. It is designed to run on W95/W98/NT/W2000, XP and Vista”.
      • BASCOM-AVR Help "ATXMEGA" - “The power of the AVR is/was the the linear memory architecture. In the Xmega this has been changed : the registers are placed into a separate address space”.
    • The BASCOM-AVR demo version is limited to 4KB of code. As the demo version is older than the current commercial version, it does not support ATxmega ( as of 2011-09-16 ).
    • Each CPU supported by BASCOM has its own ”.DAT” file ( e.g. ATmega88 = m88def.dat, ATmega88P = m88pdef.dat ). In the full version of Bascom AVR there is the file history.txt with a short description of the changes made to the compiler and new supported chips are always listed.
    • Even if there is such a definition file, some CPU functions / modules might not be supported by BASCOM ( e.g. the CAN function / module is not supported by BASCOM ). But you can always use the registers yourself direct to use these kind of functions.
    • As at this moment ( 2011-09-16 ) there is no explicite “ATxmega256A3BU” support, have a try with “ATxmega256A3B” = xm192D3def.dat for use with the “Atmel AVR XMEGA-A3BU Xplained kit”.
    • Application note MCS Electronics "AN #192 - Getting Started With ATXMEGA and BASCOM-AVR - Part 1" - Full article is available as free PDF :-).
    • The commercial add-on AVR-DOS.
      • “An add-on library to BASCOM-AVR, which provides DOS-functionality to your embedded ATMEL AVR-Controller application”.
      • “BASCOM-AVR comes with the compiled AVR-DOS library. You can use AVR-DOS free for non commercial use or test it. If you want to use AVR-DOS in commercial applications or you are interested in the source code for your personnel use, there are two different licenses available”.
    • The commercial MikroElektronika "mikroC PRO for AVR" - “C compiler for AVR microcontroller device development” ( not C/C++ ! ).
    • The commercial MikroElektronika "mikroPascal PRO for AVR" - “PASCAL compiler for AVR microcontroller device development”.
    • The commercial MikroElektronika "mikroBasic PRO for AVR" - “BASIC compiler for AVR microcontroller device development”.
    • Visual TFT - “A standalone application used for rapid development of graphical user interfaces for TFT displays. Software generates code compatible with mikroElektronika compilers: mikroC, mikroBasic and mikroPascal, for all suported MCU architectures: PIC, dsPIC30/33, PIC24, PIC32 and AVR”.
    • MikroElektronika "User Projects" - free sample projects for PIC & AVR.
    • If you select the card “Specification” in the middle of the product pages, the section “Supported microcontrollers. Choose your MCU” names the supported CPUs ( ATxmega256A3B is supported, as of 2011-09-16 ).
    • You can set mikroC/Basic/Pascal compiler for AVR to generate COF file and use this COF file for hardware debugging with AVR Hardware Debugger.


  • The Shareware Atman Electronics "AtmanAvr" for Windows - - “IDE of C/C++ Compiler AVRGCC”. 30 days evaluation timeout.
    • “The Code Wizard is like a programmer's assistant: it makes it easier for you to do certain routine tasks such as 1) creating new modules, 2) adding or deleting interrupt functions, and 3) seeing which modules or interrupt handlers are already defined and jumping to the handler program code”.
  • The free KamAVR IDE.


Appropriate OpenDirectory Directory Pages

en/atxmega.html.txt · Last modified: 2017/06/26 06:33 (external edit) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki