SL811HS device  detection

Answer:

Question: Why SL811HS Host controller  doesn't detect my device?

Response: If the firmware was developed based on the SL811HS application note revision 1.19, the following issue will cause the SL811HS to suspend and not respond properly.
An error in the application note wrote to the suspend bit (bit 6) of register 05H bit in the speed_detect() routine.  In the code snippet below SL11Write(CtrlReg, 0x48) should be changed as follows: SL11Write(CtrlReg, 0x08), such that the suspend bit isn't set.  Developers that followed this coding example didn't experience any problems in revision 1.2 because the suspend bit wasn't implemented, but with newer revisions the problem is showing up.   

/***************************************************************************

  Full-speed and slow-speed detect

****************************************************************************/

int speed_detect()

{

    int i=0;



    full_speed = 0xffff;

    SL11Write(IntEna, 0x63);       // USBA/B, Insert/Remove,USBRest/Resume.

    SL11Write(cSOFcnt, 0xae);      // Set SOF high counter, no change D+/D-

    SL11Write(CtrlReg, 0x48);      // Setup Normal Operation

    SL11Write(CtrlReg, (BYTE)i);   // Disable USB transfer operation and SOF