ST AN1325 APPLICATION NOTE

AN1325

APPLICATION NOTE

USING THE ST7 USB LOW-SPEED LIBRARY V4.2x

by Microcontroller Division Applications

This application note describes how to use the ST7 USB Low-Speed Library V4.2x. Starting from version 4.20 the Library supports the DFU class layer.

Caution: The DFU class and the HID class layers are not included in the Library. The Library contains only the standard USB request layers. You will find the DFU and HID layers in the ST7 USB Low-Speed DFU EvalKit firmware.

Note: In this document the names “Hiware” and “MetroWerks” refer to the same compiler manufacturer.

1 OVERVIEW

The ST7 USB Low-Speed Firmware Library is written in C language and is compatible with both Cosmic and Metrowerks compilers.

This Library provides a complete USB protocol layer for the ST7 USB Low-Speed microcontrollers (such as the ST7261, ST7262, ST7263 and ST7263B). The source code is available free to STMicroelectronics customers.

This Library is supplied in a ZIP file. Starting from version 4.10, the Library contains only the files that are common for all the projects. This new architecture has been choosen in order to better separate what is really the Library and what is related to a project. This architecture will also facilitate the upgrade of different projects with new Library versions in the future.

AN1325/0203

1/15

1

USING THE ST7 USB LOW-SPEED LIBRARY V4.2x

2 LIBRARY

2.1 DIRECTORIES ARCHITECTURE

The files which compose the Library are placed into 4 distinct directories : Docs, Macro,

Micro, and Usb :

ST7USBLS-Library-V4.2x/

|--- Docs/

|--- Macro/

|--- Micro/

|--- Usb/

The files inside these directories cannot be used alone. You have to use them within a project. To do so, you have to include in your project setting files the path of these directories (Mak file for Cosmic and Default.env for Metrowerks). This way you will be able to use easily the same Library for different projects.

Example in a MAK file for Cosmic :

MACRO_PATH = D:\ST7USBLS-Library-V4.2x\Macro

MICRO_PATH = D:\ST7USBLS-Library-V4.2x\Micro

USB_PATH = D:\ST7USBLS-Library-V4.2x\Usb

Example in Default.env file for Metrowerks :

GENPATH=\

D:\ST7USBLS-Library-V4.2x\Macro;\

D:\ST7USBLS-Library-V4.2x\Micro;\

D:\ST7USBLS-Library-V4.2x\Usb;

Normally there is no need to change any of the files present in these directories. All the changes must be done inside your project files.

The following chapters will explain in detail the content of all this directories.

2/15

2

USING THE ST7 USB LOW-SPEED LIBRARY V4.2x

2.2 DOCS DIRECTORY

This directory contains all documentations related to the Library: ReleaseNote.txt, FlowChart,

etc...

2.3 MACRO DIRECTORY

This directory contains all the files containing the macro definitions shared between the Library and the different projects. It contains also the Unicode table used for the definition of the String descriptors. For example you will find the description of “EnableInterrupts” and “DisableInterrupts” macro. All these files are common for Cosmic and Metrowerks compilers with the exception of the “Hidef.h” file wich is used only for Metrowerks.

2.4 MICRO DIRECTORY

This directory contains all the files which are related to the microcontrollers. You will find here all the MAP files for the ST726X microcontrollers family (ST7261, ST7262, ST7263 and ST7263B) . All these MAP files are common for Cosmic and Metrowerks compilers.

Important Note : For Metrowerks, all the H/W registers addresses are written inside the PRM files of each project. For Cosmic, all these informations are written directly inside the MAP files.

2.5 USB DIRECTORY

This directory contains the USB Library core files for Cosmic and Metrowerks compilers. These file don’t need to be changed by the customer.

This USB Library can be seen as a ToolBox where the Application picks up the “tools” it needs (calls the functions it needs). Note that there is no callback functions from the Library (the user doesn’t need to create specific functions that could be called by the Library).

2.6 USB CORE FILES

All the following files are placed inside Usb directory. These files are really what we call THE Library.

3/15

ST AN1325 APPLICATION NOTE

USING THE ST7 USB LOW-SPEED LIBRARY V4.2x

File

Description

 

 

USB.c

Library core functions

 

 

USB.h

Library core prototypes

 

 

USB_Def.h

Description of all aliases and variables shared between

the Library and the Application layer

 

 

 

USB_Rwu.c

Remote Wake-Up functions

 

 

USB_Rwu.h

Prototypes for Remote Wake-Up functions

 

 

USB_Lib.c

Library functions to be called by Application layer code

 

 

USB_Lib.h

Prototypes of all the Library functions to be called by the

Application layer code

 

 

 

USB_Rc.c

Hardware abstraction layer

 

 

USB_Rc.h

Prototypes for Hardware abstraction layer

 

 

USB_Var.c

Library variables declaration

 

 

USB_Var.h

Prototypes for Library variables

 

 

USB_JumpTable_Cosmic.asm

Contains Jump to USB functions (for DFU only)

 

 

USB_JumpTable_Hiware.asm

Contains Jump to USB functions (for DFU only)

 

 

The 2 assembly files (USB_JumpTable_xxx.asm) contain a jump table used by the application to access the Library functions. These files are only used for DFU.

2.7 FILES ORGANIZATION

Application Code

(main.c, Hid_layer.c, User_var.c, ...)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

USB_Lib.h

 

 

 

USB_Def.h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

USB_Rc.c

USB.c

As you can see on this chart : USB_Lib.h and USB_Def.h are the only files from the Library that your project needs to refer to.

4/15

USING THE ST7 USB LOW-SPEED LIBRARY V4.2x

3 PROJECT

This chapter describes an example of a project architecture. You are not obliged to follow this architecture to use the USB Low-Speed Library.

3.1 DIRECTORIES ARCHITECTURE

The project directories architecture has been simplified. You will now have only the following directories :

ProjectName/

|--- Docs/

|--- Appli/

|--- Config/

|--- Cosmic/

|--- Hiware/

|--- Objects/

|--- Cosmic/

|--- Hiware/

|--- ST7USBLS-Library-V4.2x/

3.2 DOCS DIRECTORY

This directory contains all documentations related to the project. You can use this directory to put all your project documents.

3.3 APPLI DIRECTORY

All the application-specific files have to be located inside this directory.

Here is a description of the files that are in this directory initially:

File Name

Description

 

 

Main.c

Entry module. Calls the Initialization functions and contains the infinite loop.

Main.h

 

 

 

Descript.c

USB Descriptor files for the application: you have to modify them according to

Descript.h

your application (the initial values filled in apply to the Library firmware).

 

 

5/15

Loading...
+ 10 hidden pages