EVK525 AT90USBxxx USB Mass storage
Use of this program is subject to Atmel's End User License Agreement.
Please read file LICENSE.TXT 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.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 Fri Oct 31 14:31:23 2008 for ATMEL by
1.5.3