An open drain bus, such as an Inter-Integrated Circuit (I2C) bus, a System Management Bus (SMBus), and others, usually includes a data line and a clock line. Such a data line and a clock line can each be referred to individually as a bus line, or simply as a line. As shown in
To increase the maximum data transfer rate, a bus line 101 can be separated into segments (e.g., 101A, 101B and 101C), each having a reduced capacitance, as shown in
a illustrates an exemplary open-drain bus.
b illustrates how the exemplary open-drain bus of
a illustrates a bi-directional buffer according to an embodiment of the present invention.
b illustrates the bi-directional buffer according to another embodiment of the present invention.
a illustrates how level shifting can be provided for a specific bi-directional buffer, in accordance with an embodiment of the present invention.
b illustrates the bi-directional buffer of
c illustrates the bi-directional buffer of
Embodiments of the present invention are directed to bi-directional buffers, methods for bi-directional buffering, and methods for use with bi-directional buffers. Embodiments of the present invention are also directed to devices (e.g., PCB cards) and systems that include bi-directional buffers. A bi-directional buffer can be connected between a first node and a second node, wherein the first node is connected by a first pull-up resistor to a first voltage supply rail, and the second node is connected by a second pull-up resistor to a second voltage supply rail that is different than the first voltage supply rail. In accordance with an embodiment, a method includes enabling the bi-directional buffer when a voltage of the first node does not exceed a first threshold voltage, and/or a voltage of the second node does not exceed a second threshold voltage. However, when the voltage of the first node exceeds the first threshold voltage, and the voltage of the second node exceeds the second threshold voltage, the bi-directional buffer is disabled. When the bi-directional buffer is disabled, the first and second nodes are disconnected from one another, thereby allowing the first node to be pulled up to the first voltage supply rail, and the second node to be pulled up to the second voltage supply rail, which is desirable for proper system operation when the first and second voltage supply rails provide different voltages levels. The first and second threshold voltages can be different form one another, or the same.
In accordance with an embodiment of the present invention, a voltage of a first node is allowed to follow a voltage of a second node, and the voltage of the second node is allowed to follow the voltage of the first node, when the voltage of the first node does not exceed a first threshold voltage, and/or the voltage of the second node does not exceed a second threshold voltage. However, when the voltage of the first node exceeds the first threshold voltage, and the voltage of the second node exceeds the second threshold voltage, then the voltage of the first node is allowed to be pulled up to the voltage of the first voltage supply rail, and the voltage of the second node is allowed to be pulled up to the voltage of the second voltage supply rail. The first and second threshold voltages can be the same, or different.
Further and alternative embodiments, and the features, aspects, and advantages of the embodiments of invention will become more apparent from the detailed description set forth below, the drawings and the claims.
The bi-directional buffer arrangement of
Referring to
a illustrates a bi-directional buffer 202a, according to an embodiment of the present invention. The bi-directional buffer 202a includes first voltage buffer circuitry 2031 that causes node B to follow node A, when the direction of data flow is from node A to node B. The bi-directional buffer 202a also includes second voltage buffer circuitry 2032 that causes node A to follow node B, when the direction of data flow is from node B to node A. Note that the first voltage buffer circuitry 2031 and the second voltage buffer circuitry 2032 can share some circuitry (e.g., share some transistors), depending on the implementation.
As described below, the bi-directional buffer 202a provides a level shifting function so that the high level of each bus segment (101A and 101B) will be equal to the level of its own voltage supply rail (VDD1 and VDD2, respectively). In the embodiment shown, comparators 2061 and 2062 and a logic gate 205 produce an ENABLE_BAR signal 207, which enables the first voltage buffer circuitry 2031 and the second voltage buffer circuitry 2032 when the ENABLE_BAR signal 207 is low. In other words, the first voltage buffer circuitry 2031 and the second voltage buffer circuitry 2032 are enabled when the signal 207 provided to their enable inputs is low. In the arrangement shown, the ENABLE_BAR signal 207 will be low so long as the voltage of at least one of the bus segments 101A and 101B is less than a threshold voltage Vth. In contrast, when the voltages of both bus segments 101A and 101B are above Vth, then the ENABLE_BAR signal 207 will be high, thereby disabling the first voltage buffer circuitry 2031 and the second voltage buffer circuitry 2032. When the first voltage buffer circuitry 2031 and the second voltage buffer circuitry 2032 are disabled, the bus segments 101A and 101B are disconnected from one another, and the bus segments 101A and 101B will not follow one another, thereby allowing each node to be pulled up (by appropriate resistors RA and RB) to its own voltage supply rail (VDD1 and VDD2). This is described in further detail below.
In accordance with an embodiment, the ENABLE_BAR input is controlled by the logic gate 205, with inputs to the logic gate 205 receiving outputs of the two comparators 2061 and 2062. The comparator 2061 has its inputs connected to the bus segment 101A and a threshold voltage Vthr. The comparator 2062 has its inputs connected to the bus segment 101B and the threshold voltage Vthr.
When node A is pulled down toward GND by an external device (e.g., Q1), it goes below Vthr. This will cause the output of the corresponding comparator 2061 to go low, which in turn will cause the output of the logic gate 205 to also be low. This enables the bi-directional buffer 202a which makes node B track node A, bringing it to GND potential as well. Thus both segments are in the low state.
After node A is released by an external device (e.g., Q1), it starts moving higher. Since the first voltage buffer circuitry 2031 and the second voltage buffer circuitry 2032 are enabled, node B starts moving higher as well. At some point in time both nodes A and B will be higher than Vthr. Once this happens, the outputs of both comparators 2061 and 2062 will go high, and so will the output of the logic gate 205. This will disable the bi-directional buffer 202a, and no tracking will take place anymore. From this moment nodes A and B will move higher independently, and ultimately bring their voltage levels to VDD1 and VDD2, respectively. Thus level shifting functionality is achieved and will be maintained as long as Vthr is set below lowest of the voltage supply rails (VDD1, in this example), but greater than GND. For example, Vthr can equal VDDmin (VDD1 in this example) minus an offset (e.g., 0.5V or 0.7V), or Vthr can equal a percentage of VDDmin (e.g., 90% or 95% of VDD1). These are just a few examples, which are not meant to be limiting.
In
In accordance with a specific embodiment, the one or more threshold (e.g., Vth, or Vth1 and Vth2) is/are programmable, so that the threshold(s) can be adjusted in view of the voltage supply rails with which the bi-directional buffer will be used. In still another embodiment, the one or more threshold (e.g., Vth, or Vth1 and Vth2) can be generated based on the voltage supply rails, e.g., can be a fixed or programmable voltage below (e.g., 0.4 or 0.6V below), or a fixed or programmable percentage (e.g., 75% or 85%) of the voltage supply rail(s).
The bi-directional buffers of embodiments of the present invention can be used to interconnect segments of bus lines. Exemplary types of buses in which embodiments of the present invention can be used include, e.g., I2C and SMBus, but are not limited thereto. For example, different segments of a Controller Area Network (CAN) bus can also be connected using bi-directional buffers of embodiments of the present invention.
Referring to
In
In
The high level flow diagram of
At step 408, the first voltage buffer circuitry and the second voltage buffer circuitry are enabled (i.e., when the voltage of the first node does not exceed the first threshold voltage, and/or the voltage of the second node does not exceed the second threshold voltage). At step 406, the first voltage buffer circuitry and the second voltage buffer circuitry are disabled (i.e., when the voltage of the first node exceeds the first threshold voltage, and the voltage of the second node exceeds the second threshold voltage). When the first voltage buffer circuitry and the second voltage buffer circuitry are disabled the first and second nodes are disconnected from one another, thereby enabling the first node to be pulled up to a voltage of a first voltage rail, and the second node to be pulled up to a voltage of a second voltage rail.
As shown in
Another way of viewing an embodiment of the present invention is that it is selectively enables or disables a bi-directional buffer (e.g., 102), as described with reference to the high level flow diagram of
A further way of viewing an embodiment of the present invention is that a voltage of a first node is allowed to follow a voltage of a second node, and the voltage of the second node is allowed to follow the voltage of the first node, when the voltage of the first node does not exceed a first threshold voltage, and/or the voltage of the second node does not exceed a second threshold voltage. However, when the voltage of the first node exceeds the first threshold voltage, and the voltage of the second node exceeds the second threshold voltage, then the voltage of the first node is allowed to be pulled up to the voltage of the first voltage supply rail, and the voltage of the second node is allowed to be pulled up to the voltage of the second voltage supply rail. The first and second threshold voltages can be the same, or different.
Exemplary circuitry for accomplishing the enabling and disabling referred to in the flow diagrams of
As can be appreciated from the high level flow diagram of
In
Referring to
Embodiments of the present invention can be used with most any bi-directional buffer. In other words, embodiments of the present invention need not be limited to use with any specific circuitry from implementing a bi-directional buffer (e.g., for implementing 2031 and 2032, or more generally, for implementing 102). Nevertheless,
a shows details of a bi-directional buffer 702 that includes a pair of PMOS transistors Q11 and Q12 connected as a differential input pair, a tail current source I (which generates a current I), output stage NMOS transistors Q13 and Q14, and active load NMOS transistors Q15 and Q16 that form a current mirror along with NMOS transistor Q17. Transistors Q15 and Q16 may also be referred herein to as current sink transistors. The sources of transistors Q15, Q16 and Q17 are shown as being connected to ground. The gate of transistor Q11 provides the first input/output node of the differential input/differential output op-amp, and the gate of transistor Q12 provides the second input/output node of the differential input/differential output op-amp.
Transistors Q15, Q16 and Q17 form a current mirror having one input and two outputs. The common input of the current mirror is provided at the drain of transistor Q17, and the two outputs of the current mirror are provided at the drains of the active load transistors Q15 and Q16. In the
Assuming the comparators 2061 and 2062, the AND logic gate 205 the transistors QA and QB were not present, the bi-directional buffer 702 operates as follows. Suppose initially both nodes A and B are high, i.e., have a HIGH voltage level, corresponding to a logic level 1. Exemplary HIGH voltage levels are +5V or +3.3V, but are not limited thereto. When nodes A and B are both high, both transistors Q11 and Q12 are turned off, as are transistors Q13 and Q14. Thus, nodes A and B are disconnected when nodes A and B are both high.
Now, suppose node A is brought down to a LOW voltage level, corresponding to a logic level 0, e.g., by an external interface device connected to node A. An exemplary LOW voltage level is ground (GND), but other levels, such as −3.3V or −5V are possible. When the voltage at the gate of transistor Q11 is low enough, the tail current source I becomes active and provides current to the differential pair of transistors Q11 and Q12. Since the voltage at the gate of transistor Q11 is lower than the voltage at the gate of transistor Q12, the drain current of transistor Q11 sets at a 60%*I level. This leaves only 40% of the current I available to transistors Q12 and Q16 (i.e., the drain current of transistor Q12 sets at a 40%*I level). As a result, transistor Q16 will be in triode mode (where its drain voltage is close to its source voltage), which will result in the shorting of the gate of transistor Q13 to ground (thus turning off transistor Q13), causing the bi-directional buffer 702 to attain the configuration shown in
Similarly, if node B is brought down (e.g., by an external interface device B), the bi-directional buffer 702 will re-configure itself to attain the configuration depicted in
In the above described manner, the bi-directional buffer 702 facilitates bi-directional data transfer by re-configuring itself according to the direction of data flow. A benefit of the bi-directional buffer 702 is that it not susceptible to latch-up, since there is only one amplifier and only one feedback loop (of two possible feedback loops) active at a time.
In summary, the bi-directional buffer 702 has two configuration states, which depend on the data transfer direction, and may also depend on time constants. When node A is pulled down externally, the first configuration state (
Bi-directional transfer of low-to-high transition occurs as follows. Suppose initially node A is pulled down by external interface device A so that the first configuration state (
Referring back to
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention.
The breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
This patent application is a continuation-in-part of U.S. patent application Ser. No. 12/060,829, entitled “Bi-Directional Buffer for Open-Drain or Open-Collector Bus” (Attorney Docket No. ELAN-01164US2), which was filed Apr. 1, 2008, and which claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application No. 61/014,356, filed Dec. 17, 2007, and U.S. Provisional Patent Application No. 61/024,476, filed Jan. 29, 2008. This patent application also claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application No. 61/043,051, filed Apr. 7, 2008. Each of the above listed patent applications is incorporated herein by reference.
| Number | Date | Country | |
|---|---|---|---|
| 61043051 | Apr 2008 | US | |
| 61014356 | Dec 2007 | US | |
| 61024476 | Jan 2008 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 12060829 | Apr 2008 | US |
| Child | 12124063 | US |