Page 3
USB08 Universal Serial Bus Evaluation Board Using the MC68HC908JB8 By: Dipl.-Ing. Oliver Thamm Motorola and are registered trademarks of Motorola, Inc. DigitalDNA is a trademark of Motorola, Inc. USB08 Evaluation Board MOTOROLA MCT Elektronikladen GbR Hohe Str. 9-13 04107 Leipzig...
Page 4
Motorola product could create a situation where personal injury or death may occur. Should Buyer purchase or use...
(universal serial bus) evaluation board demo application. The main component of the USB08 is the Motorola MC68HC908JB8 8-bit microcontroller (MCU). 1.3 Required System Configuration To connect the USB08, you will need a personal computer (PC) with one of the following Microsoft • •...
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. The connection of the demo board is made directly to the USB socket of the PC or, as shown in the The board supply current can be delivered by the USB connection.
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. USB08 Evaluation Board MOTOROLA Figure 1-2. Found New Hardware Screen USB08 Quick Start...
USB08 Quick Start The hardware assistant, information for the USB08 evaluation board. Click the Next button. NOTE: The installation using the Windows 2000 operating system requires administrator rights. Designer Reference Manual Figure 1-3, now tries to find the suitable driver Figure 1-3.
Insert the USB08 product CD into the CD-ROM drive and mark the appropriate check box CD-ROM drives as shown in the Next button. USB08 Evaluation Board MOTOROLA Figure 1-4. Locate Driver Files Screen USB08 Quick Start USB08 Quick Start Driver Installation Figure 1-4.
USB08 Quick Start As shown in information file usbio_el.inf in the root directory of the CD ROM. Confirm this selection by clicking Next. Designer Reference Manual Figure 1-5, the hardware assistant will find the driver Figure 1-5. Driver Files Search Results Screen...
USB device will be ready for use. NOTE: The installation does not require a restart of the computer, since this is a true Plug & Play installation. USB08 Evaluation Board MOTOROLA (Figure 1-6), the driver installation will be completed and the Figure 1-6.
USB08 demo board. The LED symbols on the left upper side of the application window can be switched on or off by pressing the keys of the USB08 demo board. Designer Reference Manual...
(start button/settings/control panel/ system/device manager). The catalog entry USBIO controlled devices and the device entry USB08 Evaluation Board are visible only if the hardware is present. See Figure 1-8. Driver Entry for USB08 in the Device Manager Window...
Page 26
USB08 Quick Start 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.
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.
2.3.2 USB08 Evaluation Board Features of the USB08 evaluation board include: • • • • • • • • • • • The USB08 evaluation board is shown in USB08 Evaluation Board MOTOROLA M68HC908JB8 MCU packaged in a 28-pin small-outline...
Hardware Description 2.4 Circuit Description A schematic of the USB08 demo board is provided in of Materials and 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. For the USB08...
L1 and L2 are used. However, these measures are optional. The reset system of the M68HC08 shows clear differences from other Motorola MCUs (M68HC11 and M68HC12). For example, the capacitor C19 at the reset pin of this circuit could never be used in an M68HC11 system.
(ADC). The ADC implementation is described in detail in as in the application note entitled Simple A/D for MCUs without Built-in A/D Converters, Motorola document order number AN477/D. This application note can be found on the World Wide Web at: http://www.motorola.com/semiconductors/ The software ADC senses the resistance of: •...
7–10 V to the IRQ pin of the MCU. This voltage is generated by the RS232 transceiver’s (IC2) charge pump and limited to 8.2 V using the breakdown diode D7. JP1-A USB08 Evaluation Board MOTOROLA Table 2-1. Port A Monitor Mode Entry Levels...
A sub-D9 connector (crimping connection) on the PC side Table 2-2. Table 2-2. Monitor Mode Cable Pin Configuration X2 Pin USB08 Monitor T1OUT R1IN (3.3 V); however, the transceiver IC2 works with V Hardware Description PC RS232 Sub-D 9 Pin (5 V). The USB08 Evaluation Board MOTOROLA...
USB08 board represents the device side. The reverse case happens, if a serial liquid crystal display (LCD) is to be operated at the user RS232 port. In this configuration, the USB08 board is the host and the LCD module represents the device side. The necessary RxD/TxD crossing is done by configuration of the bridges BR1 and BR2 in positions 2 and 3.
Hardware Description 2.4.5 Power Supply 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 V USB.
PTC0 can be used without restriction. Closed* PTC0 serves as transmission line for the user RS232. Self-powered: power supply via voltage regulator 2-3* Bus-powered: power supply via USB 2-4. Table 2-4 shows the solder bridges configuration. Hardware Description Table 2-3. Function USB08 Evaluation Board MOTOROLA...
Solder Bridge and BR2 1. * = delivery status USB08 Evaluation Board MOTOROLA Figure 2-4. Solder Bridge Placement on Downside of the PCB Table 2-4. Solder Bridges Configuration Position 1-2* User RS232 configured in external device mode (PC) User RS232 configured in host mode (LCD connection) is not present at user RS232 port (standard).
0x0140 0xDC00 0xFC00 0xFFE0 For a detailed description of the MC68HC908JB8 memory map, in particular the addresses of control registers and interrupt vectors, refer to the MC68HC908JB8 Technical Data, Motorola document order number MC68HC908JB8/D. USB08 Evaluation Board MOTOROLA N.C. N.C.
3.13 3.2 Introduction This section describes the structure and interaction of the software modules. These software modules, running on the Motorola microcontroller MC68HC908JB8, form the firmware of the USB08 reference design. USB08 Evaluation Board MOTOROLA Section 3. Software Module Descriptions Introduction .
C startup code is required. U08232.C is merged. U08USB.C is also translated at the same time. It contains the static there is a corresponding header file (* H) with the same base Software Module Descriptions U08USB.C is used, the file USB08 Evaluation Board MOTOROLA...
U08LED.H LED Functions U08ADC.H Soft ADC Module Figure 3-1. Structure and Dependencies of the Firmware Files USB08 Evaluation Board MOTOROLA shows the structure and interaction of the modules and files A list of source modules to be complied Translation options...
Page 46
This batch file can be invoked under the MS-DOS to translate and link USB08 firmware components. The result of this process is a S-record file named USB08.S19, which can be loaded into the FLASH memory of the MC68HC908JB8. Another important file for controlling the translation is the linker file USB08.LKF:...
0x0076 0x0118 0xDC00 0xE300 0xFFF0 USB08 Evaluation Board MOTOROLA 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.
RS232) is renamed by a macro to getPipe(). If the USB version is active, getPipe() is mapped to getUSB(). initPipe() — communication module (RS232 or USB) initLED() — LED readouts initKey() — keyboard entry initSADC() — software analog-to-digital converter (ADC) Software Module Descriptions USB08 Evaluation Board MOTOROLA...
MC68HC908JB8 uses eight (7 + 1) vectors. The last, highest position (address 0xFFFE/0xFFFF) is used by the reset vector. In the USB08 reference design, the key pad interrupts of the input/output (I/O) port A are used as well as the USB interrupts in case the USB implementation was activated.
MC68HC908JB8 keyboard interrupt module (KBI). The USB08 evaluation board uses three single keys which are connected to port lines PTA[4:6]. The switch noise reduction is performed via a resistor-capacitor (RC) combination at each key. This combination is made by: •...
Page 51
KEY_MASK=0x02; KEY_MASK=0x80; KEY_MASK=0x70; KEY_MASK=0xF0; KEY_MASK=0xFF; The port bits included in the key scan have to follow one after another. USB08 Evaluation Board MOTOROLA KEY_FIRST=0; / / one key at PTA[0 ] KEY_FIRST=1; / / onea key at PTA[1 ] KEY_FIRST=7;...
The working principle is shown in Figure 3-2. Measurement of Resistor Values Using a Digital Input Designer Reference Manual Software Module Descriptions Figure 3-2. USB08 Evaluation Board MOTOROLA...
Page 53
The result can be calculated using the relationship: The range of values of the result is between 0 and 1, if R1max = R0. The software ADC module of the USB08 application serves three A/D channels (see threshold voltage is sensed via the port pins PTE[0..2]. The switch function for charging/discharging the capacitor is realized by switching the port pins as outputs.
A detailed discussion of the software A/D converter used here is contained in the application note entitled Simple A/D for MCUs without Built-in A/D Converters, Motorola document order number AN477/D. This application note can be found on the World Wide Web at: http://www.motorola.com/semiconductors/...
Page 55
It has to be taken into account that the bit rate production is determined by a certain number of execution cycles by the central processor unit (CPU), which temporarily USB08 Evaluation Board MOTOROLA initSSCI() — initialization of the software SCI module getSSCI() —...
PC over an USB connection. This module can be linked (alternatively to the RS232 communication module U08232.C) into the USB08 application when the macro USE_USB_PIPE in the main module Just like RS232, the USB uses serial streams for the data communication.
Cosmic C Compiler. This compiler supports the complete language scope available for ANSI-C. The porting of the firmware to another M68HC08 ANSI-C compiler should be possible without any problems, USB08 Evaluation Board MOTOROLA Filling of the receive buffer Sending of the characters in the send buffer via the USB Interface.
Page 58
For example, the Cosmic C Compiler uses the modification @interrupt: @interrupt void interrupt_handler(); Other compilers use “#pragma” instructions to mark interrupt functions. Designer Reference Manual U08232.C Software Module Descriptions U08ADC.C also contain USB08 Evaluation Board MOTOROLA...
4.3 Characteristics of the USB08 Reference Design The USB08 reference design shows, via a detailed example, how the integrated USB module of the Motorola microcontroller unit (MCU) MC68HC908JB8 can be used. The MCU is used for a measuring and control application and exchanges data with a PC via the USB.
Page 61
USB devices and two or three commercial hubs. This reference design contains USB08 evaluation board firmware; therefore, this Plug & Play demo application can be evaluated immediately. Beyond that, all source code is provided in the form of C modules for the M68HC08 Cosmic C compiler.
Transfers 0 to 8 data bytes Data As before (toggle Data0/1) Handshake Information was accepted Handshake Busy — send again later Handshake Information was incorrect Universal Serial Bus (USB) Interface Function Table 4-1, the bus traffic consists of USB08 Evaluation Board MOTOROLA...
Page 63
STALL packet. SETUP Transaction OUT Transaction Regarding IN transactions, the data packet is sent by the device and the host closes the transaction with a handshake packet. IN Transaction USB08 Evaluation Board MOTOROLA Host Host SETUP (ADDR,EP) DATA0 (D1..D8)
Page 64
In the status stage, empty DATA1 packets are sent. Designer Reference Manual Host Device IN (ADDR,EP) Setup Stage Status Stage SETUP,DATA0,ACK IN,DATA1,ACK Setup Stage Data Stage SETUP,DATA0,ACK IN,DATA1,ACK (...) Universal Serial Bus (USB) Interface Status Stage OUT,DATA1,ACK USB08 Evaluation Board MOTOROLA...
For this, the macro USB_IPUE must be defined as 1. Alternatively, it is possible to add an external resistor on the USB08 evaluation board (see 4.5.2 Endpoint Configuration The integrated USB module of the MCHC908JB8 supports three endpoints.
TX1ST OSTALL0 ISTALL0 TX1STR = Unimplemented Figure 4-2. USB Control Register 3 (UCR3) Universal Serial Bus (USB) Interface Function Device configuration Data transfer to the host Data transfer to the device PULLEN ENABLE2 ENABLE1 USB08 Evaluation Board MOTOROLA Bit 0...
In addition, the end-of-packet interrupt will be enabled with EOPIE (suspend handling). USB08 Evaluation Board MOTOROLA USB Implementation in the Reference Design VECJB8.C). In the reference design, it points to...
1 (UIR1). Read: Write: Reset: Since a receive interrupt could be initiated by an OUT packet for the endpoint EP0, it must be determined whether the received information USB08 Evaluation Board MOTOROLA Bit 7 EOPF RSTF TXD2F RXD2F = Unimplemented Figure 4-5.
// Standard Request Code iword wValue; // Value Field iword wIndex; // Index or Offset Field iword wLength; // No. of Bytes to transfer (Data Stage) } setup_buffer; Universal Serial Bus (USB) Interface RP0SIZ3 RP0SIZ2 RP0SIZ1 RP0SIZ0 USB08 Evaluation Board MOTOROLA Bit 0...
The device address is still located in the SetupBuffer. The service routine isrUSB() is again activated by a transmit interrupt for EP0. After decoding, if it was determined that the cause of the interrupt was an IN USB08 Evaluation Board MOTOROLA Bit 7...
SET_ADDRESS, described above. Designer Reference Manual Bit 7 USBEN UADD6 UADD5 UADD4 = Unimplemented Figure 4-8. USB Address Register (UADDR) Universal Serial Bus (USB) Interface Bit 0 UADD3 UADD2 UADD1 UADD0 USB08 Evaluation Board MOTOROLA...
Page 73
The interchanging between DATA0 and DATA1 packets is called a data toggle and serves for error protection. Detailed information about the descriptors used in the reference design are contained in USB08 Evaluation Board MOTOROLA Appendix B. USB08 Universal Serial Bus (USB) Interface...
SetupBuffer. If this field is larger than zero, the USB08 is ready to be put into operation. For this purpose, the transmitter of endpoint 1 and the receiver of endpoint 2 will be enabled and the internal status of the device changed to CONFIGURED.
1. If RXD2F is set, an endpoint 2 receive interrupt is pending. Read: Write: Reset: USB08 Evaluation Board MOTOROLA Data Communication via Endpoints EP1 and EP2 Hands over the code for the endpoint concerned (0 81 for EP1, 0 02 for EP2) to wIndex...
10 ms. That means, Designer Reference Manual Bit 7 R2SEQ TXACK TXNAK TXSTL = Unimplemented Figure 4-10. USB Status Register 1 (USR1) Universal Serial Bus (USB) Interface Bit 0 RP2SIZ3 RP2SIZ2 RP2SIZ1 RP2SIZ0 U = Unaffected USB08 Evaluation Board MOTOROLA...
Then, the endpoint answers a polling only with a NAK packet and does not occupy any additional bandwidth by sending an empty data packet. USB08 Evaluation Board MOTOROLA Data Communication via Endpoints EP1 and EP2...
1. The vendor ID (VID) marks the manufacturer. Normally, vendor 2. The product ID is (just like the VID) a 16-bit number. The PID The USB08 reference design uses the registered vendor ID of the manufacturer MCT Elektronikladen, which is 0x0C70. The product ID for the demo application is 0x0000.
Page 79
1. First, the complexity of the USB handling increases, particularly on 2. Secondly and by far more devastating, is the circumstance that USB08 Evaluation Board MOTOROLA the firmware side. There are additional procedures, protocols, and descriptors to implement. Definitions of these additions are not a...
Page 80
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"...
Designer Reference Manual — USB08 Evaluation Board Appendix A. Supported Standard Device Requests Definition of the supported standard device requests are given here. SET_ADDRESS GET_DESCRIPTOR SET_CONFIGURATION CLEAR_FEATURE USB08 Evaluation Board MOTOROLA Standard Device Request Supported Standard Device Requests Supported Options...
Page 82
Supported Standard Device Requests Designer Reference Manual USB08 Evaluation Board Supported Standard Device Requests MOTOROLA...
// No of Interfaces supported by this Conf // Designator Value for *this* Configuration // Index of String Desc for this Conf 0xc0, // Self-powered, no Remote-Wakeup // Max. Power Consumption in this Conf (*2mA) }; // end of ConfigDesc USB08 Descriptors USB08 Evaluation Board MOTOROLA...
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 //============================================================================ //-- Data Type Definitions --------------------------------------------------- typedef struct { uchar lo;...
Page 94
// Characteristics (Direction,Type,Recipient) // Standard Request Code // Value Field // Index or Offset Field // Number of Bytes to transfer (Data Stage) 0x00 // (not used here) 0x01 0x02 0x03 0x04 0x80 Source Code Files USB08 Evaluation Board MOTOROLA...
U08MAIN.C //============================================================================ // 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.: View/Edit this File with TAB-Size=4...
Page 98
Designer Reference Manual // USB Reset Disable, COP Disable // clear TSTOP, Prescaler=0 // just for Debugging // init RS232 or USB Pipe // init LED Output // init Key Input // init Soft ADC Source Code Files USB08 Evaluation Board MOTOROLA...
U08DESC.C //============================================================================ // 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.: View/Edit this File with TAB-Size=4...
Page 101
String0Desc[SD0LEN] = { // Size, Type SD0LEN, DT_STRING, // LangID Codes 0x09, 0x04 USB08 Evaluation Board MOTOROLA // Size of this Descriptor in Bytes // Descriptor Type (=4) // Number of *this* Interface (0..) // Alternative for this Interface (if any) // No of EPs used by this IF (excl.
Page 106
// prepare to send empty DATA1 at next IN Transaction UCR0 = BM_T0SEQ + BM_TX0E + 0; //---------------------------------------------------------------------------- Designer Reference Manual // EP1 Tx Enable, Data Size is 0 // EP2 Rx Enable // deactivate EP1 // deactivate EP2 Source Code Files USB08 Evaluation Board MOTOROLA...
Page 107
UCR0 = BM_T0SEQ + BM_TX0E + n; // check if this is the last DATA packet to send if(n < 8) SetupBuffer.bRequest = REQUEST_COMPLETE; //---------------------------------------------------------------------------- USB08 Evaluation Board MOTOROLA // Get Device Descriptor // Get Configuration Descriptor // Get String Descriptor...
Page 108
// Non-Standard Requests will not be handled! // Standard Request Decoder: // 1 // 5 // 6 // 9 // Activate EP0 Receiver // Deactivate EP0 Receiver + Transmitter // Reset EP0 Receive Flag // Activate EP0 Receiver Source Code Files USB08 Evaluation Board MOTOROLA...
Page 109
// and do not re-enable EP0 Transmitter, since there is no more // data to send break; default: forceSTALL(); break; //---------------------------------------------------------------------------- USB08 Evaluation Board MOTOROLA // Deactivate EP0 Transmitter // Reset EP0 Transmit complete Flag Source Code Files Source Code Files Contents...
Page 110
// Deactivate EP1 Transmitter // Reset EP1 Transmit complete Flag // Deactivate EP2 Receiver // Reset EP2 Receive Flag // Check Transfer Size // wait if TxBuffer is full // Activate EP2 Receiver Source Code Files USB08 Evaluation Board MOTOROLA...
; initialize stack pointer ; start of bss ; start loop ; clear byte ; next byte ; up to the end ; and loop ; initialize stack pointer ; execute main ; and stay here Source Code Files USB08 Evaluation Board MOTOROLA...
Source Code Files USB08.MAP Map of usb08.h08 from link file usb08.lkf - Sun Jan 07 19:29:30 2001 Segments: start 0000dc00 end 0000e263 length start 0000e263 end 0000e2f5 length start 00000040 end 00000040 length start 00000040 end 00000041 length start 00000041 end 00000041 length...
Page 123
__sbss 00000041 __stack 0000013f __stext 0000dc00 __vectab 0000fff0 USB08 Evaluation Board MOTOROLA (15) defined in u08main.o section .const defined in u08main.o section .const defined in u08main.o section .const *** not used *** defined in u08main.o section .const *** not used *** defined in u08main.o section .const...
Page 124
.text used in crtsjb8.o defined in u08main.o section .text defined in u08adc.o section .text defined in u08main.o section .text defined in u08main.o section .text defined in (c:\programme\cosmic\cx08\Lib\libm.h08) ireg.o section .ubsct used in u08main.o Source Code Files USB08 Evaluation Board MOTOROLA...
Designer Reference Manual — USB08 Evaluation Board Appendix D. Bill of Materials and Schematic This appendix includes: • • USB08 Evaluation Board MOTOROLA USB08 V 1.01 bill of materials — USB08 evaluation board schematic — Bill of Materials and Schematic...
R8, R13, R14, R15 R10, R11, R12, R19 R16, R17 S1, S2, S3, S4, S5 X2, X3 Designer Reference Manual Table D-1. Bill of Materials for USB08 V 1.01 Part Bill of Materials and Schematic Value 22 pF 100 nF 10 µF...
Designer Reference Manual — USB08 Evaluation Board Appendix E. Universal USB Device Driver (USBIO) USBIO Universal USB Device Driver for Windows 98, Windows Millennium, and Windows 2000 Reference Manual Version 1.41 2000, December 20 By: Thesycon Copyright All Rights Reserved Reprinted with permission from Thesycon Systemsoftware &...
By using the generic USB device driver USBIO it is possible to get any USB device up and running without spending the time and the effort of developing a device driver. Especially, this might be useful during USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO)
Win32 application Provides an interface to USB endpoints (pipes) that is similar to files Fully supports asynchronous (overlapped) data transfer operations Supports the USB transfer types Control, Interrupt, Bulk, and Isochronous Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 137
USBIO driver. But the delays that might be caused by the thread scheduler of the operating system should be taken into consideration. USB08 Evaluation Board MOTOROLA Multiple USB devices can be controlled by USBIO at the same time...
Host Controller Driver. Which driver is used depends on the main-board chip set for the PC. For instance, Intel chipsets contain an Universal Host Controller. Universal USB Device Driver (USBIO) Other USB device drivers USBHUB.SYS Figure E-1: USB08 Evaluation Board MOTOROLA...
Page 139
USBDI level. For that reason the programming interface of the USBIO device driver (USBIOI) is closely related to the USBDI. But many of the functions cannot be translated in an one-to-one relationship. USB08 Evaluation Board MOTOROLA USBD.SYS is the USB Bus Driver that controls and manages all devices connected to the USB.
A default Device Interface ID (GUID) is built into the USBIO driver. This default ID is defined in USBIO_I.H. Each device object created by USBIO is registered by using this default ID. The default Device Designer Reference Manual SetupDiGetClassDevs() SetupDiEnumDeviceInterfaces() SetupDiGetDeviceInterfaceDetail() Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 141
Former versions of USBIO (up to V1.16) used a different device naming scheme. The device name was generated by appending an instance number to a common prefix. So the device names were static. In order USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO)
The following example is intended to explain the relationships described above. In and two associated pipe objects exist within the USBIO data base. Designer Reference Manual Figure E-2 a configuration is shown where one device object Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
0x81 to its buffers. Handle3 is bound to the OUT pipe 0x02. By using Handle3 with the function WriteFile() the application can initiate data transfers from its buffers to endpoint 0x02 of the device. USB08 Evaluation Board MOTOROLA Handle1 User Mode...
// use DevDetail->DevicePath as device name FileHandle = CreateFile( Designer Reference Manual NULL,NULL,DIGCF_DEVICEINTERFACE|DIGCF_PRESENT); &g_usbioID, DEVICE_NUMBER, &DevData ); 0, &ReqLen, NULL); ReqLen, &ReqLen, NULL); DevDetail->DevicePath, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, OPEN_EXISTING, 0 /* or FILE_FLAG_OVERLAPPED */, NULL); Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 145
More code samples that show the usage of the USBIO programming interface can be found in the USBIO Class Library (USBIOLIB), the USBIO demo application (USBIOAPP), and the simple console applications ReaderCpp and ReadPipe. USB08 Evaluation Board MOTOROLA IOCTL_USBIO_SET_CONFIGURATION, &SetConfiguration, sizeof(SetConfiguration), NULL,0, &BytesReturned,...
For example, if a long time measurement should be performed the computer has to be prevented from going power down. For a description of the supported registry parameters, see Entries. Designer Reference Manual Universal USB Device Driver (USBIO) E.9 Registry USB08 Evaluation Board MOTOROLA...
Page 147
The application may ignore this error and repeat the request. The re-submitted requests will be queued by the USBIO driver. They will be executed after the device is back in state D0. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO)
So it may crash at some later point in time. The bug seems to be “well known”, it was discussed in some Usenet groups. Designer Reference Manual for details. We strongly recommend to Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
// pointer to buffer to supply input data // size of input buffer // pointer to buffer to receive output data // size of output buffer // output byte count // for asynchronous operation Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
The size of the output buffer should be a multiple of the packet size of the default pipe (endpoint zero). USB08 Evaluation Board MOTOROLA 187) data structure. This data structure has to be filled completely...
Specifies the size, in bytes, of the buffer pointed to by lpOutBuffer. nOutBufferSize Comments USB devices do not have to support this operation. Designer Reference Manual 187) data structure. This data structure has to be filled completely Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Comments The SET_FEATURE request appears on the bus with the parameters specified in the IOCTL_USBIO_SET_FEATURE structure. USB08 Evaluation Board MOTOROLA 188) data structure. This data structure has to be filled completely Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO)
Comments The CLEAR_FEATURE request appears on the bus with the parameters specified in the IOCTL_USBIO_CLEAR_FEATURE structure. Designer Reference Manual 188) data structure. This data structure has to be filled completely Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
The GET_STATUS request appears on the bus with the parameters specified in the USBIO_STATUS_REQUEST function returns the structure USBIO_STATUS_REQUEST_DATA (page USB08 Evaluation Board MOTOROLA 189) data structure. This data structure has to be filled completely 190) which contains two bytes of data.
Comments A GET_CONFIGURATION request appears on the bus. The structure USBIO_GET_CONFIGURATION_DATA configuration value. A value of zero means “not configured”. Designer Reference Manual Universal USB Device Driver (USBIO) (page 191) data structure. (page 191) returns the USB08 Evaluation Board MOTOROLA...
Comments A GET_INTERFACE request appears on the bus. The structure USBIO_GET_INTERFACE_DATA alternate setting of the interface specified in USBIO_GET_INTERFACE. USB08 Evaluation Board MOTOROLA 192) data structure. This data structure has to be filled completely Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO)
The USBD does not recognize the pipe correctly and returns an invalid pipe type, when the additional bits in bmAttributes are not masked off. This has to be done by the application. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
By default, the configuration descriptor that is reported by the device is passed to the USBD. If an user-defined configuration descriptor is stored with IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR descriptor is used. USB08 Evaluation Board MOTOROLA 195) data structure. This data structure has to be filled completely 195).
A SET_CONFIGURATION request with the configuration value 0 appears on the bus. All pipe handles associated with the device will be unbound and all pending requests will be cancelled. Designer Reference Manual Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
If this request returns with success, new pipe objects are available. The operation IOCTL_USBIO_GET_CONFIGURATION_INFO used to query all available pipes and interfaces. USB08 Evaluation Board MOTOROLA 194) data structure. This data structure has to be filled completely Universal USB Device Driver (USBIO)
OUT token with a zero length data packet. If no data phase is required an IN token appears on the bus with a zero length data packet from the USB device for acknowledge. Designer Reference Manual Universal USB Device Driver (USBIO) (page 196) data structure. USB08 Evaluation Board MOTOROLA...
Page 163
IN token with a zero length data packet from the device. If no data phase is required an IN token appears on the bus and the device acknowledges with a zero length data packet. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO)
The default state of the device parameters is defined by a set of registry parameters which are read by the USBIO driver at startup. The current state may be queried using this request. Designer Reference Manual 198) data structure. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
The default state of the device parameters is defined by a set of registry parameters which are read by the USBIO driver at startup.The current state may be modified using this request. USB08 Evaluation Board MOTOROLA 198) data structure. This data structure has to be filled completely...
Comments This operation returns information about all active pipes and interfaces that are available in the current configuration. Designer Reference Manual 204) data structure. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Reset while the device is configured. If the device changes its USB descriptor set during an USB Reset the IOCTL_USBIO_CYCLE_PORT instead of IOCTL_USBIO_RESET_DEVICE. This request does not work if the system-provided multi-interface driver is used. USB08 Evaluation Board MOTOROLA USB Reset GET_DEVICE_DESCRIPTOR USB Reset SET_ADDRESS...
The returned frame number is a 32 bit value. The lower 11 bits of this value correspond to the frame number value in the Start Of Frame token on the bus. Designer Reference Manual 205) data structure. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
If the device is set to a power state different from D0 all pending requests should be cancelled before. See Also data structure USBIO_DEVICE_POWER USB08 Evaluation Board MOTOROLA 206) data structure. E.4.3 Power Management (page Universal USB Device Driver (USBIO)
Comments The device power state is maintained internally by the USBIO driver. This request may be used to query the current power state. Designer Reference Manual 206) data structure. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Comments An application should check if the API version of the driver that is currently running matches with the version it expects. USB08 Evaluation Board MOTOROLA 186) data structure. Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO)
USB Reset GET_DEVICE_DESCRIPTOR USB Reset SET_ADDRESS GET_DEVICE_DESCRIPTOR GET_CONFIGURATION_DESRIPTOR the new device instance. Universal USB Device Driver (USBIO) 167) request, except that from USB08 Evaluation Board MOTOROLA...
(USBD). This request does not work if the system-provided multi-interface driver is used. This driver expects that all function device drivers send a CYCLE_PORT request within 5 seconds. USB08 Evaluation Board MOTOROLA (page Universal USB Device Driver (USBIO)
After this operation is successfully completed the pipe can be accessed using pipe related requests (e.g. read or write). See Also IOCTL_USBIO_SET_CONFIGURATION IOCTL_USBIO_GET_CONFIGURATION_INFO Designer Reference Manual Universal USB Device Driver (USBIO) (page 207) data (page 159) and (page 166) USB08 Evaluation Board MOTOROLA...
After this operation is successfully completed the handle is unbound and may be used to bind another pipe. It is not necessary to unbind a pipe handle before it is closed. Closing a handle unbinds it implicitly. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO)
USB host controller will be reinitialized. Isochronous pipes will never be halted by the USBD. This is because on isochronous pipes no handshake is used to detect errors in data transmission. Designer Reference Manual Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Not used with this operation. Set to zero. nOutBufferSize Comments All outstanding read or write requests on the pipe are aborted and returned with an error status of USBIO_ERR_CANCELLED. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface...
The default state of the pipe parameters is defined by a set of registry parameters which are read by the USBIO driver at startup. The current state can be queried by using this request. Designer Reference Manual 208) data structure. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
The default state of the pipe parameters is defined by a set of registry parameters which are read by the USBIO driver at startup. The current state can be modified by using this request. USB08 Evaluation Board MOTOROLA 208) data structure. This data structure has to be filled completely...
This request is intended to be used with additional control pipes a device might provide. It is not possible to generate a control transfer for the default endpoint zero with this operation. Designer Reference Manual Universal USB Device Driver (USBIO) (page 209) data structure. This USB08 Evaluation Board MOTOROLA...
This request is intended to be used with additional control pipes a device might provide. It is not possible to generate a control transfer for the default endpoint zero with this operation. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO)
// handle of file to write // pointer to data to write to file // number of bytes to write // pointer to OVERLAPPED structure (page Universal USB Device Driver (USBIO) 194) structure on the Set USB08 Evaluation Board MOTOROLA...
(PC). The buffer is divided into data pieces (packets) of the FIFO size of the endpoint. The buffer size should be a multiple of the FIFO size. Otherwise the last transaction can cause a buffer overflow error. USB08 Evaluation Board MOTOROLA USBIO_ISO_TRANSFER ( NumberOfPackets = N;...
USBIO_ISO_PACKET Designer Reference Manual 179) operation. The default state is defined by the registry (page Universal USB Device Driver (USBIO) Figure E-3. The buffer (page 213) structure 210) structure that provides general (page 212) structure USB08 Evaluation Board MOTOROLA...
E.5.4 Input and Output Structures This section provides a detailed description of the data structures that are used with the various input and output requests. USB08 Evaluation Board MOTOROLA (page 212) elements.
If this flag is set, the driver that is currently running is a LIGHT version that has some restrictions. Refer to ReadMe.txt for a description of the restrictions. 171) operation. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
LanguageId Specifies the Language ID for string descriptors. Set to zero for other descriptors. Comments This structure has to be used as an input for IOCTL_USBIO_GET_DESCRIPTOR IOCTL_USB_SET_DESCRIPTOR USB08 Evaluation Board MOTOROLA USBIO_REQUEST_RECIPIENT Recipient; UCHAR DescriptorType; UCHAR DescriptorIndex; USHORT LanguageId; Meaning...
Bus Specification 1.1, Chapter 9 for more information. Comments This structure has to be used as an input for IOCTL_USBIO_SET_FEATURE IOCTL_USBIO_CLEAR_FEATURE Designer Reference Manual USBIO_REQUEST_RECIPIENT Recipient; USHORT FeatureSelector; USHORT Index; (page Universal USB Device Driver (USBIO) (page 215). 153) and (page 154) requests. USB08 Evaluation Board MOTOROLA...
Specifies the index value for the get status request. The values are defined by the device. Refer to the Universal Serial Bus Specification 1.1, Chapter 9 for more information. Comments This structure has to be used as an input for IOCTL_USBIO_GET_STATUS USB08 Evaluation Board MOTOROLA USBIO_REQUEST_RECIPIENT Recipient; USHORT Index; 215). (page...
Refer to the Universal Serial Bus Specification 1.1, Chapter 9 for more information. Comments This structure is an output of IOCTL_USBIO_GET_STATUS requests. Designer Reference Manual USHORT Status; Universal USB Device Driver (USBIO) (page 155) USB08 Evaluation Board MOTOROLA...
A value of zero means the device is not configured. Refer to the Universal Serial Bus Specification 1.1, Chapter 9 for more information. Comments This structure is an output of IOCTL_USBIO_GET_CONFIGURATION (page USB08 Evaluation Board MOTOROLA UCHAR ConfigurationValue; 156) requests. Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO)
Universal Serial Bus Specification 1.1, Chapter 9 for more information. Comments This structure has to be used as an input for IOCTL_USBIO_GET_INTERFACE Designer Reference Manual USHORT Interface; Universal USB Device Driver (USBIO) (page 157) requests. USB08 Evaluation Board MOTOROLA...
Refer to the Universal Serial Bus Specification 1.1, Chapter 9 for more information. Comments This structure is an output of IOCTL_USBIO_GET_INTERFACE (page USB08 Evaluation Board MOTOROLA UCHAR AlternateSetting; 157) requests. Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO)
4096 (4K) should be used. Comments This structure has to be used as an input for IOCTL_USBIO_SET_INTERFACE IOCTL_USBIO_SET_CONFIGURATION Designer Reference Manual USHORT InterfaceIndex; USHORT AlternateSettingIndex; ULONG MaximumTransferSize; Universal USB Device Driver (USBIO) (page 161) and (page 159) requests. USB08 Evaluation Board MOTOROLA...
An array of USBIO_INTERFACE_SETTING that describes each interface in the configuration. There have to be NbOfInterfaces valid entries in this array. Comments This structure has to be used as an input for IOCTL_USBIO_SET_CONFIGURATION USB08 Evaluation Board MOTOROLA USHORT ConfigurationIndex; USHORT NbOfInterfaces; USBIO_INTERFACE_SETTING InterfaceList[USBIO_MAX_INTERFACES];...
If this flag is set, the USBIO driver does not return an error if a data packet received from the device is shorter than the maximum packet size of the endpoint. Otherwise, a short packet causes an error condition. 215). Universal USB Device Driver (USBIO) (page 216). USB08 Evaluation Board MOTOROLA...
Page 197
Chapter 9. The meanings of the values are device dependent. This structure has to be used as an input for IOCTL_USBIO_CLASS_OR_VENDOR_IN_REQUEST IOCTL_USBIO_CLASS_OR_VENDOR_OUT_REQUEST operations. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface (page...
The Remote Wakeup feature requires that the device is opened by an application and an USB configuration is set (device is configured). The default state of this option is defined by the registry parameter EnableRemoteWakeup. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 199
The default time-out value is defined by the registry parameter RequestTimeout. Comments This structure is intended to be used with IOCTL_USBIO_GET_DEVICE_PARAMETERS IOCTL_USBIO_SET_DEVICE_PARAMETERS USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface (page 164) and (page 165) operations.
Specifies the number of pipes that belong to this interface and alternate setting. Designer Reference Manual UCHAR InterfaceNumber; UCHAR AlternateSetting; UCHAR Class; UCHAR SubClass; UCHAR Protocol; UCHAR NumberOfPipes; UCHAR reserved1; UCHAR reserved2; Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 201
Reserved field, set to zero. reserved2 Reserved field, set to zero. Comments This structure is an output of IOCTL_USBIO_GET_CONFIGURATION_INFO USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface (page 166) operations. Designer Reference Manual...
USBIO_PIPE_TYPE PipeType; ULONG MaximumTransferSize; USHORT MaximumPacketSize; UCHAR EndpointAddress; UCHAR Interval; UCHAR InterfaceNumber; UCHAR reserved1; UCHAR reserved2; UCHAR reserved3; Bit 7 = 0: OUT endpoint Bit 7 = 1: IN endpoint Universal USB Device Driver (USBIO) (page 214). USB08 Evaluation Board MOTOROLA...
Page 203
Reserved field, set to zero. Comments This structure is an output of IOCTL_USBIO_GET_CONFIGURATION_INFO Only active pipes from the current configuration are returned. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface (page...
Only active pipes from the current configuration are returned. Designer Reference Manual ULONG NbOfInterfaces; ULONG NbOfPipes; USBIO_INTERFACE_CONFIGURATION_INFO InterfaceInfo[USBIO_MAX_INTERFACES]; USBIO_PIPE_CONFIGURATION_INFO PipeInfo[USBIO_MAX_PIPES]; 200) structures that describes the interfaces.There are Universal USB Device Driver (USBIO) (page 202) (page 166) operations. USB08 Evaluation Board MOTOROLA...
Contains the current value of the frame counter maintained by the USBD. Comments This structure is an output of IOCTL_USBIO_GET_CURRENT_FRAME_NUMBER requests. USB08 Evaluation Board MOTOROLA ULONG FrameNumber; Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface (page...
Contains the power state of the USB device. The values are defined by the USBIO_DEVICE_POWER_STATE type. Comments This structure is used with IOCTL_USBIO_GET_DEVICE_POWER_STATE IOCTL_USBIO_SET_DEVICE_POWER_STATE Designer Reference Manual USBIO_DEVICE_POWER_STATE DevicePowerState; Universal USB Device Driver (USBIO) (page 217) enumeration (page 170) and (page 169) requests. USB08 Evaluation Board MOTOROLA...
Refer to the Universal Serial Bus Specification 1.1, Chapter 9 for more information. Comments This structure has to be used as an input for IOCTL_USBIO_BIND_PIPE (page configuration can be bound. USB08 Evaluation Board MOTOROLA UCHAR EndpointAddress; Bit 7 = 1: OUT endpoint Bit 7 = 0: IN endpoint 174) operations.
Otherwise, a short packet causes an error condition. This option is meaningful for IN pipes only. (page 210)). Universal USB Device Driver (USBIO) (page 178) and (page 179) operations. USB08 Evaluation Board MOTOROLA...
Comments This structure has to be used as an input for IOCTL_USBIO_PIPE_CONTROL_TRANSFER_IN IOCTL_USBIO_PIPE_CONTROL_TRANSFER_OUT operations. USB08 Evaluation Board MOTOROLA ULONG Flags; UCHAR SetupPacket[8]; If this flag is set, the USBIO driver does not return an error if a data packet received from the device is shorter than the maximum packet size of the endpoint.
If this flag is set, the transfer will be started as soon as possible and the StartFrame parameter is ignored. This flag has to be used if a continuous data stream shall be sent to the isochronous endpoint of the USB device. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 211
This structure is the fixed size part of the USBIO_ISO_TRANSFER_HEADER an input for ReadFile and WriteFile operations with an isochronous pipe. the transfer buffer has to contain an USBIO_ISO_TRANSFER_HEADER USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface...
The maximum number of data packets is limited by the registry parameter MaxIsoPackets. Designer Reference Manual ULONG Offset; ULONG Length; ULONG Status; Universal USB Device Driver (USBIO) (page 213) that has to be used as USB08 Evaluation Board MOTOROLA...
The IsoPacket array describes the location and the size of the data packets. Each data packet is transferred in a separate USB frame. There must not be gaps between the data packets in the transfer buffer. USB08 Evaluation Board MOTOROLA USBIO_ISO_TRANSFER IsoTransfer; USBIO_ISO_PACKET IsoPacket[1];...
_USBIO_PIPE_TYPE{ } USBIO_PIPE_TYPE; Comments The meaning of the values is defined by he Universal Serial Bus Specification 1.1, Chapter 9. Designer Reference Manual PipeTypeControl = 0,; PipeTypeIsochronous, PipeTypeBulk, PipeTypeInterrupt Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
USB device request. Definition typedef enum _USBIO_REQUEST_RECIPIENT{ } USBIO_REQUEST_RECIPIENT; Comments The meaning of the values is defined by the Universal Serial Bus Specification 1.1, Chapter 9. USB08 Evaluation Board MOTOROLA RecipientDevice = 0, RecipientInterface, RecipientEndpoint, RecipientOther Universal USB Device Driver (USBIO)
USB Specification. This is because only Class and Vendor requests are supported by the USBD interface. Standard requests are generated internally by the USBD. Designer Reference Manual RequestTypeClass = 1, RequestTypeVendor Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Suspend DevicePowerStateD2 Suspend DevicePowerStateD3 Device off Comments The meaning of the values is defined by the Power Management specification. USB08 Evaluation Board MOTOROLA DevicePowerStateD0 = 0, DevicePowerStateD1, DevicePowerStateD2, DevicePowerStateD3 Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO) Programming Interface...
It is used for all subsequent requests to the device. Designer Reference Manual shows the classes included in the USBIOLIB and their CUsbIo CUsbIoPipe CUsbIoThread CUsbIoReader CUsbIoWriter Figure E-4. USBIO Class Library Universal USB Device Driver (USBIO) CUsbIoBuf CUsbIoBufPool USB08 Evaluation Board MOTOROLA...
WaitForCompletion functions of the CUsbIoPipe class the buffer has to be described by a CUsbIoBuf object. The CUsbIoBuf helper class stores context information while the read or write operation is pending. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO)
Write requests to the pipe. The thread’s main routine gets a buffer from an internal buffer pool and calls the virtual member function ProcessBuffer to fill the Designer Reference Manual Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
All output data and all error messages are directed to this window. The button “Clear Output Window” discards the actual contents of the window. USB08 Evaluation Board MOTOROLA Universal USB Device Driver (USBIO) Universal USB Device Driver (USBIO)
The descriptors are dumped to the output window. Some descriptors are interpreted. Unknown descriptors are presented as HEX dump. Related driver interfaces: • Designer Reference Manual IOCTL_USBIO_GET_DEVICE_PARAMETERS IOCTL_USBIO_SET_DEVICE_PARAMETERS IOCTL_USBIO_GET_DESCRIPTOR Universal USB Device Driver (USBIO) (page 164) (page 165) (page 151) USB08 Evaluation Board MOTOROLA...
This page allows to show all configured endpoints and interfaces by using the button “Get Configuration Info”. A new non-modal dialog for each configured pipe can be opened as well. Related driver interfaces: • • • USB08 Evaluation Board MOTOROLA IOCTL_USBIO_GET_DESCRIPTOR IOCTL_USBIO_GET_CONFIGURATION IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR IOCTL_USBIO_SET_CONFIGURATION IOCTL_USBIO_UNCONFIGURE_DEVICE...
In the “Max Error Count” field a maximum number of errors can be specified. When this number is exceeded, the data transfer is aborted. Each successful transfer resets the error counter to zero. USB08 Evaluation Board MOTOROLA IOCTL_USBIO_RESET_PIPE IOCTL_USBIO_ABORT_PIPE...
Isochronous pipe has to be “asynchronous”. The application does not support data rate feedback. Related driver interfaces: • ReadFile(); • Designer Reference Manual IOCTL_USBIO_PIPE_CONTROL_TRANSER_IN IOCTL_USBIO_PIPE_CONTROL_TRANSFER_OUT IOCTL_USBIO_ABORT_PIPE IOCTL_USBIO_ABORT_PIPE Universal USB Device Driver (USBIO) (page 180) (page 181) (page 177) (page 177) USB08 Evaluation Board MOTOROLA...
These files can be used at a later time to manually install the USBIO driver for the same device, without using the Installation Wizard. USB08 Evaluation Board MOTOROLA IOCTL_USBIO_ABORT_PIPE Universal USB Device Driver (USBIO)
Page 230
USBIO driver shall be installed for. The Hardware ID will be shown for the selected device. A Hardware ID is a string that is used internally by the operating system to unambiguously identify the Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 231
If the device belongs to the HID class, a mouse or a keyboard for example, this can cause problems. • USB08 Evaluation Board MOTOROLA 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).
USBIO package. The application allows you to test several USB operations manually. Please refer to E.7 USBIO Demo Application information. To quit the USBIO Installation Wizard, click Finish. USB/VID_046D&PID_0100 USB/VID_046D&PID_C001&REV_0401 USB/CLASS_09&SUBCLASS_01&PROT_00 Universal USB Device Driver (USBIO) for further USB08 Evaluation Board MOTOROLA...
Page 233
• • • • USB08 Evaluation Board MOTOROLA Copy the USBIO driver binary usbio.sys to a floppy disk or to a directory location of your choice. Copy the INF file usbio.inf provided with the USBIO package to the same location. Note that you can choose any name for the INF file, based on your company name or your product name for example.
Page 234
Driver Wizard is started which is similar to the New Hardware Wizard mentioned above. Provide the wizard with the location of your installation files (usbio.inf and usbio.sys) and complete the driver installation by following the instructions shown on screen. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
Page 235
Device Manager. • • • USB08 Evaluation Board MOTOROLA 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...
Install a new driver for the device by clicking the button “Update Driver”. The operating system launchs the Upgrade Device Driver Wizard which searches for driver files or lets you select a driver. Universal USB Device Driver (USBIO) USB08 Evaluation Board MOTOROLA...
• • • • • USB08 Evaluation Board MOTOROLA Choose a new name for the driver binary file usbio.sys. The name should not cause conflicts with drivers provided by Windows. Rename the file usbio.sys to your new name. Rename the Setup Information file usbio.inf. You can choose any name you want.
Page 238
USBIO does not occur in the files you ship with your product. This is a requirement that is defined by the USBIO licensing conditions. See also the License Agreement you received with the USBIO package. Universal USB Device Driver (USBIO) Entries. USB08 Evaluation Board MOTOROLA...
Value RequestTimeout ShortTransferOk UnconfigureOnClose ResetDeviceOnClose EnableRemoteWakeup MaxIsoPackets PowerStateOnOpen USB08 Evaluation Board MOTOROLA lists all registry parameters. Default Time-out interval for synchronous I/O requests, in 1000 milliseconds. Zero means infinite (no time-out). If set to 1 short packets in read transfers are allowed.
Page 240
USBIO driver is used. Baudrate selection for debug output to COM port. 57.600 115.200 This parameter is available only if the debug (checked) build of the USBIO driver is used. Universal USB Device Driver (USBIO) Description USB08 Evaluation Board MOTOROLA...
2. Only one Interrupt IN endpoint and one Interrupt OUT endpoint is 3. The maximum FIFO size of an endpoint is limited to eight bytes. 4. The maximum size of the data stage for a Class or Vendor USB08 Evaluation Board MOTOROLA Universal Serial Bus Specification 1.0, 1.1 USB device class specifications (Audio, HID, Printer, etc.)
Page 242
Universal USB Device Driver (USBIO) Designer Reference Manual USB08 Evaluation Board Universal USB Device Driver (USBIO) MOTOROLA...
Page 244
JAPAN: Motorola Japan Ltd. SPS, Technical Information Center 3-20-1, Minami-Azabu, Minato-ku Tokyo 106-8573 Japan 81-3-3440-3569 ASIA/PACIFIC: Motorola Semiconductors H.K. Ltd. Silicon Harbour Centre 2 Dai King Street Tai Po Industrial Estate Tai Po, N.T., Hong Kong 852-26668334 HOME PAGE: http://www.motorola.com/semiconductors/...