68HC08M6 HC08M68HC 8M68HC08M Freescale Semiconductor, Inc.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... blank For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... USB08 Universal Serial Bus Evaluation Board Using the MC68HC908JB8 By: Dipl.-Ing. Oliver Thamm MCT Elektronikladen GbR Hohe Str. 9-13 04107 Leipzig Germany Telephone: Fax: Email: Web: +49 (0)341 2118354 +49 (0)341 2118355 mct@elektronikladen.de http://www.elektronikladen.de/mct Motorola and are registered trademarks of Motorola, Inc. DigitalDNA is a trademark of Motorola, Inc. USB08 Evaluation Board © Motorola, Inc.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Designer Reference Manual Motorola reserves the right to make changes without further notice to any products herein.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board List of Sections Section 1. USB08 Quick Start . . . . . . . . . . . . . . . . . . . . . 17 Freescale Semiconductor, Inc... Section 2. Hardware Description . . . . . . . . . . . . . . . . . . . 27 Section 3. Software Module Descriptions. . . . . . . . . . . . 43 Section 4. Universal Serial Bus (USB) Interface . . . . . . 59 Appendix A. Supported Standard Device Requests . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... List of Sections Designer Reference Manual 6 USB08 Evaluation Board List of Sections For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Table of Contents Freescale Semiconductor, Inc... Section 1. USB08 Quick Start 1.1 Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3 Required System Configuration . . . . . . . . . . . . . . . . . . . . . . . .17 1.4 Connecting the Demo Board to the PC . . . . . . . . .
Freescale Semiconductor, Inc. Table of Contents 2.7 Connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.7.1 Expansion Connector X1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.7.2 Monitor Mode Connector X2 . . . . . . . . . . . . . . . . . . . . . . . .40 2.7.3 User RS232 Connector X3. . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.8 Memory Map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Table of Contents 4.5 USB Implementation in the Reference Design . . . . . . . . . . . . . 65 4.5.1 Activation of the USB Module. . . . . . . . . . . . . . . . . . . . . . . .65 4.5.2 Endpoint Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 4.5.3 USB Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Freescale Semiconductor, Inc... 4.6 Device Management with Endpoint 0 . . . . . . . . . . . . . . . . . . . .69 4.6.
Freescale Semiconductor, Inc. Table of Contents Appendix C. Source Code Files Freescale Semiconductor, Inc... C.1 Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 HC908JB8.H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 U08USB.H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93 U08232.H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96 U08LED.H . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Table of Contents E.4.4 Device State Change Notifications . . . . . . . . . . . . . . . . . . .148 Freescale Semiconductor, Inc... E.5 Programming Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 E.5.1 Programming Interface Overview. . . . . . . . . . . . . . . . . . . . 149 E.5.2 Control Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150 E.5.3 Data Transfer Requests . . . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Table of Contents E.8 Installation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 E.8.1 Automated Installation: The USBIO Installation Wizard . . . 229 E.8.2 Manual Installation: The USBIO Setup Information File. . . 232 E.8.3 Uninstalling USBIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 E.8.4 Building a Customized Driver Setup. . . . . . . . . . . . . . . . . . 237 E.9 Registry Entries . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board List of Figures Freescale Semiconductor, Inc... Figure Title 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 Demo Board Connected to the USB Hub . . . . . . . . . . . . . . . . . 18 Found New Hardware Screen . . . . . . . . . . . . . . . . . . . . . . . . . 19 Found New Hardware Wizard Start Screen . . . . . . . . . . . . . . . 20 Locate Driver Files Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. List of Figures Figure Title Page USB08 Evaluation Board Schematic . . . . . . . . . . . . . . . . . . . 129 E-1 E-2 E-3 E-4 USB Driver Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 USBIO Device and Pipe Objects Example . . . . . . . . . . . . . . . 143 Layout of an Isochronous Transfer Buffer . . . . . . . . . . . . . . . 183 USBIO Class Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board List of Tables Freescale Semiconductor, Inc... Table Title 2-1 2-2 2-3 2-4 2-5 Port A Monitor Mode Entry Levels . . . . . . . . . . . . . . . . . . . . . . 33 Monitor Mode Cable Pin Configuration. . . . . . . . . . . . . . . . . . . 34 Jumper Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Solder Bridges Configuration . . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... List of Tables Designer Reference Manual 16 USB08 Evaluation Board List of Tables For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Section 1. USB08 Quick Start Freescale Semiconductor, Inc... 1.1 Contents 1.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3 Required System Configuration . . . . . . . . . . . . . . . . . . . . . . . .17 1.4 Connecting the Demo Board to the PC . . . . . . . . . . . . . . . . . . 18 1.5 Driver Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. USB08 Quick Start 1.4 Connecting the Demo Board to the PC Since low-speed USB devices should be equipped with a captive connection, the USB cable is fixed on the USB08 board (downstream direction). In the upstream direction (PC/host side), the USB connections are always type A. Therefore, the cable of the USB08 demo board has a type A plug. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. USB08 Quick Start Driver Installation 1.5 Driver Installation For this example, the installation of the driver software is described using the Windows 2000 operating system. The installation using Windows 98 (second edition) looks quite similar. Freescale Semiconductor, Inc... After the electrical connection of the demo board, the Windows operating system recognizes the presence of a new hardware component and shows the message Found New Hardware. Figure 1-2.
Freescale Semiconductor, Inc. USB08 Quick Start The hardware assistant, Figure 1-3, now tries to find the suitable driver information for the USB08 evaluation board. Click the Next button. Freescale Semiconductor, Inc... NOTE: The installation using the Windows 2000 operating system requires administrator rights. Figure 1-3. Found New Hardware Wizard Start Screen Designer Reference Manual 20 USB08 Evaluation Board USB08 Quick Start For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. USB08 Quick Start Driver Installation Freescale Semiconductor, Inc... Insert the USB08 product CD into the CD-ROM drive and mark the appropriate check box CD-ROM drives as shown in Figure 1-4. Click the Next button. Figure 1-4. Locate Driver Files Screen USB08 Evaluation Board MOTOROLA Designer Reference Manual USB08 Quick Start For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. USB08 Quick Start Freescale Semiconductor, Inc... As shown in Figure 1-5, the hardware assistant will find the driver information file usbio_el.inf in the root directory of the CD ROM. Confirm this selection by clicking Next. Figure 1-5. Driver Files Search Results Screen Designer Reference Manual 22 USB08 Evaluation Board USB08 Quick Start For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. USB08 Quick Start Driver Installation Freescale Semiconductor, Inc... The Windows operating system now copies the INF file and the driver file usbio_el.sys to the appropriate Windows directories. After clicking Finish (Figure 1-6), the driver installation will be completed and the USB device will be ready for use. Figure 1-6.
Freescale Semiconductor, Inc. USB08 Quick Start 1.6 Starting the Windows Demo Application The windows demo application: • Shows the measured values and push button information coming from the demo board • Allows the controlling of the demo board light-emitting diodes (LED) Freescale Semiconductor, Inc... The demo application is located in the root directory of the USB08 product CD. The file name of the demo application is IO08USB.EXE. This program can be started directly from the CD. Figure 1-7.
Freescale Semiconductor, Inc. USB08 Quick Start Starting the Windows Demo Application By setting the check boxes on the upper right side it is possible to switch on or off the LEDs of the demo board. The needle pointer instruments on the lower side of the application window indicate the measured values of the three variable resistors: • Input 1 represents the photo sensor. • Input 2 shows the thermistor value. • Input 3 can be varied using the turnable regulator. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. USB08 Quick Start Freescale Semiconductor, Inc... The Windows demo application, IO08USB.EXE, must be re-started in the case of a hardware connection interrupt. This is because an automatic resynchronization (though it would be possible) was not implemented here. The demo application is arranged as simply and as understandable as possible. Designer Reference Manual 26 USB08 Evaluation Board USB08 Quick Start For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Section 2. Hardware Description 2.1 Contents Freescale Semiconductor, Inc... 2.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.3 Technical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.1 MC68HC908JB8 Microcontroller . . . . . . . . . . . . . . . . . . . . . 28 2.3.2 USB08 Evaluation Board . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Hardware Description Beyond that, the USB08 enables the implementation and testing of its own M68HC08 software for evaluation purposes. For that purpose, the board contains a monitor mode interface for reprogramming and debugging. The monitor mode interface of the USB08 is compatible with Motorola development tools such as the M68ICS08JB8 and other third-party tools. Freescale Semiconductor, Inc... 2.
Freescale Semiconductor, Inc. Hardware Description Technical Data 2.3.2 USB08 Evaluation Board Features of the USB08 evaluation board include: • M68HC908JB8 MCU packaged in a 28-pin small-outline integrated circuit package (SOIC) • Three light-emitting diodes (LED) • Three input keys • Three analog sensors: Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Hardware Description Figure 2-1. USB08 Evaluation Board 2.4 Circuit Description A schematic of the USB08 demo board is provided in Appendix D. Bill of Materials and Schematic. The MC68HC908JB8 MCU needs few external elements. A wide range of peripheral functions including the USB module and an 8-Kbyte FLASH memory are integrated on-chip. The MC68HC908JB8 is offered in several packages.
Freescale Semiconductor, Inc. Hardware Description Circuit Description 2.4.1 MCU Core Circuit and USB Interface The operating voltage, VDD, is supported by the capacitors C6 and C3 close to the MCU. Out of this primary operating voltage of approximately 5 V, the MCU produces an internal operating voltage, VREG, of 3.3 V, using an integrated voltage regulator. This voltage is supported by two capacitors, C4 and C5, and continues in the circuit as VCC. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Hardware Description 2.4.2 Input/Output Functions For demonstration purposes, the board has: • Three push buttons • Three light-emitting diodes (LED) • Sensor resistors Freescale Semiconductor, Inc... The push buttons are connected to the three port pins PTA4, PTA5, and PTA6. By pushing the buttons, a low level is produced on the appropriate input. Since the port pins have internal pullup resistors, no external resistors are required.
Freescale Semiconductor, Inc. Hardware Description Circuit Description The I/O pins of the MCU are accessible on the expansion connector X1. User specific peripheral circuits can be attached to X1. NOTE: It may be that not all functions of the demo board may be used with user-specific peripheral circuits attached to X1. 2.4.3 Monitor Mode Interface Freescale Semiconductor, Inc... For FLASH programming and software debugging, the MC68HC908JB8 uses a special operating mode, monitor mode.
Freescale Semiconductor, Inc. Hardware Description is the first jumper of the jumper block JP1, and it must be set in order to apply high voltage to IRQ. If the monitor mode interface is not needed or if it disturbs the investigation of certain circuit configurations, it can be uncoupled completely from the MCU core. For this purpose: • All jumpers of jumper block JP1 have to be removed. • RS232 receiver IC2 has to be removed from the socket. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Hardware Description Circuit Description 2.4.4 User RS232 Port The monitor mode interface uses only one sending/receiving channel of the RS232 transceiver IC2. The remaining channel is used for an additional user RS232 port. Freescale Semiconductor, Inc... In contrast to the RS232 channel for the monitor mode interface, the user RS232 port incorporates separate sending and receiving lines. The PTA7 pin of the MCU is used for receiving and the PTC0 pin is used for sending.
Freescale Semiconductor, Inc. Hardware Description 2.4.5 Power Supply Freescale Semiconductor, Inc... Power can be supplied to the USB08 board by using the USB or via the voltage regulator IC3. The change between these options is done by replacing the jumper JP2. If the jumper is placed in position 2–3 (Bus Powered), the operating power is supplied by VBus and VGND from the USB.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Hardware Description Board Layout Figure 2-2. PCB Component Side Layout Plan Figure 2-3. Detailed Layout Plan USB08 Evaluation Board MOTOROLA Designer Reference Manual Hardware Description For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Hardware Description 2.6 Jumpers and Bridges The jumper configuration is shown in Table 2-3. Table 2-3. Jumper Configuration Jumper Position(a) Function Open* Normal user mode Closed High voltage on IRQ to enter monitor mode JP1-A Freescale Semiconductor, Inc... Open RS232 is disconnected from the power supply. JP1-B Closed* Open RS232 is connected to the power supply. PTA0 can be used without restriction.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Hardware Description Jumpers and Bridges Figure 2-4. Solder Bridge Placement on Downside of the PCB Table 2-4. Solder Bridges Configuration Solder Bridge Position(1) BR1 and BR2 1-2* User RS232 configured in external device mode (PC) 2-3 User RS232 configured in host mode (LCD connection) Function Open* VCC is not present at user RS232 port (standard). Closed VCC is present at pin 9 of the user RS232.
Freescale Semiconductor, Inc. Hardware Description 2.7 Connectors The connectors are described here. Freescale Semiconductor, Inc... 2.7.1 Expansion Connector X1 VDD 1 2 VCC RTS 3 4 PTA0 PTD0 5 6 PTA1 PTD1 7 8 PTA2 PTD2 9 10 PTA3 PTD3 11 12 PTA4 PTD4 13 14 PTA5 PTD5 15 16 PTA6 PTD6 17 18 PTA7 PTE3 19 20 PTE0 PTE4 21 22 PTE1 PTC0 23 24 PTE2 GND 25 26 GND X1 2.7.2 Monitor Mode Connector X2 N.C. 1 2 N.C. PC_RxD 3 4 N.C. PC_TxD 5 6 N.C. N.C.
Freescale Semiconductor, Inc. Hardware Description Memory Map Freescale Semiconductor, Inc... 2.7.3 User RS232 Connector X3 N.C. 1 2 N.C. Rx (Tx) 3 4 N.C. Tx (Rx) 5 6 N.C. N.C. 7 8 VDD GND 9 10 N.C. X3 2.8 Memory Map Table 2-5.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Hardware Description Designer Reference Manual 42 USB08 Evaluation Board Hardware Description For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Section 3. Software Module Descriptions Freescale Semiconductor, Inc... 3.1 Contents 3.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3 General Structure of the M68HC08 Firmware . . . . . . . . . . . . . 44 3.4 How to Build the Compiler Project . . . . . . . . . . . . . . . . . . . . . . 45 3.5 Main Module U08MAIN.C . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Software Module Descriptions 3.3 General Structure of the M68HC08 Firmware Freescale Semiconductor, Inc... The firmware of the M68HC08 consists of several source code modules which are embedded into a common compiler project. The main() function is contained in the module U08MAIN.C. It controls the program sequence via an endless loop (as usual in embedded software). The module U08KEY.C settles the scanning of the input keys.
Freescale Semiconductor, Inc. Software Module Descriptions How to Build the Compiler Project Figure 3-1 shows the structure and interaction of the modules and files that could be included by means of “#include” instructions. To accomplish a complete compiler build, the grey modules have to be included in a compiler project. 3.4 How to Build the Compiler Project Freescale Semiconductor, Inc... The Cosmic C Compiler can to arrange a project within the compiler IDE.
Freescale Semiconductor, Inc. Software Module Descriptions The compiler project for the USB08 reference design covers these C modules (see Figure 3-1): • U08MAIN.C • U08KEY.C • U08ADC.C • VECJB8.C Freescale Semiconductor, Inc... An alternative possibility consists of controlling the translation of the project via a batch file as shown in this example (BUILD.BAT). cx6808 -v -l u08main.c u08adc.c u08key.c vecjb8.c clnk -o usb08.h08 usb08.lkf chex -fm -h -o usb08.s19 usb08.
Freescale Semiconductor, Inc. Software Module Descriptions How to Build the Compiler Project Freescale Semiconductor, Inc... In the linker file: • The starting addresses of the various segments are set. • The text segment starts at the address 0xDC00 (for example, at the beginning of the internal FLASH memory). • The constants immediately follow the text segment. • The zero page starts at 0x0040 instead of the usual 0x0000.
Freescale Semiconductor, Inc. Software Module Descriptions 3.5 Main Module U08MAIN.C Which variant to be compiled is specified at the head of this module using the macro USE_USB_PIPE. If defined, the USB version will be produced; otherwise, the RS232 version will be produced. Freescale Semiconductor, Inc... The two versions are formed by merging different “#include” files. In addition, the names of the interface functions used in the main program are standardized.
Freescale Semiconductor, Inc. Software Module Descriptions Interrupt and Reset Vector Module VECJB8.C The main program loop uses this operational sequence: Freescale Semiconductor, Inc... 1. An analog-to-digital (A/D) conversion is performed. One of three conversion channels is updated in each cycle run. This procedure was selected because the transformation, with the simple ADC software implemented in the module U08ADC.C, takes several milliseconds. 2.
Freescale Semiconductor, Inc. Software Module Descriptions practically without function; however, it can be used in the debugging phase for seeking out unexpected (spurious) interrupts. In addition, the allocation of all interrupt vectors is important for the implementation of the FLASH memory security feature (read-out protection). For additional information, refer to the MC68HC908JB8 Technical Data, Motorola document order number MC68HC908JB8/D. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Software Module Descriptions Push Button Module U08KEY.C The KBI module of the MC68HC908JB8 greatly simplifies the scanning of the attached buttons. The software necessary for this takes only 20 lines of C code. The conditions are created in the initialization function initKey(). First the internal pullup resistors at the port A pins are activated. A short pulse of an active H level is driven at the port A pins which accelerates the rising of the logic levels at these pins.
Freescale Semiconductor, Inc. Software Module Descriptions NOTE: It has to be pointed out for completeness, that with the KBI module of the MC68HC908JB8 not only single keys but also extensive key fields in matrix arrangement can be easily scanned. Freescale Semiconductor, Inc... 3.9 LED Control with U08LED.H Controlling the three light-emitting diodes (LED) attached to port D is easy. For initialization, the data direction of the used port pins PTD[0..2] has to be switched to an output state.
Freescale Semiconductor, Inc. Software Module Descriptions Software ADC Module U08ADC.C First, the switch S is closed and the capacitor C uncharged. As soon as the switch S is opened, the charging procedure begins. The voltage at the input E of the microcontroller rises according to the exponential function: UE(t) = VCC (1 – e(–t/RC)) The threshold voltage at the input pin of the MC68HC908JB8, from which a level change from low to high takes place, is approximately 50 percent of the operating voltage VCC.
Freescale Semiconductor, Inc. Software Module Descriptions the ground potential at the resistors via the port pins PTD[3..5] (calibration cycle) and PTD[6] (measuring cycle). Freescale Semiconductor, Inc... Before the software of the ADC module can be used, the initialization function initSADC() has to be called. In addition, the main timer is required to run with 3 MHz (prescaler 0). The clocking of three impulses per microsecond is the basis of the time measurement in this module.
Freescale Semiconductor, Inc. Software Module Descriptions RS232 Communication Module U08232.C The module contains these three interface functions: • initSSCI() — initialization of the software SCI module • getSSCI() — receiving of a character • putSSCI() — transmission of a character Freescale Semiconductor, Inc... The module initialization function initSSCI() sets the data direction registers for the output and input port.
Freescale Semiconductor, Inc. Software Module Descriptions Freescale Semiconductor, Inc... disables any interrupts. Also, in an application with permanent interrupt use, the software SCI should run in an interrupt-controlled way. Since the receiving of a character is performed using port pin PTA7, the use of the keyboard interrupt associated with this pin would be possible for the recognition of the start bit.
Freescale Semiconductor, Inc. Software Module Descriptions Compiler Specific Adjustments USB peripheral module arrives. As soon as the data has arrived, the next character is taken from the buffer and the read index is incremented. Since we are dealing with a ring buffer, this index, if it overflows beyond the upper buffer border, is set back to the lower buffer border (index 0). The size of the receiving ring buffer is specified by the macro MAX_RXBUF_SIZE.
Freescale Semiconductor, Inc. Software Module Descriptions because this application does not use problematic constructions, like bit fields in the source code. In some places, using individual assembler instructions in the form of in-line assembler directives is considered useful, for example, for the interrupt enable in the main module U08MAIN.C. For this purpose, the Cosmic C Compiler offers the following instruction: _asm(""); Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Section 4. Universal Serial Bus (USB) Interface Freescale Semiconductor, Inc... 4.1 Contents 4.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.3 Characteristics of the USB08 Reference Design . . . . . . . . . . . 60 4.4 USB Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.5 USB Implementation in the Reference Design . . . . .
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface The USB specification(1) which can be found on the World Wide Web at: http://www.usb.org Freescale Semiconductor, Inc... is an industry standard, which exactly defines this bus system beginning with the electrical interface up to the higher protocol layers to guarantee the inter-operability of all the different devices. A simple way of handling is the most important requirement for USB devices from the view of the user.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Characteristics of the USB08 Reference Design The integrated USB module of the MC68HC908JB8 works at a data rate of 1.5 Mbit/s, thus it is defined as a low-speed USB device. For measuring and control applications, typically only small data rates are needed, and this is already realized using low-speed USB devices. A low-speed USB device ensures an information flow rate, which can be compared roughly with an RS232 link with 9600 baud.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface 4.4 USB Basics Concerning the electrical interface, the plug and the cable, as well as questions on the bus topology we refer to the Universal Serial Bus Specification Revision 1.1 standard reference. The volume of information contained in this specification exceeds by far this manual. Also some good introductions are offered by books, for example the book by Kelm(1). Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface USB Basics A USB transaction is a series of packets to transmit information between a host and a device. A transaction is always initiated by sending a token packet (SETUP, IN, or OUT). This packet is always sent by the host because devices cannot initiate a USB transaction. The token packet contains the address and the desired endpoint of the device. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface If the device does not hold any data ready for sending, it sends a busy handshake NAK instead of the data packets. IN Transaction (Device Busy) Host IN (ADDR,EP) Device NAK Freescale Semiconductor, Inc... While the actual data communication via the stream pipes is based on simple IN and OUT transactions, the management of the device uses more complex control transfers via the control endpoint 0.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface USB Implementation in the Reference Design 4.5 USB Implementation in the Reference Design The following paragraphs describe the implementation of the USB into the reference design. Freescale Semiconductor, Inc... 4.5.1 Activation of the USB Module For initialization of the MC68HC908JB8 USB module, the user program must call the initialization routine initUSB().
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface configured as an IN or as an OUT endpoint. The reference design uses this endpoint as an OUT endpoint, to do data transfers to the MCU. Table 4-2 provides an overview of the endpoint configuration. Freescale Semiconductor, Inc... Table 4-2.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface USB Implementation in the Reference Design 4.5.3 USB Reset An USB reset is an event which is used by the USB hub to reset the attached devices to the initial state. Electrically, the reset signal is a special bus condition (single ended zero) which is initiated by the host and then passed on by the hub(s). Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Bit 7 6 5 4 3 EOPIE SUSPND TXD2IE RXD2IE TXD1IE 0 0 0 0 0 Read: 2 1 Bit 0 TXD0IE RXD0IE 0 0 0 Write: Reset: 0 = Unimplemented Figure 4-3. USB Interrupt Register 0 (UIR0) Freescale Semiconductor, Inc... At the end of the USB reset interrupt, the control endpoint 0 will be enabled for receiving, thus the configuration instructions which follow after the reset (device requests) are received by the USB receiver.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Device Management with Endpoint 0 4.6 Device Management with Endpoint 0 4.6.1 Enumeration Freescale Semiconductor, Inc... After the basic initialization described in the previous paragraphs, the USB module is now able to react with an interrupt on packets which are addressed to the control endpoint EP0. Now, the process of the enumeration (that is, the configuration and integration into the system) at the USB is continued. 4.6.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface refers to a SETUP or an OUT packet. Therefore, the flag SETUP in the USB status register 0 (USR0) has to be examined. If this flag is set, the last token received by EP0 was a SETUP token and the interrupt routine is branched to the function for handling of SETUP transactions, handleSETUP(). Read: Bit 7 6 5 4 3 2 1 Bit 0 R0SEQ SETUP 0 0 RP0SIZ3 RP0SIZ2 RP0SIZ1 RP0SIZ0 Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Device Management with Endpoint 0 The type of standard request is coded in the field bRequest. For continuation of the enumeration, the host should send the standard device request SET_ADDRESS and the handleSETUP() routine should branch to the function setAddress(). The function first validates the contents of the fields of SetupBuffer. In the case of an error, a STALL handshake is initiated to give the host problem feedback.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface transaction, the function handleIN() is called. In the field bRequest of the SetupBuffer, SET_ADDRESS is still contained as the current standard request type. The function handleIN() now reacts by transferring the device address from the buffer to the USB address register (UADDR). Bit 7 6 5 4 3 2 1 Bit 0 USBEN UADD6 UADD5 UADD4 UADD3 UADD2 UADD1 UADD0 0 0 0 0 0 0 0 0 Read: Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Device Management with Endpoint 0 Within the setup stage, the function handleSETUP() is called. The request type is recognized as GET_DESCRIPTOR and branched to the subfunction getDescriptor(). There, it is determined if a device configuration or string descriptor was requested. According to this requirement, a pointer will be set on the respective data source.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface 4.6.4 Device Configuration Freescale Semiconductor, Inc... After the host processes all descriptors claimed by the device, it will set up the device with a SET_CONFIGURATION standard device request. A device can have several configurations (for example, with different power options, resolutions, or speed options). The configuration characteristics supported by the device are coded in the device descriptors.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Data Communication via Endpoints EP1 and EP2 Freescale Semiconductor, Inc... To force the device not to send further STALL packets after the recovery of the error, the host can use the standard device request CLEAR_FEATURE.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface 4.7.1 Receiving Data If data for endpoint 2 arrives, the interrupt handler calls handleOUT2(). The number of received bytes is noted in bits RPSIZ3–RPSIZ0 with the allowed values in the range of 0–8. Read: Bit 7 6 5 4 3 2 1 Bit 0 R2SEQ TXACK TXNAK TXSTL RP2SIZ3 RP2SIZ2 RP2SIZ1 RP2SIZ0 0 0 0 0 0U U U U Freescale Semiconductor, Inc... Write: Reset: = Unimplemented U = Unaffected Figure 4-10.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Data Communication via Endpoints EP1 and EP2 after 10 ms the host asks whether further data has to be fetched from endpoint 1 or not. NOTE: In practice, the host uses only intervals of 2n ms, the demanded 10 ms is then rounded to 8 ms. Freescale Semiconductor, Inc... The USB interrupt routine is called cyclically and branches to the handler handleIN1.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface 4.8 Host Interaction: Vendor ID and Product ID Two identifiers are used to mark a USB device and make it possible for the host to assign a suitable driver: The vendor ID and the product ID. Both IDs are registered in the device descriptor of the USB equipment. 1. The vendor ID (VID) marks the manufacturer. Normally, vendor IDs are assigned by the USB Implementers Forum. The requestor is charged for this registration.
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface Windows Device Driver file and the driver file are specified. The Windows Hardware Assistant copies these two files into the appropriate Windows directory and updates the driver data base as necessary. Then, during the following "Plug Event," the Windows operating system finds the driver immediately in this data base. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal Serial Bus (USB) Interface The USB08 reference design uses a third possibility, the universal USB device driver (USBIO) from the company Thesycon. This third-party USB driver is professionally maintained and updated as soon as new operating system conditions occur. The USBIO driver is used for the USB08 reference design as a free-of-charge adapted "Light EL" version. For detailed documentation, components, and demo programs refer to: Appendix E.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Appendix A. Supported Standard Device Requests Definition of the supported standard device requests are given here. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Supported Standard Device Requests Designer Reference Manual 82 USB08 Evaluation Board Supported Standard Device Requests For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Appendix B. USB08 Descriptors Freescale Semiconductor, Inc... B.1 Contents B.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 B.3 Device Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 B.4 Configuration Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 B.5 Interface Descriptor . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. USB08 Descriptors Freescale Semiconductor, Inc... B.3 Device Descriptor const device_descriptor DeviceDesc = { // Size of this Descriptor in Bytes sizeof(device_descriptor), DT_DEVICE, // Descriptor Type (=1) {0x10, 0x01}, // USB Spec Release Number in BCD = 1.
Freescale Semiconductor, Inc. USB08 Descriptors Interface Descriptor Freescale Semiconductor, Inc... B.5 Interface Descriptor const interface_descriptor InterfaceDesc = { // Size of this Descriptor in Bytes sizeof(interface_descriptor), DT_INTERFACE, // Descriptor Type (=4) 0, // Number of *this* Interface (0..) 0, // Alternative for this Interface (if any) 2, // No of EPs used by this IF (excl.
Freescale Semiconductor, Inc. USB08 Descriptors B.8 String Descriptors // Language IDs //-------------#define SD0LEN 4 //-------------- Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. USB08 Descriptors String Descriptors Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... USB08 Descriptors Designer Reference Manual 88 USB08 Evaluation Board USB08 Descriptors For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Appendix C. Source Code Files C.1 Contents Freescale Semiconductor, Inc... HC908JB8.H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 U08USB.H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 U08232.H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 U08LED.H . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Source Code Files HC908JB8.H #ifndef __HC08_H #define __HC08_H1 Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents U08USB.H //============================================================================ // File: U08_USB.H // Func: Definitions for USB Data Types & Constants // Header File for USB08 Demo Application // Auth: (C)2000 by MCT Elektronikladen GbR, Oliver Thamm // http://www.elektronikladen.de/mct // Rem.: View/Edit this File with TAB-Size=4 //============================================================================ Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Freescale Semiconductor, Inc... //---------------------------------------------------------------------------// Standard Interface Descriptor // according to USB1.
Freescale Semiconductor, Inc. Source Code Files Contents Freescale Semiconductor, Inc... //---------------------------------------------------------------------------// USB Standard Device Request Codes // according to USB1.
Freescale Semiconductor, Inc. Source Code Files U08232.H //============================================================================ // File: U08_232.H // Func: Header File for RS232 Module of USB08 Demo App // Ver.: 1.00 // Auth: (C)2000,2001 by Oliver Thamm // MCT Elektronikladen GbR // http://hc08web.de/usb08 // Rem.: View/Edit this File with TAB-Size=4 //============================================================================ Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents U08MAIN.C Freescale Semiconductor, Inc... //============================================================================ // File: U08MAIN.C // Func: Main Module for USB08 Demo Application // Ver.: 1.00 // Auth: (C)2000,2001 by Oliver Thamm, MCT Elektronikladen GbR // http://hc08web.de/usb08 // Make: Build the project using U08MAIN.C, U08KEY.C, // and VECJB8.C, use CRTSJB8.S as C-Startup Module // Rem.
Freescale Semiconductor, Inc. Source Code Files // Things that should be done immediately after Reset // (this is called by the C-Startup Module) // void _HC08Setup() { CONFIG = 0x21; // USB Reset Disable, COP Disable TSC = 0x00; // clear TSTOP, Prescaler=0 } Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents // send data to output pipe io_buffer[0] io_buffer[1] io_buffer[2] io_buffer[3] io_buffer[4] io_buffer[5] = = = = = = getKey(1); getKey(2); getKey(3); adc[0]; adc[1]; adc[2]; n=0; do { Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files U08DESC.C Freescale Semiconductor, Inc... //============================================================================ // File: U08DESC.C // Func: Device-, Configuration- and String-Descriptors for // USB08 Demo Application (all const Data, placed in Flash-ROM) // Ver.: 1.00 // Auth: (C)2000,2001 by Oliver Thamm, MCT Elektronikladen GbR // http://hc08web.de/usb08 // Rem.
Freescale Semiconductor, Inc. Source Code Files Contents const interface_descriptor InterfaceDesc = { // Size of this Descriptor in Bytes sizeof(interface_descriptor), DT_INTERFACE, // Descriptor Type (=4) 0, // Number of *this* Interface (0..) 0, // Alternative for this Interface (if any) 2, // No of EPs used by this IF (excl.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files U08USB.C Freescale Semiconductor, Inc... //============================================================================ // File: U08USB.C // Func: USB Implementation Module for USB08 Demo Application // Ver.: 1.00 // Auth: (C)2000,2001 by Oliver Thamm, MCT Elektronikladen GbR // http://hc08web.de/usb08 // Rem.
Freescale Semiconductor, Inc. Source Code Files Contents //---------------------------------------------------------------------------#define ENDPOINT_HALT0x00 #define RT_ENDPOINT0x02 Freescale Semiconductor, Inc... // CLEAR_FEATURE Standard Device Request Handler // called by handleSETUP(); // void clearFeature() { if( SetupBuffer.wValue.hi || SetupBuffer.wIndex.hi || SetupBuffer.wLength.hi || SetupBuffer.wLength.lo) // check 0-fields forceSTALL(); else if((SetupBuffer.
Freescale Semiconductor, Inc. Source Code Files Freescale Semiconductor, Inc... // SET_CONFIGURATION Standard Device Request Handler // called by handleSETUP(); // void setConfiguration() { if( SetupBuffer.wIndex.hi || SetupBuffer.wIndex.lo || SetupBuffer.wLength.hi || SetupBuffer.wLength.lo || SetupBuffer.wValue.hi || (SetupBuffer.wValue.lo > 1) || (USB_State == US_DEFAULT)) { forceSTALL(); } else { if(SetupBuffer.wValue.
Freescale Semiconductor, Inc. Source Code Files Contents // GET_DESCRIPTOR Standard Device Request Handler // called by handleSETUP(); // void getDescriptor() { uchar n; uchar *dest; switch(SetupBuffer.wValue.hi) { Freescale Semiconductor, Inc... case DT_DEVICE: // Get Device Descriptor SetupDataPtr = (uchar *)&DeviceDesc; SetupSize = DeviceDesc.bLength; break; case DT_CONFIGURATION: // Get Configuration Descriptor SetupDataPtr = (uchar *)&ConfigDesc; SetupSize = ConfigDesc.wTotalLength.
Freescale Semiconductor, Inc. Source Code Files void handleSETUP() { UCR0 &= ~BM_RX0E; UIR2 = BM_RXD0FR; // Deactivate EP0 Receiver // Reset EP0 Receive Flag Freescale Semiconductor, Inc... SetupBuffer = *(setup_buffer *)(&UE0D0); if(USR0 != 0x48) { // forceSTALL(); // } else { // if((SetupBuffer.bmRequestType & 0x60) forceSTALL(); // } else { // switch(SetupBuffer.
Freescale Semiconductor, Inc. Source Code Files Contents void handleIN() { uchar n; uchar *dest; Freescale Semiconductor, Inc... UCR0 &= ~BM_TX0E; UIR2 = BM_TXD0FR; // Deactivate EP0 Transmitter // Reset EP0 Transmit complete Flag switch(SetupBuffer.bRequest) { case SET_ADDRESS: UADDR = SetupBuffer.wValue.lo | BM_USBEN; if(SetupBuffer.wValue.lo != 0) USB_State = US_ADDRESSED; else USB_State = US_DEFAULT; SetupBuffer.
Freescale Semiconductor, Inc. Source Code Files // handle IN Packet Transmit complete over EP1 // void handleIN1() { uchar n; uchar *dest; Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents U08232.C Freescale Semiconductor, Inc... //============================================================================ // File: U08232.C // Func: RS232 Implementation Module for USB08 Demo Application // Ver.: 1.00 // Auth: (C)2000,2001 by Oliver Thamm, MCT Elektronikladen GbR // http://hc08web.de/usb08 // Rem.
Freescale Semiconductor, Inc. Source Code Files void delayHalfBit() { Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents //---------------------------------------------------------------------------char getSSCI() { char c; unsigned char n; unsigned char ccr_save; Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files U08KEY.C //============================================================================ // File: U08KEY.C // Func: Key Input Functions for USB08 // Ver.: 1.00 // Auth: (C)2000,2001 by Oliver Thamm, MCT Elektronikladen GbR // http://hc08web.de/usb08 // Rem.: View/Edit this File with TAB-Size=4 //============================================================================ #include "hc08jb8.h" #include "u08key.h" Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents U08ADC.C //============================================================================ // File: U08ADC.C // Func: Software ADC for USB08 // Ver.: 1.00 // Auth: (C)2000,2001 by Oliver Thamm, MCT Elektronikladen GbR // http://hc08web.de/usb08 // Rem.: View/Edit this File with TAB-Size=4 //============================================================================ Freescale Semiconductor, Inc... #include "hc08jb8.h" #include "u08adc.
Freescale Semiconductor, Inc. Source Code Files // *** calibration cycle *** PTD &= ~0x78; DDRD |= 0x78; PTE |= 0x07; DDRE |= 0x07; for(zz=0;zz<1000;zz--) ; // // // // PTD[3..6] = L Output PTE[0..2] = H; Output Freescale Semiconductor, Inc... DDRE &= ~0x07; // PTE HiZ (Input) t0 = TCNT; while((PTE & channel) != 0) ; t1 = TCNT; t1 -= t0; // *** acquisition cycle *** DDRD &= ~0x38; // PTD[3..
Freescale Semiconductor, Inc. Source Code Files Contents VECJB8.C // // INTERRUPT VECTORS TABLE FOR HC908JB8 Cosmic HC08 C Compiler extern void _stext(); /* startup routine */ void (* const _vectab[])() = { isrKey, /* Keypad isrDummy, /* TIMER overflow isrDummy, /* TIMER channel 1 isrDummy, /* TIMER channel 0 isrDummy, /* IRQ1 isrUSB, /* USB isrDummy, /* SWI _stext, /* RESET }; */ */ */ */ */ */ */ */ Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files CRTSJB8.S ; ; ; C STARTUP FOR HC08JB8 Copyright (c) 1995 by COSMIC Software Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents Freescale Semiconductor, Inc... USB08.LKF # USB08 LINK COMMAND FILE # COSMIC HC08 C COMPILER # +seg .text -b 0xdc00 -n .text +seg .const -a .text +seg .bsct -b 0x0040 -n .bsct +seg .ubsct -a .bsct -n .ubsct +seg .data -a .ubsct +def __sbss=@.bss # # # # # # # Put your startup file here crtsjb8.
Freescale Semiconductor, Inc. Source Code Files USB08.MAP Map of usb08.h08 from link file usb08.lkf - Sun Jan 07 19:29:30 2001 Freescale Semiconductor, Inc... Segments: start start start start start start start 0000dc00 0000e263 00000040 00000040 00000041 00000041 0000fff0 end end end end end end end 0000e263 0000e2f5 00000040 00000041 00000041 00000075 00010000 length length length length length length length 1635 146 0 1 0 52 16 segment segment segment segment segment segment segment .text .
Freescale Semiconductor, Inc. Source Code Files Contents Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Source Code Files Contents Freescale Semiconductor, Inc... USB08.
Freescale Semiconductor, Inc. Source Code Files Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Appendix D. Bill of Materials and Schematic Freescale Semiconductor, Inc... This appendix includes: • USB08 V 1.01 bill of materials — Table D-1 • USB08 evaluation board schematic — Figure D-1 USB08 Evaluation Board MOTOROLA Designer Reference Manual Bill of Materials and Schematic For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Bill of Materials and Schematic Table D-1. Bill of Materials for USB08 V 1.01 Freescale Semiconductor, Inc... Part C1, C2 22 pF C3, C4, C7, C8, C9, C10, C11, C12, C13, C14, C15, C17, C18, C19 100 nF C5, C6 10 µF C16 100 µF/25 V C20, C21, C22 10 nF D1, D2, D3, D4 LED D5, D6 BAT42 D7 ZD8.2V D8 1N4001 IC1 MC68HC908JB8ADW IC2 MAX232A IC3 7805 JP1 Header 2x8 JP2 Header 1x3 L1, L2 Ferrite Q1 XTAL 6 MHz R1 MPY7P (photoresistor) R2 K164-4.
Freescale Semiconductor, Inc. Figure D-1. USB08 Evaluation Board Schematic Freescale Semiconductor, Inc... Bill of Materials and Schematic USB08 Evaluation Board MOTOROLA Designer Reference Manual Bill of Materials and Schematic For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Bill of Materials and Schematic Designer Reference Manual 130 USB08 Evaluation Board Bill of Materials and Schematic For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Designer Reference Manual — USB08 Evaluation Board Appendix E. Universal USB Device Driver (USBIO) Freescale Semiconductor, Inc... USBIO Universal USB Device Driver for Windows 98, Windows Millennium, and Windows 2000 Reference Manual Version 1.41 2000, December 20 By: Thesycon® Systemsoftware & Consulting GmbH Wetzlarer Platz 1 D-98693 Ilmenau Germany Telephone: Fax: Email: Web: +49 3677 / 8462-0 +49 3677 / 8462-18 USBIO@thesycon.de http://www.thesycon.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.1 Contents E.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 E.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135 E.3.1 Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 E.3.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Contents Freescale Semiconductor, Inc... IOCTL_USBIO_UNBIND_PIPE . . . . . . . . . . . . . . . . . . . . . . 175 ICOTL_USBIO_RESET_PIPE . . . . . . . . . . . . . . . . . . . . . . .176 IOCTL_USBIO_ABORT_PIPE . . . . . . . . . . . . . . . . . . . . . . .177 IOCTL_USBIO_GET_PIPE_PARAMETERS . . . . . . . . . . . . 178 IOCTL_USBIO_SET_PIPE_PARAMETERS . . . . . . . . . . . . 179 IOCTL_USBIO_PIPE_CONTROL_TRANSFER_IN . . . . . . .
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.6 USBIO Class Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220 E.6.1 CUsbIo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 E.6.2 CUsbIoPipe Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 E.6.3 CUsbIoThread Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 E.6.4 CUsbIoReaderClass. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Introduction E.2 Introduction USBIO is a generic Universal Serial Bus (USB) device driver for Windows 98, Windows Millennium (ME), and Windows 2000. It is able to control any type of USB device and provides a convenient programming interface that can be used by Win32 applications. Freescale Semiconductor, Inc... This document describes the architecture, the features, and the programming interface of the USBIO device driver.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) development or test of a new device. But in many cases it is also suitable to include the USBIO device driver in the final product. So there is no need to develop and test a custom device driver for the USB-based product at all. E.3.1 Platforms Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Overview • Multiple USB devices can be controlled by USBIO at the same time • Multiple applications can use USBIO at the same time Freescale Semiconductor, Inc... The USBIO device driver can be used to control any USB device from a Win32 application running in user mode. Examples of such devices are • telephone and fax devices • telephone network switches • audio and video devices (e.g. cameras) • measuring devices (e.g.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.4 Architecture Figure E-1 shows the USB driver stack that is part of the Windows 98, Windows Millennium, and Windows 2000 operating systems. All drivers are embedded within the WDM layered architecture. Freescale Semiconductor, Inc... Win32 Application User Mode Kernel Mode USBIO.SYS Other USB device drivers USB Driver Interface (USBDI) USBD.SYS USBHUB.SYS OpenHCI.SYS Hardware USB Host Controller Figure E-1.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Architecture • USBD.SYS is the USB Bus Driver that controls and manages all devices connected to the USB. It is provided by Microsoft as part of the operating system. • USBHUB.SYS is the USB Hub Driver. It is responsible for managing and controlling USB Hubs. • USBIO.SYS is the generic USB device driver USBIO. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.4.1 USBIO Object Model The USBIO device driver provides a communication model that consists of device objects and pipe objects. The objects are created, destroyed, and managed by the USBIO driver. An application can open handles to device objects and bind these handles to pipe objects. E.4.1.1 USBIO Device Objects Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Architecture Freescale Semiconductor, Inc... Interface ID is used by the USBIO demo application for device enumeration. This way, it is always possible to access devices connected to the USBIO from the demo application. In addition, an user-defined Device Interface ID is supported by USBIO. This user-defined GUID is specified in the USBIO INF file by the USBIO_UserInterfaceGuid variable.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) to ensure compatibility USBIO still supports the old naming scheme. This feature can be enabled by defining a device name prefix in the variable USBIO_DeviceBaseName in the USBIO INF file. However, it is strongly recommended to use the new naming scheme based on Device Interface IDs (GUIDs), because it conforms with current Windows 2000 guidelines.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Architecture Application Handle1 Handle2 Handle3 Pipe 0x81 Pipe 0x02 User Mode Freescale Semiconductor, Inc... Kernel Mode Device Object identified by device name Figure E-2. USBIO Device and Pipe Objects Example The device object is identified by a device name as described in E.4.1.1 USBIO Device Objects. A pipe object is identified by its endpoint address that also includes the direction flag at bit 7 (MSB).
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Handle2 and Handle3 are called pipe handles. Note that while Handle1 cannot be used to communicate with a pipe, any operation on the device can be executed by using Handle2 or Handle3, too. E.4.2 Establishing a Connection to the Device Freescale Semiconductor, Inc... The following code sample demonstrates the steps that are necessary at the USBIO API to establish a handle for a device and a pipe.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Architecture // setup the data structure for configuration // use the configuration descriptor with index 0 SetConfiguration.ConfigurationIndex = 0; // device has 1 interface SetConfiguration.NbOfInterfaces = 1; // first interface is 0 SetConfiguration.InterfaceList[0].InterfaceIndex = 0; // alternate setting for first interface is 0 SetConfiguration.InterfaceList[0].
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.4.3 Power Management Freescale Semiconductor, Inc... Windows 98, Windows Millennium, and Windows 2000 support system power management. That means that if the computer is idle for a given time, some parts of the computer can go into a sleeping mode. A system power change can be initiated by the user or by the operating system itself, on a low battery condition for example. An USB device driver has to support the system power management.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Architecture All registry entries describing device power states are DWORD parameters where the value 0 corresponds to DevicePowerD0, 1 to DevicePowerD1, and so on. The parameter PowerStateOnOpen specifies the power state to which the device is set if the first file handle is opened. If the last file handle is closed the USB device is set to the power state specified in the entry PowerStateOnClose. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.4.4 Device State Change Notifications The application is able to receive notifications when the state of an USB device changes. The Win32 API provides the function RegisterDeviceNotification for this purpose. This way, an application will be notified if an USB device is plugged in or removed. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface E.5 Programming Interface E.5.1 Programming Interface Overview Table E-1. I/O Operations Supported by the USBIO Device Driver Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.5.2 Control Requests This section provides a detailed description of the I/O Control operations the USBIO driver supports through its programming interface. The I/O Control requests are submitted to the driver using the Win32 function DeviceIoControl (see E.4 Architecture).
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_GET_DESCRIPTOR Freescale Semiconductor, Inc... The IOCTL_USBIO_GET_DESCRIPTOR operation requests a specific descriptor from the device. lpInBuffer Pointer to a buffer that contains an USBIO_DESCRIPTOR_REQUEST (page 187) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_SET_DESCRIPTOR The IOCTL_USBIO_SET_DESCRIPTOR operation sets a specific descriptor of the device. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Comments Pointer to a buffer that contains an USBIO_DESCRIPTOR_REQUEST (page 187) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_SET_FEATURE The IOCTL_USBIO_SET_FEATURE operation is used to set or enable a specific feature. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Comments Pointer to a buffer that contains an USBIO_FEATURE_REQUEST (page 188) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_CLEAR_FEATURE The IOCTL_USBIO_CLEAR_FEATURE operation is used to clear or disable a specific feature. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Comments Pointer to a buffer that contains an USBIO_FEATURE_REQUEST (page 188) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_GET_STATUS Freescale Semiconductor, Inc... The IOCTL_USBIO_GET_STATUS operation requests status for a specific recipient. lpInBuffer Pointer to a buffer that contains an USBIO_STATUS_REQUEST (page 189) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_GET_CONFIGURATION The IOCTL_USBIO_GET_CONFIGURATION operation returns the current configuration of the device. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Pointer to a buffer that will receive an USBIO_GET_CONFIGURATION_DATA (page 191) data structure.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_GET_INTERFACE The IOCTL_USBIO_GET_INTERFACE operation returns the current alternate setting of a specific interface. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Pointer to a buffer that contains an USBIO_GET_INTERFACE (page 192) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR The IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR operation stores the configuration descriptor to be used for set configuration requests within the USBIO device driver. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Pointer to a buffer that contains the configuration descriptor data. Specifies the size, in bytes, of the buffer pointed to by lpInBuffer.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_SET_CONFIGURATION The IOCTL_USBIO_SET_CONFIGURATION operation is used to set the device configuration. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Comments Pointer to a buffer that contains an USBIO_SET_CONFIGURATION (page 195) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_UNCONFIGURE_DEVICE The IOCTL_USBIO_UNCONFIGURE_DEVICE operation is used to set the device to its unconfigured state. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Not used with this operation. Set to NULL. Not used with this operation. Set to zero.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_SET_INTERFACE The IOCTL_USBIO_SET_INTERFACE operation sets the alternate setting of a specific interface. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Comments Pointer to a buffer that contains an USBIO_INTERFACE_SETTING (page 194) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_CLASS_OR_VENDOR_IN_REQUEST Freescale Semiconductor, Inc... The IOCTL_USBIO_CLASS_OR_VENDOR_IN_REQUEST operation is used to generate a class or vendor specific device request with a data transfer direction from device to host. lpInBuffer Pointer to a buffer that contains an USBIO_CLASS_OR_VENDOR_REQUEST (page 196) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_CLASS_OR_VENDOR_OUT_REQUEST Freescale Semiconductor, Inc... The IOCTL_USBIO_CLASS_OR_VENDOR_OUT_REQUEST operation is used to generate a class or vendor specific device request with a data transfer direction from host to device. lpInBuffer Pointer to a buffer that contains an USBIO_CLASS_OR_VENDOR_REQUEST (page 196) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_GET_DEVICE_PARAMETERS The IOCTL_USBIO_GET_DEVICE_PARAMETERS operation returns USBIO settings related to a device. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Pointer to a buffer that will receive an USBIO_DEVICE_PARAMETERS (page 198) data structure.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_SET_DEVICE_PARAMETERS The IOCTL_USBIO_SET_DEVICE_PARAMETERS operation is used to set USBIO parameters related to a device. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Pointer to a buffer that contains an USBIO_DEVICE_PARAMETERS (page 198) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_GET_CONFIGURATION_INFO The IOCTL_USBIO_GET_CONFIGURATION_INFO operation returns information about the pipes and interfaces that are available after the device is configured. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Pointer to a buffer that will receive an USBIO_CONFIGURATION_INFO (page 204) data structure.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_RESET_DEVICE The IOCTL_USBIO_RESET_DEVICE operation causes a reset at the hub port in which the device is plugged in. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Not used with this operation. Set to NULL. Not used with this operation. Set to zero.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_GET_CURRENT_FRAME_NUMBER The IOCTL_USBIO_GET_CURRENT_FRAME_NUMBER operation returns the current value of the frame number counter that is maintained by the USBD. lpInBuffer Not used with this operation. Set to Null. nInBufferSize Not used with this operation. Set to zero. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_SET_DEVICE_POWER_STATE The IOCTL_USBIO_SET_DEVICE_POWER_STATE operation sets the power state of the device. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Comments Pointer to a buffer that contains an USBIO_DEVICE_POWER (page 206) data structure.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_GET_DEVICE_POWER_STATE The IOCTL_USBIO_GET_DEVICE_POWER_STATE operation returns the current power state of the device. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Pointer to a buffer that will receive an USBIO_DEVICE_POWER (page 206) data structure.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_GET_DRIVER_INFO The IOCTL_USBIO_GET_DRIVER_INFO operation returns version information about the USBIO API and the driver binary that is currently running. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_CYCLE_PORT The IOCTL_USBIO_CYCLE_PORT operation causes a new enumeration of the device. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Not used with this operation. Set to NULL. Not used with this operation. Set to zero.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface This request should be used instead of IOCTL_USBIO_RESET_DEVICE (page 167) if the USB device modifies its descriptors during an USB Reset. Particularly, this is required to implement the Device Firmware Upgrade (DFU) device class specification. Note that the USB device receives two USB Resets after this call. This does not conform to the DFU specification.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_BIND_PIPE The IOCTL_USBIO_BIND_PIPE operation is used to establish a binding between a file handle and a pipe object. lpInBuffer Freescale Semiconductor, Inc... nInBufferSize lpOutBuffer nOutBufferSize Comments See Also Pointer to a buffer that contains an USBIO_BIND_PIPE (page 207) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_UNBIND_PIPE The IOCTL_USBIO_UNBIND_PIPE operation deletes the binding between a file handle and a pipe object. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Not used with this operation. Set to NULL. Not used with this operation. Set to zero.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) ICOTL_USBIO_RESET_PIPE The IOCTL_USBIO_RESET_PIPE operation clears an error condition on a pipe. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Not used with this operation. Set to NULL. Not used with this operation. Set to zero.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_ABORT_PIPE The IOCTL_USBIO_ABORT_PIPE operation causes that all outstanding requests for the pipe are cancelled. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Not used with this operation. Set to NULL. Not used with this operation. Set to zero.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_GET_PIPE_PARAMETERS The IOCTL_USBIO_GET_PIPE_PARAMETERS operation returns USBIO settings related to a pipe. lpInBuffer nInBufferSize Freescale Semiconductor, Inc... lpOutBuffer nOutBufferSize Comments Not used with this operation. Set to NULL. Not used with this operation. Set to zero. Pointer to a buffer that will receive an USBIO_PIPE_PARAMETERS (page 208) data structure.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_SET_PIPE_PARAMETERS Freescale Semiconductor, Inc... The IOCTL_USBIO_SET_PIPE_PARAMETERS operation is used to set USBIO parameters related to a pipe. lpInBuffer Pointer to a buffer that contains an USBIO_PIPE_PARAMETERS (page 208) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) IOCTL_USBIO_PIPE_CONTROL_TRANSFER_IN Freescale Semiconductor, Inc... The IOCTL_USBIO_PIPE_CONTROL_TRANSFER_IN operation is used to generate a specific request (setup packet) for a control pipe with a data transfer direction from device to host. lpInBuffer Pointer to a buffer that contains an USBIO_PIPE_CONTROL_TRANSFER (page 209) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface IOCTL_USBIO_PIPE_CONTROL_TRANSFER_OUT Freescale Semiconductor, Inc... The IOCTL_USBIO_PIPE_CONTROL_TRANSFER_OUT operation is used to generate a specific request (setup packet) for a control pipe with a data transfer direction from host to device. lpInBuffer Pointer to a buffer that contains an USBIO_PIPE_CONTROL_TRANSFER (page 209) data structure. This data structure has to be filled completely by the caller.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.5.3 Data Transfer Requests The USBIO device driver exports an interface to USB pipes that is similar to files. For that reason the Win32 API functions ReadFile and WriteFile are used to transfer data from or to a pipe. The handle that is associated with the USB pipe is passed as hFile to this function. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface Freescale Semiconductor, Inc... Bulk or Interrupt Write Transfers The write operation is used to transfer data from the host (PC) to the USB device. The buffer is divided into data pieces (packets) of the FIFO size of the endpoint. These packets are sent to the USB device. If the last packet of the buffer is smaller than the FIFO size a smaller data packet is transferred.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Freescale Semiconductor, Inc... A read operation will be completed if the whole buffer is filled or a short packet is transmitted. A short packet is a packet that is shorter than the FIFO size of the endpoint. For more information on receiving short packets see below. To read a data packet with a length of zero, the buffer size has to be at least one byte.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface in the header. Because of that, the header contains a variable size array of USBIO_ISO_PACKET (page 212) elements. Freescale Semiconductor, Inc... The Offset member of the USBIO_ISO_PACKET structure specifies the byte offset of the corresponding packet relative to the beginning of the whole buffer and has to be filled by the application for write and for read transfers.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_DRIVER_INFO Freescale Semiconductor, Inc... The USBIO_DRIVER_INFO structure contains version information about the driver binary and the programming interface. Definition typedef struct _USBIO_DRIVER_INFO{ USHORT APIVersion; USHORT DriverVersion; ULONG DriverBuildNumber; ULONG Flags; } USBIO_DRIVER_INFO; Members APIVersion Contains the version number of the application programming interface (API) the driver supports.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_DESCRIPTOR_REQUEST Freescale Semiconductor, Inc... The USBIO_DESCRIPTOR_REQUEST structure provides information used to get or set a descriptor. Definition typedef struct _USBIO_DESCRIPTOR_REQUEST{ USBIO_REQUEST_RECIPIENT Recipient; UCHAR DescriptorType; UCHAR DescriptorIndex; USHORT LanguageId; } USBIO_DESCRIPTOR_REQUEST; Members Recipient Specifies the recipient of the get or set descriptor request.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_FEATURE_REQUEST Freescale Semiconductor, Inc... The USBIO_FEATURE_REQUEST structure provides information used to set or clear a specific feature. Definition typedef struct _USBIO_FEATURE_REQUEST{ USBIO_REQUEST_RECIPIENT Recipient; USHORT FeatureSelector; USHORT Index; } USBIO_FEATURE_REQUEST; Members Recipient Specifies the recipient of the set feature or clear feature request.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_STATUS_REQUEST Freescale Semiconductor, Inc... The USBIO_STATUS_REQUEST structure provides information used to request status for a specified recipient. Definition typedef struct _USBIO_STATUS_REQUEST{ USBIO_REQUEST_RECIPIENT Recipient; USHORT Index; } USBIO_STATUS_REQUEST; Members Recipient Specifies the recipient of the get status request.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_STATUS_REQUEST_DATA The USBIO_STATUS_REQUEST_DATA structure contains information returned by a get status operation. Freescale Semiconductor, Inc... Definition typedef struct _USBIO_STATUS_REQUEST_DATA{ USHORT Status; } USBIO_STATUS_REQUEST_DATA; Member Status Contains the 16-bit value that is returned by the recipient in response to the get status request. The interpretation of the value is specific to the recipient.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_GET_CONFIGURATION_DATA The USBIO_GET_CONFIGURATION_DATA structure contains information returned by a get configuration operation. Freescale Semiconductor, Inc... Definition typedef struct _USBIO_GET_CONFIGURATION_DATA{ UCHAR ConfigurationValue; } USBIO_GET_CONFIGURATION_DATA; Member ConfigurationValue Contains the 8-bit value that is returned by the device in response to the get configuration request.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_GET_INTERFACE The USBIO_GET_INTERFACE structure provides information used to request the current alternate setting of an interface. Definition Freescale Semiconductor, Inc... Member Comments typedef struct _USBIO_GET_INTERFACE{ USHORT Interface; } USBIO_GET_INTERFACE; Interface Specifies the interface number. The meaning is device-specific. Refer to the Universal Serial Bus Specification 1.1, Chapter 9 for more information.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_GET_INTERFACE_DATA The USBIO_GET_INTERFACE_DATA structure contains information returned by a get interface operation. Definition Freescale Semiconductor, Inc... Member Comments typedef struct _USBIO_GET_INTERFACE_DATA{ UCHAR AlternateSetting; } USBIO_GET_INTERFACE_DATA; AlternateSetting Contains the 8-bit value that is returned by the device in response to a get interface request.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_INTERFACE_SETTING Freescale Semiconductor, Inc... The USBIO_INTERFACE_SETTING structure provides information used to configure an interface and its endpoints. Definition typedef struct _USBIO_INTERFACE_SETTING{ USHORT InterfaceIndex; USHORT AlternateSettingIndex; ULONG MaximumTransferSize; } USBIO_INTERFACE_SETTING; Members InterfaceIndex Specifies the interface. The value is defined by the device.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_SET_CONFIGURATION Freescale Semiconductor, Inc... The USBIO_SET_CONFIGURATION structure provides information used to set the device configuration. Definition typedef struct _USBIO_SET_CONFIGURATION{ USHORT ConfigurationIndex; USHORT NbOfInterfaces; USBIO_INTERFACE_SETTING InterfaceList[USBIO_MAX_INTERFACES]; } USBIO_SET_CONFIGURATION; Members ConfigurationIndex Specifies the configuration to be set.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_CLASS_OR_VENDOR_REQUEST Freescale Semiconductor, Inc... The USBIO_CLASS_OR_VENDOR_REQUEST structure provides information used to generate a class or vendor specific device request.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface Comments The values defined by this structure are used to generate an eight byte setup packet for the control endpoint of the device. The format of the setup packet is defined by the Universal Serial Bus Specification 1.1, Chapter 9. The meanings of the values are device dependent. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_DEVICE_PARAMETERS Freescale Semiconductor, Inc... The USBIO_DEVICE_PARAMETERS structure contains device-specific parameter settings of the USBIO driver. Definition typedef struct _USBIO_DEVICE_PARAMETERS{ ULONG Options; ULONG RequestTimeout; } USBIO_DEVICE_PARAMETERS; Members Options This field contains zero or any combination (bit-wise or) of the following values.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface RequestTimeout Specifies the time-out interval, in milliseconds, to be used for synchronous operations. A value of zero means an infinite interval (time-out disabled). The default time-out value is defined by the registry parameter RequestTimeout. This structure is intended to be used with IOCTL_USBIO_GET_DEVICE_PARAMETERS (page 164) and IOCTL_USBIO_SET_DEVICE_PARAMETERS (page 165) operations.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_INTERFACE_CONFIGURATION_INFO Freescale Semiconductor, Inc... The USBIO_INTERFACE_CONFIGURATION_INFO structure provides information about an interface.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface reserved1 Reserved field, set to zero. reserved2 Reserved field, set to zero. This structure is an output of IOCTL_USBIO_GET_CONFIGURATION_INFO (page 166) operations. USB08 Evaluation Board Designer Reference Manual Freescale Semiconductor, Inc... Comments MOTOROLA Universal USB Device Driver (USBIO) For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_PIPE_CONFIGURATION_INFO Freescale Semiconductor, Inc... The USBIO_PIPE_CONFIGURATION_INFO structure provides information about a pipe.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface Freescale Semiconductor, Inc... Interval Specifies the interval, in milliseconds, for polling the endpoint for data as reported in the corresponding endpoint descriptor. The value is meaningful for interrupt endpoints only. Refer to the Universal Serial Bus Specification 1.1, Chapter 9 for more information. InterfaceNumber Specifies the index of the interface the pipe belongs to.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_CONFIGURATION_INFO Freescale Semiconductor, Inc... The USBIO_CONFIGURATION_INFO structure provides information about all interfaces and all pipes available in the current configuration.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_FRAME_NUMBER Freescale Semiconductor, Inc... The USBIO_FRAME_NUMBER structure contains information about the USB frame counter value. Definition typedef struct _USBIO_FRAME_NUMBER{ ULONG FrameNumber; } USBIO_FRAME_NUMBER; Members FrameNumber Contains the current value of the frame counter maintained by the USBD.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_DEVICE_POWER The USBIO_DEVICE_POWER structure contains information about the USB device power states. Freescale Semiconductor, Inc... Definition typedef struct _USBIO_DEVICE_POWER{ USBIO_DEVICE_POWER_STATE DevicePowerState; } USBIO_DEVICE_POWER; Member DevicePowerState Contains the power state of the USB device. The values are defined by the USBIO_DEVICE_POWER_STATE (page 217) enumeration type.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_BIND_PIPE The USBIO_BIND_PIPE structure provides information about the pipe to bind to. Definition Freescale Semiconductor, Inc... Member typedef struct _USBIO_BIND_PIPE{ UCHAR EndpointAddress; } USBIO_BIND_PIPE; EndpointAddress Specifies the address of the endpoint on the USB device that shall be associated with the pipe. The endpoint address is specified as reported in the corresponding endpoint descriptor.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_PIPE_PARAMETERS The USBIO_PIPE_PARAMETERS structure contains pipe specific parameter settings of the USBIO driver. Definition Freescale Semiconductor, Inc... Member typedef struct _USBIO_PIPE_PARAMETERS{ ULONG Flags; } USBIO_PIPE_PARAMETERS; Flags This field contains zero or the following value.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_PIPE_CONTROL_TRANSFER Freescale Semiconductor, Inc... The USBIO_PIPE_CONTROL_TRANSFER structure provides information used to generate a specific control request. Definition typedef struct _USBIO_PIPE_CONTROL_TRANSFER{ ULONG Flags; UCHAR SetupPacket[8]; } USBIO_PIPE_CONTROL_TRANSFER; Members Flags This field contains zero or the following value.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_ISO_TRANSFER Freescale Semiconductor, Inc... The USBIO_ISO_TRANSFER structure provides information used for isochronous data transfers. Definition typedef struct _USBIO_ISO_TRANSFER{ ULONG NumberOfPackets; ULONG Flags; ULONG StartFrame; ULONG ErrorCount; } USBIO_ISO_TRANSFER; Members NumberOfPackets Specifies the number of packets to be sent to or received from the device. Each packet corresponds to an USB frame.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface If USBIO_START_TRANSFER_ASAP is not specified in Flags, this member has to be set by the caller to the frame number this transfer shall start with. An error occurs if the frame number is outside of the valid range. ErrorCount Contains the total number of errors occurred during this transaction when the request is returned by the USBIO.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_ISO_PACKET Freescale Semiconductor, Inc... The USBIO_ISO_PACKET structure defines the size and location of a single isochronous data packet within the transfer buffer that is used for isochronous data transfers. Definition typedef struct _USBIO_ISO_PACKET{ ULONG Offset; ULONG Length; ULONG Status; } USBIO_ISO_PACKET; Members Offset Specifies the offset, in bytes, of the packet relative to the start of the data buffer.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_ISO_TRANSFER_HEADER Freescale Semiconductor, Inc... The USBIO_ISO_TRANSFER_HEADER structure defines the header that has to be contained in the data buffers that are used for isochronous transfers. Definition typedef struct _USBIO_ISO_TRANSFER_HEADER{ USBIO_ISO_TRANSFER IsoTransfer; USBIO_ISO_PACKET IsoPacket[1]; } USBIO_ISO_TRANSFER_HEADER; Members IsoTransfer This is the fixed size part of the header.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.5.5 Enumeration Types USBIO_PIPE_TYPE The USBIO_PIPE_TYPE enumeration type contains values that identify the type of an USB pipe or an USB endpoint respectively. Freescale Semiconductor, Inc... Definition Comments typedef enum _USBIO_PIPE_TYPE{ PipeTypeControl = 0,; PipeTypeIsochronous, PipeTypeBulk, PipeTypeInterrupt } USBIO_PIPE_TYPE; The meaning of the values is defined by he Universal Serial Bus Specification 1.1, Chapter 9.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_REQUEST_RECIPIENT The USBIO_REQUEST_RECIPIENT enumeration type contains values that identify the recipient of an USB device request. Freescale Semiconductor, Inc... Definition Comments typedef enum _USBIO_REQUEST_RECIPIENT{ RecipientDevice = 0, RecipientInterface, RecipientEndpoint, RecipientOther } USBIO_REQUEST_RECIPIENT; The meaning of the values is defined by the Universal Serial Bus Specification 1.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO_REQUEST_TYPE The USBIO_REQUEST_TYPE enumeration type contains values that identify the type of an USB device request. Definition Freescale Semiconductor, Inc... Comments typedef enum _USBIO_REQUEST_TYPE{ RequestTypeClass = 1, RequestTypeVendor } USBIO_REQUEST_TYPE; The meaning of the values is defined by the Universal Serial Bus Specification 1.1, Chapter 9.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface USBIO_DEVICE_POWER_STATE The USBIO_DEVICE_POWER_STATE enumeration type contains values that identify the power state of a device. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.5.6 Error Codes Table E-2. Error Codes Defined by the USBIO Device Driver Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Programming Interface Table E-2. Error Codes Defined by the USBIO Device Driver (Continued) Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.6 USBIO Class Library Freescale Semiconductor, Inc... The USBIO Class Library (USBIOLIB) contains classes which provide wrapper functions for all of the features supported by the USBIO programming interface. Using these classes in an application is more convenient than using the USBIO interface directly. The classes are designed to be capable of being extended.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO Class Library For each device-related operation the USBIO driver supports, a member function exists in the CUsbIo class. The function takes the parameters that are required for the operation and returns the status that is reported by the USBIO driver. E.6.2 CUsbIoPipe Class Freescale Semiconductor, Inc... The class CUsbIoPipe extends the CUsbIo class by functions that are related to an USBIO pipe object.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.6.3 CUsbIoThread Class Freescale Semiconductor, Inc... The class CUsbIoThread provides basic functions needed to implement a worker thread that performs input or output operations on a pipe. It includes functions that are used to start and stop the worker thread. The CUsbIoThread class does not implement the thread’s main routine. This has to be done in a derived class.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO Demo Application buffer with data. After that, the buffer is sent to the pipe using the Write function of the CUsbIoPipe class. After all buffers are submitted the routine waits for the first pending buffer to complete. If a buffer is completed by the USBIO driver the buffer is put back to the pool and the main loop is started from the beginning. Freescale Semiconductor, Inc... E.6.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) The main dialog contains several dialog pages which allow to access the device-related driver operations. From the dialog page “Pipes” a separate dialog can be started for each configured pipe. The pipe dialogs are non-modal. More than one pipe dialog can be opened at a given point in time. Freescale Semiconductor, Inc... E.7.1 Dialog Pages for Device Operations E.7.1.1 Device This page allows to scan for available devices.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO Demo Application E.7.1.3 Configuration This page is used to set a configuration, to unconfigure the device, or to request the current configuration. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.7.1.6 Class or Vendor Request By using this page a class or vendor specific request can be send to the USB device. Freescale Semiconductor, Inc... Related driver interfaces: • IOCTL_USBIO_CLASS_OR_VENDOR_IN_REQUEST (page 162) • IOCTL_USBIO_CLASS_OR_VENDOR_OUT_REQUEST (page 163) E.7.1.7 Feature This page can be used to send set or clear feature requests.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) USBIO Demo Application E.7.1.9 Dialog Pages for Pipe Operations Freescale Semiconductor, Inc... Three different types of pipe dialogs can be selected. For IN pipes a Read from pipe to file dialog and a Read from pipe to output window dialog can be activated. For OUT pipes a Write from file to pipe dialog can be started. The pipe dialog Read from pipe to output window cannot be used with isochronous pipes.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.7.1.12 Control This dialog page allows to access user-defined control pipes. It cannot be used to access the default pipe (endpoint zero) of an USB device. Freescale Semiconductor, Inc... Related driver interfaces: • IOCTL_USBIO_PIPE_CONTROL_TRANSER_IN (page 180) • IOCTL_USBIO_PIPE_CONTROL_TRANSFER_OUT (page 181) E.7.1.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Installation Issues E.7.1.15 Write from File to Pipe This dialog page allows to write data from a file to the pipe. This transfer type can be used for Isochronous pipes as well. The synchronization type of the isochronous pipe has to be “asynchronous”. The application does not support data rate feedback. Related driver interfaces: Freescale Semiconductor, Inc... • WriteFile(); • IOCTL_USBIO_ABORT_PIPE (page 177) E.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Freescale Semiconductor, Inc... The steps required to install the USBIO driver by using the Installation Wizard are described below. • On Windows 2000 make sure you are logged on as an administrator or have enough privileges to install device drivers on the system. In general, special privileges are required to install device drivers on Windows 2000. • Connect your USB device to the system.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Installation Issues Freescale Semiconductor, Inc... device. It is built from a bus identifier (USB), the 16-bit vendor ID (VID), the 16-bit product ID (PID), and optionally the revision code (REV). The IDs and the revision code are reported by the device in he USB Device Descriptor. If your device is not shown in the list make sure it is plugged in properly and you have finished the New Hardware Wizard as described above.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) and in a location of your choice. The Installation Wizard copies also the USBIO driver binary file usbio.sys to the same location as the INF file. You can use these files at a later time to install the USBIO driver manually. Freescale Semiconductor, Inc... You can use the button labeled “Run USBIO Application” to start the demo application that is included in the USBIO package.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Installation Issues Freescale Semiconductor, Inc... As shown in the last example a Hardware ID can also describe a device class and subclass. This makes it possible to provide a driver that will be used whenever the system detects a device that belongs to a specific device class. An example for such a kind of driver is the system-provided HID mouse driver.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Now you are prepared to start the driver installation. The required steps are described below. Freescale Semiconductor, Inc... • Connect your USB device to the system. After plugging in the device Windows launches the New Hardware Wizard and prompts you for a device driver. Provide the New Hardware Wizard with the location of your installation files (usbio.inf and usbio.sys).
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Installation Issues • For some device classes, especially HID devices like mice and keyboards, Windows does not allow you to install a driver with a different device class. That means you have to modify the device class entry in the [Version] section of the usbio.inf file to match with the device’s class. The device class is specified by the keywords Class and ClassGUID in the [Version] section. Freescale Semiconductor, Inc...
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) E.8.3 Uninstalling USBIO Freescale Semiconductor, Inc... In order to uninstall USBIO for a given device the Device Manager has to be used. The Device Manager can be accessed by right-clicking on “My Computer” icon on the desktop and then choosing Properties. In the Device Manager double-click on the entry of the device and choose the property page that is labeled “Driver”.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Installation Issues E.8.4 Building a Customized Driver Setup Freescale Semiconductor, Inc... When the USBIO driver is included and shipped with a retail product some setup parameters should be customized. This is necessary because the USBIO device driver might be used by several vendors and it is possible that an user has two products and that both of them use the USBIO driver.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) • Edit the following values in the [Strings] section to specify a location in the Registry that is used to store the USBIO driver’s configuration parameters: S_ConfigPath S_DeviceConfigPath1 Freescale Semiconductor, Inc... Note the S-ConfigPath should specify a location that is a subkey of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. The name of the subkey should be the same as the name you choosed for the driver binary.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Registry Entries E.9 Registry Entries The behaviour of the driver can be customized by startup parameters stored in the registry. The parameters are stored under a path that is specified in the INF file. This registry path is \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\USBIO\Parameters Freescale Semiconductor, Inc... by default.
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Table E-3. Registry Parameters Supported by the USBIO Driver (Continued) Value PowerStateOnClose Freescale Semiconductor, Inc... MinPowerStateUsed MinPowerStateUnused Min Default Max Description 0 3 3 Device power state that will be set when the device is closed (last handle is closed). 0...3 correspond to D0...D3 3 The minimum power state of the device while it is used (open handles exist).
Freescale Semiconductor, Inc. Universal USB Device Driver (USBIO) Related Documents Freescale Semiconductor, Inc... E.10 Related Documents • Universal Serial Bus Specification 1.0, 1.1 • USB device class specifications (Audio, HID, Printer, etc.) • Windows 2000 DDK Documentation • Windows 98 DDK Documentation • Microsoft Platform SDK Documentation E.11 Light Version Limitations The light version for MCT Elektronikladen of the USBIO driver has the following limitations: 1.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Universal USB Device Driver (USBIO) Designer Reference Manual 242 USB08 Evaluation Board Universal USB Device Driver (USBIO) For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... blank For More Information On This Product, Go to: www.freescale.
Freescale Semiconductor, Inc. USA/EUROPE/LOCATIONS NOT LISTED: Motorola Literature Distribution P.O. Box 5405 Denver, Colorado 80217 1-303-675-2140 1-800-441-2447 TECHNICAL INFORMATION CENTER: 1-800-521-6274 JAPAN: Motorola Japan Ltd. SPS, Technical Information Center 3-20-1, Minami-Azabu, Minato-ku Tokyo 106-8573 Japan 81-3-3440-3569 MC68HC08AS60 Technical Data How to Reach Us: ASIA/PACIFIC: Motorola Semiconductors H.K. Ltd. Silicon Harbour Centre 2 Dai King Street Tai Po Industrial Estate Tai Po, N.T.