background image

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

 . 

 
 

background image

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. 

 

background image

• 

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. 

background image

 

• 

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. 

 

background image

• 

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 

 

background image

• 

\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. 

 

background image

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.