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.