Patent ID: 7900096

Claim:
A method for automatically detecting and correcting one or more hang conditions within a serial bus interface of one or more master devices and one or more target devices on a serial bus when one or more signals are held in an invalid state, the method comprising: monitoring one or more operations of the serial bus, wherein one of the one or more operations is a serial bus transfer of the one or more master devices and the one or more target devices; associating a select master identification with a select master device of the one or more master devices; associating a select address with a select target device of the one or more target device; assigning a first table to the select master device of the one or more master devices, and assigning a second table to the select target device of the one or more target devices, when the first table stores one or more timeout values of the select target associated with the address of the select target, and the second table stores one or more timeout values for the select target associated with one or more master identifications; when the timeout value is a period of elapsed time wherein the one or more signals are held in the invalid state, assigning one or more timeout values to the one or more target devices on the serial bus, wherein one or more of a single timeout value, a unique timeout value, and a clock defined timeout value are assigned to each of the one or more target devices; transmitting a master identification request to the select target device, wherein the master identification request is a request to initiate the serial bus transfer; associating the select target device to the select master device during a serial bus transfer, wherein the select master device is identified by a select master identification; detecting the select target device and the timeout value assigned to the select target device; when the select master device accesses the select target device via one of a read and write command during a serial bus transfer, detecting an amount of time elapsed between an initial access of the select target device by the select master device and recognition of the select master device by the select target device; when the select target device accepts the select master identification during the serial bus transfer, storing the select target address for the select target device in the first table; and storing the select master identification for the select master device in the second table; and when the timeout value of the select target device of the serial bus transfer is exceeded, disabling the serial bus drivers of the select target device; and setting the state machine of the select target device to idle.