EVK525 AT90USBxxx USB Mass storage
Use of this program is subject to Atmel's End User License Agreement.
Please read file lic_page for copyright notice.
This embedded application source code illustrates how to implement a USB mass storage application with the AT90USBxxx controller on STK525 development board, using the add-on board EVK525. Please read the EVK525 User Hardware Guide before connecting the EVK525 to STK525, and before using this program. The application enumerates as a Mass Storage device containing 3 Logical Units (LUN) :
- SD/MMC interface, size depends on user's card (EVK525)
- NAND Flash device, 256 MBytes by default, but user can add others devices (EVK525). The NandFlash suppoted listing is availabled here.
- DataFlash device, 4 MBytes (STK525)
- V2.0.4
USB Device:
- Fix bug about back drive voltage on D+ after VBus disconnect (USB Certification)
- Remove VBus interrupt and manage VBus state by pooling
- Fix bug during attach (the interrupt must be disable during attach to don't freeze clock)
- MassStorageClass :
- Fix error in sense command to support Vista and Windows Seven
- Add write Protect Management under MAC OS
- Improve MSC compliance
- Add MSC compliance with Linux 2.4 kernel
SD/MMC driver:
- Fix SD/MMC driver initialization
NandFlash driver:
- V2.0.3
USB Stack
- Improve USB protocol to have a USB chap9 and MSC compliance
Fix error on DataFlash driver
Fix error on MMC/SD driver
- V2.0.2
NandFlash driver :
- add feature 2xCS
- new CLE/ALE pin management to fix error on specific NF references
USB Stack:
- Move VBus interrupt to VBus pooling
- Fix USB constant about Device Status
- Add three possibilities for SN on USB : No SN, Constant SN, Unique SN
- V2.0.1
NandFlash driver :
- fix major bug
- Add listing NandFlash support
USB Stack :
- Fix inquiry command
- add global define constante
- clean and fix specific request
- Fix endpoint array size
- Optimized power consumption issue in device selpowered mode: -freeze clock when ubs not connected Improvement comments
- V2.0.0 and before
Don't used this package, because include a major bug on NandFlash driver. (e.g: old package "at90usb128-evk525-demo-storage-df-nf-sdmmc-1_0_0")
As illustrated in the figure bellow, the application entry point is located is the main.c file. The main function first performs the initialization of a scheduler module and then runs it in an infinite loop. The scheduler is a simple infinite loop calling all its tasks defined in the conf_scheduler.h file. No real time schedule is performed, when a task ends, the scheduler calls the next task defined in the configuration file (conf_scheduler.h).
The application is based on two different tasks:
- The usb_task (usb_task.c associated source file), is the task performing the USB low level enumeration process in device mode or host mode.
- The storage task performs SCSI bulk only protocol decoding and performs flash memory access for device mass storage operation calling hardware specific drivers (SD/MMC, NAND Flash, DataFlash).
Generated on Mon Sep 14 13:14:17 2009 for ATMEL by
1.5.3