Release Notes - AVR UC3 Software Framework Release version: 1.7.0 Release date: 2010-02-19 AVR-UC3-SoftwareFramework-1.7.0.zip This package supports: - UC3 A0 and A1 devices revision H and later. - UC3 B devices revision F and later. - UC3 A3/A4 devices revision E and later. - UC3 A3xS/A4xS devices revision E and later. - UC3 C devices revision C. - UC3 L devices revision B and later. Supported tools: - AVR32 GNU Toolchain (2.4) with GCC version: 4.3.2-atmel.1.0.1 (mingw32 special) - AVR32 Studio version: 2.4 - IAR EWAVR32 v3.20A with updated header files for UC3 A0 , UC3 B , UC3 A3 and UC3 A3xS series (unzip the UTILS/AVR32_HEADER_FILES/AVR32_Header_Files.zip under <your IAR installation folder>/Embedded Workbench x.x/avr32/inc/). - IAR EWAVR32 v3.21G with updated header files for UC3 C series (to update header files, unzip the UTILS/AVR32_HEADER_FILES/avr32-headers.zip under <your IAR installation folder>/Embedded Workbench x.x/avr32/inc/). - IAR EWAVR32 v3.21F with updated header files for UC3 L series (to update header files, unzip the UTILS/AVR32_HEADER_FILES/avr32-headers.zip under <your IAR installation folder>/Embedded Workbench x.x/avr32/inc/). 1 Overview The AVR® UC3 Software Framework consists of AVR UC3 microcontroller drivers, software services & libraries, and demonstration applications. Each software module is provided with full source code, example of usage, rich html documentation and ready-to-use projects for the IAR EWAVR32 and GNU GCC compilers. 2 Downloading and Installing The software can be found on the AVR Technical Library CD, or downloaded from Atmel's website at http://www.atmel.com/products/AVR32/ under the "Tools & Software" menu. Unzip the package zip file (AVR-UC3-SoftwareFramework-x.x.x.zip) under a local folder on your PC. Open the \x.x.xAT32UC3\readme.html file to browse through the documentation. 3 Contents The following tables describe the availability of framework modules per AVR UC3 series. APPLICATIONS EVK1100-CONTROL-PANEL EVK1101-DEMO EVK1104-EVK1105-DSPLIB-DEMO EVK11xx_UC3B_VIRTUAL_COM_PORT AT32UC3C_EK_CAN_LIN_LOOPBACKS_DEMO BOARDS EVK1100 EVK1101 EVK1104 EVK1105 STK600 / RCUC3L0 UC3C-EK UC3L-EK DRIVERS ABDAC ACIFA ACIFB ADC ADCIFA ADCIFB AES AST CANIF CPU / CYCLE_COUNTER CPU / MPU CPU / SECURE_STATE DACIFB DMACA EBI ECCHRS EIC FLASHC FLASHCDW GPIO HMATRIX INTC MACB MCI MDMA PDCA PEVC PM PWM PWMA UC3A0 UC3A1 X UC3A0 UC3A1 X UC3A3 UC3A4 UC3A3S UC3A4S UC3B UC3C X X X X UC3A3 UC3A4 UC3A3S UC3A4S UC3B UC3C UC3L X X X X X X UC3A0 UC3A1 X UC3A3 UC3A4 X UC3A3S UC3A4S X UC3B UC3C UC3L X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X UC3L QDEC RTC SCIF SPI SSC TC TWI TWIM TWIS USART USBB WDT X X X X X X X X X X X X X X X X X X X X X X X X X X X COMPONENTS UC3A0 UC3A1 ACCELEROMETER / LIS3L06AL AUDIO / AMP / TPA6130A2 AUDIO / CODEC / TLV320AIC23B AUDIO / DAC / PWM_DAC CLOCK_SYNTHESIZER\CIRRUS_LOGIC_CS2200CP DISPLAY / DIP204 DISPLAY / ET024006DHU JOYSTICK MEMORY / DATA_FLASH / AT25DFX MEMORY / DATA_FLASH / AT45DBX MEMORY / EEPROM / AT24CXX MEMORY / NAND_FLASH /NAND_FLASH_EBI MEMORY / NAND_FLASH /NAND_FLASH_GPIO MEMORY / SD-MMC / MCI MEMORY / SD-MMC / SPI MEMORY / SDRAM / MT48LC16M16A2TG7E TOUCH / QT1081 TOUCH / QT60168 TOUCH / RESISTIVE_TOUCH WIFI / HD SERVICES AUDIO / AUDIO_MIXER AUTOBAUD DELAY DSPLIB FAT FREERTOS LWIP MEMORY / CTRL_ACCESS MEMORY / MEMORY_MANAGER / DLMALLOC PICTURE / JPG POLARSSL USB / CLASS / AUDIO USB / CLASS / CDC X X X X X X X X X X X X X X X X UC3A3 UC3A4 UC3A3S UC3A4S X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X UC3B UC3C UC3L X X X X X X X X X X X X X X X X X X X X X X X X UC3A0 UC3A1 X X X X X X X X X UC3A3 UC3A4 X X X X X X X X X UC3A3S UC3A4S X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X UC3B UC3C UC3L X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X USB / CLASS / DFU USB / CLASS / HID USB / CLASS / MASS_STORAGE UTILS AVR32_HEADER_FILES DEBUG LIBS / DRIVERS LIBS / DSPLIB LINKER_SCRIPTS PREPROCESSOR STARTUP_FILES X X X X X X X X X X X X X X X UC3A0 UC3A1 X X X X X X X UC3A3 UC3A4 X X X X X X X UC3A3S UC3A4S X X X X X X X UC3B UC3C UC3L X X X X X X X X X X X X X X X X X X X X X 4 News This section describes the changes between the 1.6.1 and the 1.7.0 releases. 4.1 New Features • COMPONENTS/WIFI/HD: Update SDIO/SPI H&D stack to v2.1.1. Add example for EVK1101. • DRIVERS/DACIFB: add support for UC3C. • lwIP: upgrade to version 1.3.2 • DRIVERS/AST: Add EXAMPLE1 and EXAMPLE2 for UC3L_EK board. • DRIVERS/HMATRIX: Add HMATRIX an example that shows how to configure last master default. • DRIVERS/PM/EXAMPLE3: New example that shows how to use the RC120M internal oscillator as main clock source and do a Generic clock configuration. • SERVICES/FREERTOS/Demo/lwIP_AVR32_UC3_DHCP: Add lwIP example with DHCP enabled. • UTILS/parts.h, this include is called in UTILS/compiler.h This new include file contains a set of macro which can be used to identify a UC3 series. Available macros are: o UC3A, UC3A0, UC3A1, UC3A3 o UC3B, UC3B0, UC3B1 o UC3C, UC3C0, UC3C1, UC3C2 o UC3L, UC3L0 4.2 Notable Bug Fixes and Improvements • DRIVERS/PM/pm_uc3l.h, DRIVERS/PM/power_clocks_lib.c, DRIVERS/SCIF/scif_uc3l.h:IAR warnings fixes. • COMPONENTS/MEMORY/SD_MMC/SD_MMC_MCI/sd_mmc_cmd.h: fix high speed switch command SD_SWITCH_FUNC definition.. • SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/AT32UC3A/GCC/post-build.sh, SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/AT32UC3A/IAR/post-build.sh, SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/AT32UC3B/GCC/post-build.sh, SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/AT32UC3B/IAR/post-build.sh, SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/AT32UC3B0512_REVC/IAR/post-build.sh: For the general-purpose fuses, only program the BOOTPROT fields (leave the other fields unchanged from after a chiperase). • UTILS/AVR32_HEADER_FILES/avr32-headers.zip: synchronize the header files with the AVR UC3 GNU toolchain release 2.4.2. • APPLICATIONS/EVK1100-CONTROL-PANEL/USB/APPLI/MASS_STORAGE/host_mass_storage_task.c: DRIVERS/MACB/macb.c, SERVICES/LWIP/lwip-port-1.3.2/AT32UC3A/include/arch/cc.h: Fix wrong preprocessor syntax usage and compilation warnings. • BOARDS/UC3L_EK/uc3l_ek.h: Remove missing defines temporary workaround and add missing defines as a temporary workaround. • APPLICATIONS/EVK1100-CONTROL-PANEL Makefile has been updated to supported LwIP 1.3.2. • COMPONENTS/DISPLAY/ET024006DHU/EXAMPLE/BMP24_TO_RGB16CARRAY: Fix the output of imageconv.c (add #endif, fix \author, removed spurious \n). • COMPONENTS/WIFI/HD/EXAMPLE Makefile has been updated to support LwIP 1.3.2. • DRIVERS/AST/ast.c: Remove scif_start_osc32 call in ast.c. It is required starting osc32 in the application. ast.c is no more dependent from SCIF. • DRIVERS/USBB/ENUM/HOST/usb_host_enum.,.h: Rename the class field of the S_interface structure to uclass to avoid a syntax conflict with C++. • DRIVERS/TWIM/twim.c : Overflow issue in the Clock Waveform Generator Register. • DRIVERS/AST: Update AST driver to support UC3L. • DRIVERS/SSC/I2S/ssc_I2s.h: Remove some definitions that are now present in the header files. • DRIVERS/PM/pm.c: pm_enable_module() & pm_disable_module(): C implementation bug fix. • DRIVERS/SCIF/scif_uc3l.c::scif_dfll0_closedloop_start() & scif_dfll0_closedloop_configure_and_start(), DRIVERS/SCIF/scif_uc3l.h::scif_dfll_closedloop_conf_t structure, DRIVERS/SCIF/EXAMPLE1_UC3L/scif_example1.c::local_start_dfll_clock(), DRIVERS/SCIF/EXAMPLE2_UC3L/scif_example2.c::local_start_dfll_clock(): Updates according to register DFLL0STEP differences between UC3L revB and UC3L revC+higher. • DRIVERS/SCIF/scif_uc3l.h, DRIVERS/PM/pm_uc3l.h: Remove unnecessary preprocessor condition. • DRIVERS/GPIO/LOCAL_BUS_EXAMPLE/gpio_local_bus_example.c, DRIVERS/PM/EXAMPLE1/pm_example1.c, DRIVERS/PM/EXAMPLE2/pm_example2.c, DRIVERS/PM/power_clocks_lib.c, DRIVERS/PM/power_clocks_lib.h, DRIVERS/GPIO/gpio.c , DRIVERS/GPIO/gpio.h: Added support of AT32UC3L064 revB. • Lwip: Fix problem in all ethernet.c file. Avoid data movement to same TCP/IP core functions from two different thread contexts. This fix has been applied on Lwip demo, EVK1100 control panel and SSL demo. • SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/: Added the HISTORY/V1.0/ folder with source files and instructions to rebuild a USB DFU Bootloader v1.0. • SERVICES/USB/CLASS/DFU/EXAMPLES/ISP: Update the USB DFU Bootloader to version 1.1.0 (same feature set as the USB DFU Bootloader v1.0.3, different implementation). There are, to this date, no AVR UC3 devices programmed with the 1.1.0 USB DFU Bootloader; thus no Releases/ folder contain an AT32UC3xx-ISP-1.1.0/ sub-folder yet. • SERVICES/LWIP Add Lwip-1.3.0 and lwip-port-1.3.2 Remove Lwip-1.2.0 and lwip-port-1.2.0 • SERVICES/FREERTOS/Demo Remove lwIP_AVR32_UC3 and rename lwIP130_AVR32_UC3 to lwIP_AVR32_UC3 Source code present in lwIP_AVR32_UC3 has been updated to support LwIP 1.3.2 • SERVICES/FREERTOS/Demo/Common/ethernet Remove lwIP and rename lwIP_130 to lwIP Source code in LwIP has been updated from version 1.3.0 to version 1.3.2 • SERVICES/AUTOBAUD/autobaud.c: Fixed the non 64bit computation without built-in operators for IAR. For IAR, use the 64bit computation with built-in operators because it is more optimized. • SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/AT32UC3A3/IAR/: Updated the project to EW AVR32 v3.21G, set the device property to AT32UC3A3256, saved the new binaries generated with the new autobaud. • DRIVERS/EBI/SMC/smc.c: add missing "#undef NWE_HOLD". • BOARDS/UC3L_EK/uc3l_ek.h: add an ADCIFB channel mask define for each output of the on-board accelerometer. 4.3 Known Bugs and Limitations • Some software modules do not provide EXAMPLE subdirectories (e.g. /DRIVERS/SPI/). • The header files of the Software modules are not C++-ready. • The AVR32Studio Managed Make tutorial does not work if it is loaded with the USB DFU bootloader. • DRIVERS/ABDAC: the software driver and the example are poorly documented. • APPLICATIONS\EVK11xx_UC3B_VIRTUAL_COM_PORT and \SERVICES\USB\CLASS\CDC: Some characters may be dropped using Linux and CDC ACM driver. • UTILS/NEWLIB_ADDONS/cpu.c: The udelay() function does only work if the CPU frequency is equal to the PBA frequency. • It is not recommended to use newlibaddon with –nostartfiles option from linker. This will avoid printf function to be redirected to USART. printf message will be redirected to a console. • The GCC 2.4.2 builds of the current v1.1.0 USB DFU Bootloader are all over 8kB. The same code fits under 8kB when compiled with IAR 3.21G. 5 Contact Information For support on the UC3 Software Framework please see http://support.atmel.no/. Users of the AVR UC3 Software Framework are also welcome to discuss on the AVRFreaks website (http://www.avrfreaks.net/) forum for AVR32 Software Tools. 6 Copyright (c) 2009 Atmel Corporation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of Atmel may not be used to endorse or promote products derived from this software without specific prior written permission. 4. This software may only be redistributed and used in connection with an Atmel AVR product. THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE