To know the inserted  device is Full speed or low speed when SL811 is host


Question: When using the SL811HS in host mode, how can you tell when a device is inserted, and whether it is full or low speed?

Response: When using the SL811HS in host mode, you can monitor devices being inserted or removed from the Insterrupt Status Register [0DH].

The Interrupt Status Register provides 3 bits (bits 5, 6, and 7) to properly monitor devices being inserted and removed.  Below are general guidelines of how to use these bits.

1) First, monitor the Insert/Remove bit (bit 5).  The bit will get asserted when a device is either inserted (bus state goes from SE0 to IDLE) or removed ( bus state goes from IDLE to SE0).

2) If the Insert/Remove bit is asserted, then you need to determine which of the two events happened.  The Device Detect/Resume bit (bit 6), is used to indicate the presense of a device, '1' = device "Not present" and '0' = device "Present".

Be aware that this bit is shared between Device detection status and a Resume detection interrupt.  When bit 6 of register 05H is set to one, this bit will be the Resume detection interrupt bit.  Otherwise, this bit

3) Once it has been established from both bits 5 and 6 that a device has been inserted, the D+ bit (bit 7) will indicate whether it is a full speed device or not.  If D+ is high, then the D+ line is pulled up and a full speed device is plugged in, otherwise D- is low and a low speed device was plugged in.