SL11H (slave mode) or SL11 ignoring packets/requests

Question: Why is the SL11H (slave mode) or SL11 ignoring packets/requests?  Time-outs occur instead of responding with a handshake or data.

 

Answer:

First make sure the Arm and Enable bits are set in the Endpoint Control Register [03H, 11H, etc.. ].  If the Enable bit isn't set then all transactions to that endpoint will be ignored.

If the SL11H (slave mode) or SL11 still isn't responding to packets/requests then read the Packet Status Register.  Pay attention to the time-out bit (bit 2) and the Error bit (bit 1).

If a time-out ocurs then make sure the direction bit (bit 2) in the Endpoint Control Register [03H, 11H, etc] is set appropriately.  If this bit is set to expect an IN, and an OUT occurs, then the part  will ingore it and the time-out bit will be set (and vise versa).  If this is the case, re-set the direction bit appropriately and re-arm the endpoint.  The host will resent the packet upto three times if it is ignored.