??? 01/20/06 09:02 Modified: 01/20/06 09:06 Read: times |
#107862 - Thanks Tsuneo , Responding to: ???'s previous message |
Hello Tsuneo
I really appreciate you for contributing your valuable time Tsuneo said:
Did you set 'Acknowledge setup' command after receiving the setup packet?
If the host receives ACK correctly, it will issue IN transaction to read the device descriptor. In this IN transaction, you'll send the device descriptor. Yes,I send ack to the host after validating the request from memory: http://www.8052.com/forum/read.phtml?id=107605 As Grant suggested, split the device descriptor to three part, 8 + 8 + 2 bytes. You define the control EP size as 8 in the device descriptor. So, you cannot send more than 8 bytes at one transaction. I know what you say,But my problem isn't it,because i never receive any Ep0_In_Interrupt The handling sequence of setup transaction is as follows. - Setup packet is received by D12 - D12 interrupts to MCU - 'Read interrupt register' - confirm target EP is control out EP - 'Read last transaction status register' - confirm this packet is Setup packet - 'Select Endpoint' to Control Out EP - 'Read buffer' to MCU memory - 'Clear buffer' - validate packet on the memory: standard device request?, requested bytes? - 'Acknowledge setup' O.K,I Do all steps above,According to D12 Firmware Programming Guide on page 11-12 Then move to data stage. - D12 will receive IN transaction from host. Again,My problem is really this,I never receive any IN transaction from host So What I must do Now? At the beginning of your post you said Did you set 'Acknowledge setup' command after receiving the setup packet I don't think your aim is that i send ack_setup_command just after i found that this packet is setup? I send it after realizing that this (Request,Request Type) is valid Just curiously,Do you have any experience with PDIUSBD12 Thanks Mehdi |