1SYNOPSIS 2________ 3 4avrilx is a collection of peripheral drivers and utility routines for the AVR 5XMega family. Contrary to many libraries out there, it is based on C++ 6templates and policy-based design (vs run-time parameter 7passing to general purpose drivers ; and callbacks). The benefits are smaller 8and faster code - which is specialized and inlined at compile time ; and a much 9smaller overhead when layering or glueing together layers of drivers. 10 11Supported peripherals: 12- GPIO, bit-level and parallel 13- SPI, slave and master 14- USART 15- USART in SPI mode, master 16- TWI master 17- ADC 18- DAC, single and dual channel 19- Timers, PWM 20- Various delay and timing functions (using RTC, timers, timed busy loops) 21 22Drivers and utility routines for: 23- DMA setups for background data reception into a FIFO, and background data 24writes from a FIFO (eg: waveform generation, audio playback) 25- ADC multichannel scanning and filtering 26- Input (165) and output (595) shift registers 27- LEDs arrays 28- HD44780 compatible LCDs 29- Rotary encoder decoder 30- Switch debouncing 31- TWI eeprom 32- MMC/SD/SDHC card on SPI port, FAT/FAT32 formated, 8.3 filenames, 33through two different drivers: 34 + A simple, read-only driver suitable for bootloaders (< 2kb of code). 35 + A complete interface based on ChaN's FatFS. 36 37Bells and whistles: 38- makefile template 39- Bootloader allowing firmware updates by MIDI ; and utilities for converting .hex files into .syx files 40- Resources system for generating string and lookup tables with python scripts 41- A collection of assembly-optimized code for arithmetic operations on fixed 42point numbers or unusually-sized integers (4 bit, 24 bits...) 43 44 45LICENCING 46_________ 47 48This library is released under a GPL3.0 license. Developed by Olivier Gillet (olivier@mutable-instruments.net) for Mutable Instruments. 49 50Credits: 51 52* third_party/sp_driver contains the self-programming code provided by Atmel. 53* third_party/ff contains a slightly modified version of ChaN's FatFS library 54and MMC drivers. 55 56 57SETUP 58_____ 59 60This code has been tested with Boston Android EVAL-USB-128 61(http://www.bostonandroid.com/EVAL-USB-128.html) and EVAL-04 62(http://www.bostonandroid.com/EVAL-04.html) boards. See the examples/README file 63for more information about the hardware setup used for some of the examples. 64 65The build system is configured for the following setup: 66- MCU: XMega 128a3 67- Programmer: AVR ISP mkII from Atmel. 68- Toolchain: avr-gcc 4.3.3 on Mac OS X (CrossPack-AVR). 69 70The toolchain and avrdude paths, along with the port/type of AVR programmer can 71be modified in avrlibx/config.mk. 72 73The MCU and crystal frequency can be modified on a per-project basis in the 74makefile. 75 76You can use examples/blink as a code and makefile skeleton for new projects! 77