I have written a dfu driver for the str711 device, all works ok except control read transfers (OUT transfers).
I have traced the problem down to the usb interrupt routine (CTR_ISR) - This function below checks for a setup packet but the mask will also catch all RX (OUT) transfers including non SETUP ones. In other words the Out0_Process will never get called. if((wEPVal & (EP_CTR_RX|EP_SETUP)) != 0) { _ClearEP_CTR_RX(ENDP0); /* SETUP bit kept frozen while CTR_RX = 1 */ Setup0_Process(); } else if((wEPVal & EP_CTR_RX) != 0) { _ClearEP_CTR_RX(ENDP0); Out0_Process(); } changing to if((wEPVal & (EP_SETUP)) != 0) fixes the problem, is this correct ? Regards sjo
Sorry for the delay... We have already checked the USB software libray and some mistakes are alredy verified(The new version is not published yet). Concerning the Out0_Process section we use the following condition . if((wEPVal &EP_SETUP) != 0) { _ClearEP_CTR_RX(ENDP0); /* SETUP bit kept frozen while CTR_RX = 1 */ Setup0_Process(); } else if((wEPVal & EP_CTR_RX) != 0) { _ClearEP_CTR_RX(ENDP0); Out0_Process(); } With best regards, Hich :o [ This message was edited by: Hich on 28-07-2005 12:45 ]
The STR71x USB software package review is on going and planned for W13. Then it will be published as soon as possible. Thank you for your comprehension. With best regards, Hich ;)
On 09-02-2006 at 11:46, Anonymous wrote: Hi all, The STR71x USB software package review is on going and planned for W13. Then it will be published as soon as possible. Thank you for your comprehension. With best regards, Hich ;) will it be published before April 1 ?