# US 10,120,761 B2 · Expander device and method for data communication within inter-integrated (I2C) system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,761 B2
- Document ID: US10120761B2
- Status: Granted
- Kind: B2
- Application number: 15/293,402
- Filed: 2016-10-14
- Published: 2017-05-04
- Granted: 2018-11-06
- Earliest claimed: 2015-10-30
- Assignees: Mitac Computing Technology Corporation
- Applicants: Mitac Computing Technology Corporation
- Inventors: Jen-Chih Lee; Kwang-Chao Chen
- Web page: https://patentgrep.com/patent/US10120761B2

## CPC

- G06F 11/1441: {Resetting or repowering}
- G06F 11/0745: {in an input/output transactions management context (input/output processing in general G06F13/00)}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/3027: {where the computing system component is a bus}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 13/24: using interrupt (G06F13/32 takes precedence)
- G06F 13/364: using independent requests or grants, e.g. using separated request and grant lines
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for data communication within an I2C system is provided. The method includes the steps of: a) generating a communication error code indicative of error status when data transmission from a master module to a slave module via an I2C bus fails; b) determining whether to retransmit the data to the slave module according to the communication error code; c) when the determination made in step c) is affirmative, determining whether a number of times of data retransmission(s) associated with the data reaches a predetermined number; d) when the determination made in step c) is affirmative, resetting the master module; and e) recording a communication error event according to the communication error code after step a).

## Claims

### Claim 1

A method for data communication within an inter-integrated circuit (I2C) system that includes a master module, an I2C bus and a slave module, the method comprising the steps of:
a) transmitting, by the master module, data to the slave module via the I2C bus;
b) generating, by the master module, a communication error code indicative of error status when data transmission from the master module to the slave module in step a) fails;
c) determining, by the master module, whether to retransmit the data to the slave module according to the communication error code generated in step b);
d) when the determination made in step c) is affirmative, determining, by the master module, whether a number of time(s) of data retransmission associated with the data from the master module to the slave module reaches a predetermined number;
e) when the determination made in step d) is affirmative, resetting the master module;
f) after step b), recording, by the master module, a communication error event according to the communication error code; and
wherein the communication error event includes the communication error code, the number of time(s) of the data retransmission and history of the resetting of the master module.

### Claim 2 (depends on 1)

The method of claim 1, further comprising the step of:
when the determination made in step d) is negative, increasing the number of time(s) of the data retransmission by one and repeating step a).

### Claim 3 (depends on 1)

The method of claim 1, wherein when the determination made in step c) is negative, the communication error event is recorded according to the communication error code without resetting the master module.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
the communication error code generated in step b) indicates one of mutex timeout at the master module, unexpected interrupt source at the master module, data negative-acknowledgement (NACK) from the slave module, unrecoverable/recovered mutex timeout at the master module, and NACK of a slave address of the slave module.

### Claim 5 (depends on 4)

The method of claim 4, wherein in step c), the master module determines to retransmit the data to the slave module when the communication error code indicates one of the mutex timeout of the master module, the unexpected interrupt source at the master module and the NACK from the slave module.

### Claim 6 (depends on 4)

The method of claim 4, wherein in step c), the master module determines not to retransmit the data to the slave module when the communication error code indicates one of the unrecoverable/recovered mutex timeout at the master module and the NACK of the slave address of the slave module.

### Claim 7 (depends on 6)

The method of claim 6, wherein, when the master module determines not to retransmit the data to the slave module in step c), the communication error event is recorded according to the communication error code without resetting the master module.

### Claim 8 (depends on 1)

The method of claim 1, wherein, when the determination made in step d) is affirmative, step f) is implemented to record the communication error event.

### Claim 9

An expander device configured to be electrically connected to a slave module, said expander device comprising:
an inter-integrated (I2C) bus; and
a master module configured to
transmit data to the slave module via said I2C bus,
generate a communication error code indicative of error status when data transmission from said master module to the slave module fails,
determine whether to retransmit the data to the slave module according to the communication error code,
record a communication error event according to the communication error code,
when data transmission from said master module to the slave module fails, determine whether a number of time(s) of data retransmission associated with the data from said master module to the slave module reaches a predetermined number,
wherein said master module is reset when the number of time(s) of the data retransmission reaches the predetermined number, and
wherein the communication error event includes the communication error code, the number of time(s) of the data retransmission and history of the resetting of the master module.

### Claim 10 (depends on 9)

The expander device as claimed in claim 9, further comprising a non-volatility memory configured to store the communication error event.

### Claim 11 (depends on 9)

The expander device as claimed in claim 9, wherein said master module is further configured to increase the number of time(s) of the data retransmission by one and to retransmit the data to the slave module via said I2C bus when determining that the number of time(s) does not reach the predetermined number.

### Claim 12 (depends on 9)

The expander device as claimed in claim 9, wherein said master module is configured to record the communication error event and not to be reset when determining not to retransmit the data to the slave module.

### Claim 13 (depends on 9)

The expander device as claimed in claim 9, wherein the communication error code indicates one of mutex timeout at said master module, unexpected interrupt source at said master module, data negative-acknowledgement (NACK) from the slave module, unrecoverable/recovered mutex timeout at said master module, and NACK of a slave address of the slave module.

### Claim 14 (depends on 13)

The expander device as claimed in claim 13, wherein said master module is configured to retransmit the data to the slave module when the communication error code indicates one of the mutex timeout of said master module, the unexpected interrupt source at said master module and the NACK from the slave module.

### Claim 15 (depends on 13)

The expander device as claimed in claim 13, wherein said master module is configured to determine not to retransmit the data to the slave module when the communication error code indicates one of the unrecoverable/recovered mutex timeout at said master module and the NACK of the slave address of the slave module.

### Claim 16 (depends on 15)

The expander device as claimed in claim 15, wherein when said master module is configured to determine not to retransmit the data to the slave module, said master module is configured to record the communication error code and not to be reset.

### Claim 17 (depends on 9)

The expander device as claimed in claim 9, wherein said master module is configured to record the communication error event when determining that the number of time(s) of the data retransmission reaches the predetermined number.
