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