??? 01/14/06 18:18 Read: times |
#107403 - USB Enumeration Process!!! |
Approximately 3 months ago i defined a usb project myself
My chip was PDIUSBD12 from Philips Company The hardware was O.K and I Could Initialize D12,Change Output Freq ..... also Good Link was Shined as Blink Those days the project was stopped,But three days ago i continue the projet again. After Initializing the chip The Host send first Descriptor request Just like this: EP0_Control_out_Buffer: 80H 06H 00H 01H 00H 00H 40H 00H Now the device(MCU or Chip) must send a standard Device descriptor According to this request I know this and i know it must be 18 byte for example like this: WRITE_TO_BUFFER_DEVICE_DESCRIPTORS: MOV bLength,#12H MOV bDescriptorType,#01H MOV bcdUSBL,#10H MOV bcdUSBH,#01H MOV bDeviceClass,#00H MOV bDeviceSubclass,#00H MOV bDeviceProtocol,#00H MOV bMaxPacketSize,#08H MOV idVendorH,#34H MOV idVendorL,#12H MOV idProductH,#01H MOV idProductL,#00H MOV bcdDeviceH,#00H MOV bcdDeviceL,#01H MOV iManufacture,#01H MOV iProducts,#02H MOV iSerialNumber,#03H MOV bNumConfigurations,#01H CALL WRITE_DEVICE_DESCRIPTORS RET But i don't know When and How i must send The Descriptor to the Host? Do i must send descriptor in the next control in interrupt? Or no i must send it immediately after extracting the request and acknowledging the host at end of control out interrupt? I read Firmware Programming Guide for PDIUSBD12 From Philips exactly and i implemented what it said, but i hadn't any progress in process,Also i found some source code in C And Assembly,I read them But USB Device Not Recognized is only message that host shows in taskbar I extremely appreciate From any helpful advice and comment Best Regards Mehdi |