Release Notes
AVR Software Framework (ASF) – Technology Preview
Release version: 2.0.0
Release date: 2010-07-01
This package supports:
-
AVR UC3 (
www.atmel.com/uc3
)
•
AVR UC3 A0 and A1 devices revision H and later.
•
AVR UC3 B devices revision F and later.
•
AVR UC3 A3/A4 devices revision E and later.
•
AVR UC3 A3xS/A4xS devices revision E and later.
•
AVR UC3 C devices revision C.
•
AVR UC3 L devices revision B and later.
-
AVR XMEGA (
www.atmel.com/xmega
)
•
AVR XMEGA A1
•
AVR XMEGA A3
•
AVR XMEGA A3B
•
AVR XMEGA A4
•
AVR XMEGA D3
•
AVR XMEGA D4
Supported tools:
-
AVR32 GNU Toolchain (2.4.2) with GCC version: 4.3.2-atmel.1.2.0 (mingw32 special)
-
AVR32 Studio version: 2.5
-
IAR EWAVR32 v3.30 with updated header files for the UC3 A3 and UC3 A3xS, UC3C C revision C, UC3 L
series (unzip the avr32/utils/header_files/avr32-headers.zip under <your IAR installation folder>/Embedded
Workbench x.x/avr32/inc/).
-
IAR EWAVR version 5.50
-
WinAVR version 20100110
1 Overview
The AVR® Software Framework (ASF) consists of AVR microcontroller drivers, software services & libraries, and
demonstration applications for the AVR XMEGA and UC3 series.
Each software module is provided with full source code, example of usage, rich html documentation and ready-to-use
projects for the IAR EWAV and GNU GCC compilers.
2 Downloading and Installing
This software can be found on this URL:
www.atmel.no/asf
.
3 News
This section describes the changes between the version 1.7.0 (a.k.a. UC3 Software Framework) and the 2.0.0 releases.
3.1 General
•
ASF now supports AVR XMEGA (/xmega folder) and UC3 series (/avr32 folder)
•
Add a new software layer in services/basic folder with shared API between XMEGA and UC3 series.
o
/services/basic/clock: system clock management
o
/services/basic/cpu: reset cause
o
/services/basic/gpio (XMEGA only): IO
o
/services/basic/hugmem: huge data memory space access
o
/services/basic/sleepmgr: sleep manager
o
/services/basic/spi: SPI
o
/services/basic/twi: TWI
3.2 AVR XMEGA
New Features
•
Add support of AVR XMEGA series to the ASF.
o
Available XMEGA drivers:
AC
ADC
Reset cause
DAC
DMA
EBI
IOPORT
NVM
PMIC
RTC
RTC32
Sleep
SPI
TWI
USART
o
Support Xplain and STK600 boards.
Notable Bug Fixes and Improvements
Known Bugs and Limitations
3.3 AVR UC3
New Features
•
applications/uc3l-ek-touch-demo/:
AT32UC3L-EK demonstration application that interfaces
with
QTouchStudio and controls the LEDs with the on-board touch sensors. It is using the Atmel QTouch Libraries
for the AVR UC3 L0 series.
•
applications/uc3-uart-bootloader/: ISP application, allowing r/w access to several on-chip memories through a
UART interface, in short a RS232 bootloader.
•
applications/evk11xx-uc3b-usb-hid-qtouch-debug: USB HID QTouch Studio firmware which allows debug
mode through USB in QTouch Studio.
•
applications/evk11xx-uc3b-bootselector: boot application for the UC3L-EK UC3B MCU which selects the
USB HID QTouch firmware or USB VPC firmware at startup.
•
Add LodePNG decoder version 20100314 (http://members.gamedev.net/lode/projects/LodePNG/) in
services\graphics\codec\png\lodepng.
•
services\dsp\dsplib\examples\mfcc: Added the Mel Frequency Cepstral Coefficients (MFCCs) algorithm used
for speech recognition.
•
services\network\tcpip\lwip\example: Add a standalone (no OS) lwIP TCP/IP stack example – ethernet point-
to-point configuration only, DHCP is not supported.
•
services\fs\fat: Update FAT32 to support up to 2TB (previous limit 256GB)
•
services\basic\fifo: Add a generic FIFO driver that can be used for any kind of communication processes.
Notable Bug Fixes and Improvements
•
Major architecture changes from the UC3 Software Framework version 1.7.0
o
All folder names are in lower cases.
o
UTILS\STARTUP_FILES\GCC\crt0.S is moved to utils\startup\startup_uc3.S.
o
DRIVERS\USBB is moved to drivers\usbb\_asf_v1.
o
SERVICES\USB\CLASS\DFU\EXAMPLES\ISP\BOOT\trampoline.S,.s82 is moved to
utils\startup\trampoline_uc3.S,.s82.
o
SERVICES\USB\CLASS\DFU\EXAMPLES\ISP\AT32UC3C0512C_REVC\trampoline.S,.s82 is
moved to utils\startup\trampoline_uc3c_revc.S,.s82.
o
SERVICES\USB\ is moved to services\usb\_asf_v1 (USB stack from ASF v1.x), in order to later
support a new version of the USB stack.
o
SERVICES\FAT is moved to services\fs\fat.
o
SERVICES\DELAY is moved to services\basic\delay.
o
SERVICES\MEMORY is renamed in services\storage.
o
SERVICES\LWIP is moved to \services\network\tcpip\lwip.
o
SERVICES\FREERTOS is moved to services\os\freertos.
o
SERVICES\DSPLIB is moved to services\dsp\dsplib.
o
SERVICES\POLARSSL is moved to services\crypto\polarssl.
o
SERVICES\PICTURES\JPEG\IJG is moved to services\graphics\codec\jpg\ijg.
o
SERVICES\AUTOBAUD is moved to services\basic\autobaud.
o
APPLICATIONS\EVK1104-DEMO is renamed to applications\evk1104-usb-msc-sd-demo.
o
APPLICATIONS\EVK1104-EVK1105-DSPLIB-DEMO is renamed to applications\uc3-dsplib-demo.
o
APPLICATIONS\AT32UC3C_EK_CAN_LIN_LOOPBACKS_DEMO is renamed to
applications\uc3c_ek-can-lin-loopbacks-demo
o
SERVICES\FREERTOS\Demo\AVR32_UC3 is renamed in
services\os\freertos\demo\avr32_uc3_example.
o
SERVICES\FREERTOS\Demo\lwIP_AVR32_UC3 is remaned in
services\os\freertos\demo\lwip_avr32_uc3_example.
o
SERVICES\FREERTOS\Demo\lwIP_AVR32_UC3_DHCP is renamed in
services\os\freertos\demo\lwip_avr32_uc3_dhcp_example.
•
services/os/freertos/source/portable/:
Fixed bad context switching leading to unpredictable behavior in this tricky case:
A Tick interrupt is triggered in vTaskDelayUntil while this function was preparing a task switching in a critical
section.
•
utils/libs/dsplib and services/dsp/dsplib: Fixed missing #include of dsp.h leading to compilation of
unoptimized generic functions:
trans_dsp16_complex_fft.c
trans_dsp16_complex_ifft.c
trans_dsp16_realcomplex_fft.c
trans_dsp32_realcomplex_fft.c
•
boards/uc3l_ek/uc3l_ek.h: Add signal connections on the WLESS connector.
•
utils/compiler.h: Fixed __count_leading_zeros intrinsic that is broken in IAR 3.30.1 and 3.30.2.
•
services/network/can: move drivers/canif/can.c-.h with example1&2.
•
drivers/usbb/_asf_v1/:
Fixed tricky bug when using the audio application: the pipes needs to be configured in DOUBLE_BANK,
otherwise some audio clicks may (will...) appear if the CPU needs sometimes to take more than 1 ms to
process an audio packet. This happens with the re-sampling algorithm V2 (+20% CPU needed compared to
V1).
•
drivers/twi/: fixed the "burst" of TWI master interrupts between the transmission of the last character and the
end of the frame, leading to unexpected CPU workload.
•
drivers/eic/eic.h: add defines missing from the system header files.
•
drivers/eic/example1/: port the example to the AT32UC3L-EK board.
•
drivers/pm/pm_uc3c.h, pm_uc3l.h: remove the pm_sleep() macro; create a pm_sleep() function in sleep.h.
•
drivers/scif/example3_uc3l/scif_example3.c: use the SLEEP() macro instead of pm_sleep().
•
drivers/eic/example1/eic_example1.c: Move the init and setting of the LED0 GPIO to one place.
•
applications/evk11xx_uc3b_virtual_com_port/: Make use of the STOP sleep mode rather than the STATIC
sleep mode. This fixes spurious VBUS transition interrupts that prevent the part from entering in the sleep
mode.
•
drivers/pm/sleep.h: new file to act as a stub on the PM sleep feature for the new sleepmgr service.
•
drivers/spi/spi.h, spi.c: changed the pba frequency variable type from 16-bit to 32-bit in order to avoid
overflows.
•
drivers/flashc/flashc.h,
flashc.c:
add
void
flashc_set_bus_freq(unsigned
int
cpu_f_hz)
(and
flash_set_bus_freq() as an alias on the former) that sets the appropriate
flash wait state depending on the target CPU frequency.
•
drivers/flashcdw/flashcdw.h : add flash_set_bus_freq() as an alias to
flashcdw_set_flash_waitstate_and_readmode().
•
boards/evk1100/evk1100.h, boards/evk1101/evk1101.h, boards/evk1104/evk1104.h,
boards/evk1105/evk1105.h: Add oscillator definitions usable by the new clock service. These include frequency,
startup times and oscillator type for OSCn. BOARD_OSCn_HZ currently overlaps the existing FOSCn defines,
but the former has a better name and should eventually supersede the latter.
•
drivers/flashcdw/flash_example/flash_example.c: set the variable user_nvram_data as __no_init for IAR so
that the binary can be programmed through batchisp and a bootloader.
•
drivers/usbb/_asf_v1: fixed bad management of the USB SOF interrupt, leading sometimes to a deadlock in
the timeout detection.
•
services/crypto/polarssl: udpate from version 0.12.1 to 0.13.1.
Features
Added option parsing for host and port selection to ssl_client2
Added support for GeneralizedTime in X509 parsing
Added cert_app program to allow easy reading and printing of X509 certificates from file or SSL connection.
Changes
Added const correctness for main code base
X509 signature algorithm determination is now in a function to allow easy future expansion
Changed symmetric cipher functions to identical interface (returning int result values)
Changed ARC4 to use seperate input/output buffer
Added reset function for HMAC context as speed-up for specific use-cases
Bug fixes
Fixed bug resulting in failure to send the last certificate in the chain in ssl_write_certificate() and
ssl_write_certificate_request() (found by fatbob)
Added small fixes for compiler warnings on a Mac (found by Frank de Brabander)
Fixed algorithmic bug in mpi_is_prime() (found by Smbat Tonoyan)
•
drivers/ast/example2/: add precautions as mentioned by the datasheet before entering the static sleep mode.
•
components/wifi/hd: Update H&D WIFI stack version from 2.1.1 to 2.3 :
Added features for this release
- Enhanced throughput
- Support for all EVK platforms for SPBFW_DOWNLOAD
- Allow static IP configuration in http demo
- TTCP Improvements
- Add support for SPI and SPB105 on EVK1104.
Fixed bugs:
- #133 Remove patched framework files included in release
- #156 connection manager starts even though no network is set
- #158 Scan command in GUI does not handle scan properly
- #179 HTTP server occasionally hangs on EVK1104
- #193 Potential HTTP server web page buffer overflow
- #196 Indicate that no WiFi card in GUI (if not present)
- #210 Trailing '?' characters not handled in URL queries (Safari/Opera Refresh bug).
Known bugs in this release (2.3)
- PSK generation is quite slow (on the order of 10 seconds) which manifests by the connect command
or the wl_connect() call taking around 10 seconds to complete when the network uses WPA/WPA2
pre-shared key.
- #203 ttcp error handling is not robust.
•
\drivers\usbb\_asf_v1/, services\usb\_asf_v1\class\hid\examples: Implement the USB Remote Wakeup
function. The HID Mouse example for the EVK1105 will wake up the HOST after a suspend when pressing
the center touch button of the kit.
•
\services\dsp\dsplib\generic\advanced\resampling:
Improved
the
re-sampling
algorithm.
See
the
documentation for more details \services\dsp\dsplib\resampling.pdf
•
\services\usb\_asf_v1\class\cdc and \applications\evk11xx_Uc3b_virtual_com_port/: The USB CDC class
now uses an interrupt handler for the characters coming from the USART. This removes the risk of loosing
any characters.
•
\utils\linker_scripts/at32uc3l/064/iar/lnkuc3l064.xcl: fix the range of the RESET section.
•
\components\memory\sd_mmc\sd_mmc_mci: Fixed endianism issue on the MMC HC card capacity analysis.
•
\boards\uc3l_ek/uc3l_ek.h: Fix the LED_PWMA_CHANNELS_MASK define and remove the
LED4_PWM_FUNCTION define for the AT32UC3L-EK rev2.
Known Bugs and Limitations
•
utils\newlib_addons\cpu.c: The udelay() function does only work if the CPU frequency is equal to the PBA
frequency.
•
services\usb\_asf_v1\class\mass_storage\host_mem: The USB host mass storage software version 1 (in
\_asf_v1) do not support drive with 2 disks with a different sector size. Eg disk 1 with a 512B of sector
sizeand disk 2 with a 2KB of sector size.
Workaround: To get access to drive1 only: in the
services\usb\_asf_v1\class\mass_storage\examples\host_mass_storage_task.c, replace
max_lun = host_get_lun();
by max_lun = 1;
•
applications\evk1100-control-panel: with IAR compiler v3.30, the optimization level high in speed or size
makes the application to crash.
4 Contact Information
For support on the AVR Software Framework please see http://support.atmel.no/.
Users of the ASF are also welcome to discuss on the AVRFreaks website
(
http://www.avrfreaks.net/
) forum for the AVR Software Framework, or the AVR/AVR32 Software Tools.
5 Copyright (c) 2010 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.