IP Library Granted Patent US 8,909,844
Granted Patent B2
US 8,909,844 · App. 13/541,750 · Granted Dec 9, 2014

Inter-integrated circuit (I2C) multiplexer switching as a function of clock frequency

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,909,844
App. No.
13/541,750
Granted
Dec 9, 2014
Kind
B2
Abstract

In accordance with one embodiment of the invention, an I2C bus multiplexing circuit for use in an I2C bus interface can be provided. The I2C bus multiplexing circuit can facilitate multiplexer switching in an I2C bus interface by detecting a start command from an I2C master device via an I2C bus, buffering data from the I2C master device, detecting a clock frequency of a bus serial clock (SCL) line of the I2C master device, holding the serial data (SDA) line of the I2C master device in a clock stretch state and selecting a port based on the detected clock frequency of the SCL of the I2C master device. The method further can include sending the buffered data to an I2C slave device on the selected port. The method further can include receiving an acknowledgement from the I2C slave device on the selected port.

Claims (35)

1. An inter-integrated circuit (I2C) bus interface comprising:

an I2C master device coupled to an I2C slave device over an I2C bus; and

an I2C bus multiplexing circuit coupled to the I2C bus between the I2C master device and the an I2C slave device, wherein the I2C bus multiplexing circuit comprises:

a buffer coupled to a signal path from a I2C bus and configured to store an I2C signal from an I2C master device;

a frequency detector additionally coupled to the signal path from the I2C bus configured to detect a clock frequency of the I2C signal from the I2C master device;

port selection logic coupled to the frequency detector and configured to generate a select control command based on the detected clock frequency; and

a multiplexer coupled to the buffer and a plurality of ports, the multiplexer configured to route the I2C signal from the I2C master device to one of the plurality of ports.

2. The I2C interface of claim 1 , wherein the frequency detector is a Phase Locked Loop (Phase Locked Loop) circuit.

3. The I2C interface of claim 1 , wherein the buffer is implemented using a Field Programmable Gate Array (FPGA).

4. A method for providing inter-integrated circuit (I2C) multiplexer switching as a function of clock frequency, the method comprising:

detecting a start command from an I2C master device via an I2C bus;

buffering data from the I2C master device;

detecting a clock frequency of a bus serial clock (SCL) line of the I2C master device;

holding the serial data (SDA) line of the I2C master device in a clock stretch state; and

selecting a port based on the detected clock frequency of the SCL of the I2C master device.

5. The method of claim 4 , further comprising sending the buffered data to an I2C slave device on the selected port.

6. The method of claim 4 , further comprising directly accessing the selected port with the I2C master device.

7. The method of claim 4 , further comprising detecting clock frequencies within an I2C Standard mode.

8. The method of claim 4 , further comprising using clock frequencies within an I2C mode as a control signal to auto select a corresponding port.

9. The method of claim 5 , further comprising receiving an acknowledgement from the I2C slave device on the selected port.

10. The method of claim 9 , further comprising sending the acknowledgement from the I2C slave device on the selected port to the I2C master device.

11. The method of claim 10 , further comprising releasing the SDA line of the I2C master device.

12. A computer program product comprising a computer usable storage medium storing therein computer usable program code for providing inter-integrated circuit (I2C) multiplexer switching as a function of clock frequency, the computer program product comprising:

computer usable program code for detecting a start command from an I2C master device via an I2C bus;

computer usable program code for buffering data from the I2C master device;

computer usable program code for detecting a clock frequency of a bus serial clock (SCL) line of the I2C master device;

computer usable program code for holding the serial data (SDA) line of the I2C master device in a clock stretch state; and

computer usable program code for selecting a port based on the detected clock frequency of the SCL of the I2C master device.

13. The computer program product of claim 12 , further comprising computer usable code for sending the buffered data to an I2C slave device on the selected port.

14. The computer program product of claim 12 , further comprising computer usable code for directly accessing the selected port with the I2C master device.

15. The computer program product of claim 12 , further comprising computer usable code for detecting clock frequencies within an I2C Standard mode.

16. The computer program product of claim 12 , further comprising computer usable code for using clock frequencies within an I2C mode as a control signal to auto select a corresponding port.

17. The computer program product of claim 13 , further comprising computer usable code for receiving an acknowledgement from the I2C slave device on the selected port.

18. The computer program product of claim 17 , further comprising computer usable code for sending the acknowledgement from the I2C slave device on the selected port to the I2C master device.

19. The computer program product of claim 18 , further comprising computer usable code for releasing the SDA line of the I2C master device.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050300/0570 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037689/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037101/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0111 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2013
From: DECESARIS, MICHAEL; REMIS, LUKE D.; SELLMAN, GREGORY D.; VANDERLINDEN, STEVEN L.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029646/0920 →