Essentials: Open Collector Outputs - Khái niệm cơ bản: Đầu ra Collector mở
One of the joys of working with basic digital electronics - and logic gate ICs in particular - is that it almost works like building with a set of Lego blocks: One output goes here, which connects to the next input here, and so forth until it does what you wanted.
If you've played with chips like these, you've probably also come across chips with "open collector" outputs. And if not, they're worth knowing about. Open-collector outputs form the basis of a number of clever tricks for level-shifting and interfacing between different types of logic, and from logic to other types of electronic circuits.
In what follows, we'll work with the SN7407N, which is one of the most basic ICs with open-collector outputs. We'll discuss what it means to have "open collector" outputs, and show some of the different ways that they are used.
This is a schematic symbol for the SN7407N, showing the pinout. There's power (nominal 5 V) and ground, and then six input-output pairs, for a total of 14 pins.
The chip is described as a hex buffer (or hex driver), because there are six independent channels, and the logic function is that each output gives a continuous copy of its input.
The logic function of "buffer" is normally indicated on a schematic symbol by the forward-triangle "amplifier" symbol on each channel - a buffer is just an amplifier with "unity" (X1) gain - and the symbol is modified by the underlined diamond mark that indicates open collector outputs.
Here's a simplified model of what is inside each buffer channel.
The buffer input goes into a logical NOT gate. The output of that NOT gate goes to the base of an NPN bipolar transistor. The emitter of the transistor is connected to ground and the collector of the transistor is connected to the output. This is the "open collector."
When a logical input to the SN7407N is low, the output of the NOT gate is high, so the base of the transistor is held at a voltage above the emitter. This "turns on" the transistor, which means that if there is any voltage (above about 1.5 V) connected to the collector - that is, connected to the output of the SN7407N channel - current will flow from the collector, through the transistor to ground.
When a logical input to the SN7407N is high, the output of the NOT gate is low, so the base of the transistor is held low, at the same voltage as the emitter. The transistor is off, and does not conduct current. That is to say, no current flows to or from the output. It's as though the output is simply not connected to anything.
So, where with most digital electronics, the output of a buffer (or other logic gate) is a "high" or "low" voltage, an open collector has two different states: Output transistor disabled or output transistor enabled. In other words, output (effectively) "not connected" or output connected, through a transistor, to ground.
Here is a most basic example of how that can be useful. Suppose that an open collector output is outfitted with a "pull-up " resistor - a moderate value resistor (typically 2.2k - 10k) connected to a positive power supply rail, say 12V.
Then, when the output transistor is disabled (and the output is effectively "not connected"), the output will be pulled up to the power supply rail value, 12 V in this case. When the output transistor is enabled, the output is effectively connected to ground, and the output goes close to 0 V.
This, therefore, is a neat way to build a logic-level shifter. What we've done is translate a logic-level input (e.g., 0-5V) into a different level (0-12 V). Note that the output does not have to be pulled up that far. If the pull-up were connected to 3V, the output range would be 0-3 V, and you could use that as an input to digital electronics that do not tolerate a full 5 V on their inputs. For the SN7407N, the output can go as high as 30 V, so you can also use it to shift higher as well.
Another way that you can use open collector outputs is as a compact substitute for a set of external, discrete transistors. Suppose that you wanted to drive six sets of three white LEDs each, controlled by six outputs from your microcontroller. To do this, you might hook up each output, through a resistor, to the base of a transistor, and use that transistor to switch the current to the LEDs. The SN7407N could be used the same way - allowing you to substituting one chip for six resistors plus six transistors.
Here's one channel of the last circuit, built on a breadboard. The blinking TTL input comes from the microcontroller, into the SN7407, and the external clip leads bring the 12 V on board. If you look closely, you'll see that there's actually one more component: a vestigial (but harmless) 10k pull-up on the SN7407 output.
This circuit is an example of a "low side" driver, where the LEDs are switched on and off from their "low side," the side closer to ground potential.
There are some things that you can't do with open collector outputs.
It's tempting to think that because your output works to switch 20 mA, it can also be used to source 20 mA, as in the "bad circuit" above. It is true that in conjunction with a pull-up resistor, the open collector output can go up to 12 V, but that's assuming that there is only minimal current draw from that 12 V output. The issue is that the open-collector output does not source current at all; it only can sink current.
So, if any current were to flow through the LEDs, it would not come from the SN7407 output, but from the 12 V rail, through the 10k resistor. And by Ohm's law, you can't get 20 mA to pass through 10 kΩ, unless you provide at least 200 V. This circuit won't come close.
The circuit above would be an example of a "high side" driver if it actually worked. High-side drivers switch LEDs (or other electronics) on and off, using a switch connected to the side at higher voltage. There's actually a very real need for both "high side" and "low side" driver circuits. For example, in a multiplexed LED matrix, each row is switched on one at a time, using a high-side driver connected to each row. Then, low-side drivers connected to each column dictate which LEDs in that row are on and off at a given time.
So how might we go about building a high-side driver that works? Since the open collector output with a pull-up won't source the current that we need, the obvious thing to go back to regular logic (which can source and sink current), and instead place a real switch - a transistor - on the high side of the LEDs.
And so... we end up with another bad circuit. And as far as bad circuits go, this is one of the most common. The problem is that in order to switch the LEDs on or off, the logic output needs to be able to swing the voltage of the transistor base both above and below the voltage at the top of the LED stack, very close to 12 V. As our logic input only ranges between 0 and 5 V, the LEDs will be always on (if a PNP transistor is chosen) or always off (if an NPN transistor is chosen).
It turns out that we actually have a great case here for using one of those "level-shifting" circuits that we discussed earlier, so that we can raise the transistor inputs up to 12 V.
So here's a solution that works, and it's actually a great high-side driver.
The SN7407 output is pulled up to 12 V, through a 10 kΩ resistor. It is also connected, through 1 kΩ, to the base of a PNP transistor. When the SN7407 input is high, the outputs is effectively disconnected, and the base of the transistor is pulled up to 12 V, turning off the transistor, and ensuring that no current flows through the LEDs. When the SN7407 input is low, the base of the transistor is connected to ground through the 1 kΩ resistor, turning on the transistor, and thereby allowing the LEDs to turn on. So, a funny side effect of this is that this is not just a high-side driver, it's an inverting high side driver - the LEDs are on when the input signal is low. If you wanted to reverse this, so that the LEDs were on when the input signal was high, you could simply replace the SN7407N with a SN7406N, the inverting equivalent of the SN7407N.
There's yet another unique way that open collector outputs are useful, and that's in building ad-hoc logic gates by connecting their outputs together.
Above is a simple example. Two SN7407 channels, from inputs X and Y have their outputs connected together and to a pull-up resistor. Then if both X and Y are high, the combined output will also be high. But, if either X or Y is low, the output will be low. This constitutes a logical AND gate, because the output is high if and only if both X and Y are high.
This kind of gate is referred to as a Wired-AND gate (because it's made by wiring it up, rather than using a silicon AND-gate chip) and it's a very useful type of gate. It's particularly useful because you can connect dozens of open collector outputs to the same line, to make a very large AND gate that could (for example) monitor dozens of critical systems and trigger a shutdown if any of them fails.
Other types of wired logic gates can be built this way as well. For example, the above circuit built with inverting SN7406 channels would be a Wired-NOR gate that could be inverted again to yield a Wired-OR gate.
As a footnote, open collector "wired" logic gates like these have largely fallen out of favor. That's partly because it's hard to debug a hardware problem when you have dozens of gates connected together, and partly because of the development (long ago) of tristated logic chips. But they are still, on occasion, the right solution to a problem.
Further reading:
http://en.wikipedia.org/wiki/Open_collector
http://en.wikipedia.org/wiki/Wired_logic_connection
http://www.ti.com/product/sn7407
~
Khái niệm cơ bản: Đầu ra Collector Mở
Một trong những niềm vui của làm việc với các thiết bị điện tử cơ bản kỹ thuật số và logic cửa khẩu IC đặc biệt - nó gần như làm việc như xây dựng với một tập hợp của các khối Lego: Một đầu ra đi ở đây, mà kết nối đầu vào tiếp theo ở đây, và ... cho đến khi nólàm những gì bạn muốn.
Nếu bạn đã chơi với các con chip như thế này, bạn đã có thể cũng đi qua chip với kết quả đầu ra "sưu tập mở". Và nếu không, họ đáng được biết đến. Thu kết quả đầu ra mở hình thành cơ sở của một số thủ thuật thông minh cho các cấp thay đổi và giao tiếp giữa các loại khác nhau của logic, và từ logic với các loại mạch điện tử.
Trong những gì sau, chúng tôi sẽ làm việc với SN7407N, đó là một trong IC cơ bản nhất với các kết quả đầu ra mở nhà sưu tập. Chúng tôi sẽ thảo luận về những gì nó có nghĩa là để có "bộ sưu tập mở" đầu ra, và hiển thị một số trong những cách khác nhau mà chúng được sử dụng.
Đây là một biểu tượng schematic cho SN7407N, hiển thị sơ đồ chân. Có điện (danh nghĩa 5 V) và mặt đất, và sau đó sáu cặp đầu vào-đầu ra, cho tổng cộng 14 chân.
Con chip này được mô tả như là một bộ đệm hex (hex trình điều khiển), bởi vì có sáu kênh độc lập, và các chức năng logic là mỗi đầu ra cho một bản sao liên tục của các đầu vào của nó.
Chức năng logic của "bộ đệm" thường được ghi trên một biểu tượng schematic bởi các biểu tượng hình tam giác hướng về phía trước "khuếch đại" trên mỗi kênh một bộ đệm chỉ là một bộ khuếch đại với "đoàn kết" (X1) đạt được và biểu tượng được sửa đổi bởi nhãn hiệu kim cương nhấn mạnh rằng chỉ ra kết quả đầu ra bộ sưu tập mở.
Dưới đây là một mô hình đơn giản của những gì là bên trong mỗi kênh bộ nhớ đệm.
Các đầu vào đệm đi vào một cửa khẩu không hợp lý. Đầu ra của cửa khẩu mà không đi đến cơ sở của một bóng bán dẫn lưỡng cực NPN. Các nguồn bức xạ của các bóng bán dẫn được kết nối với mặt đất và các nhà sưu tập của các bóng bán dẫn được kết nối với đầu ra. Đây là "hở".
Khi một đầu vào hợp lý để SN7407N là thấp, đầu ra của các cửa khẩu không cao, do đó, các cơ sở của các bóng bán dẫn được tổ chức tại một điện áp trên emitter. Điều này "bật" bóng bán dẫn, điều đó có nghĩa rằng nếu có bất kỳ điện áp (trên khoảng 1,5 V) được kết nối để thu được kết nối với đầu ra của kênh SN7407N - hiện tại sẽ chảy từ thu gom, thông qua bóng bán dẫn đến mặt đất.
Khi một đầu vào hợp lý để SN7407N cao, đầu ra của các cửa khẩu không thấp, do đó, các cơ sở của các bóng bán dẫn được tổ chức thấp, điện áp tương tự như emitter. Bóng bán dẫn, và không tiến hành hiện nay. Đó là để nói, không có dòng chảy hiện tại hoặc từ đầu ra. Nó như là mặc dù sản lượng chỉ đơn giản là không kết nối với bất cứ điều gì.
Vì vậy, với hầu hết các thiết bị điện tử kỹ thuật số, đầu ra của một bộ đệm (hoặc các lý cửa khẩu) là một điện áp "cao" hay "thấp", một nhà sưu tập mở có hai trạng thái khác nhau: vô hiệu hóa ra bóng bán dẫn hoặc sản lượng bóng bán dẫn kích hoạt. Nói cách khác, sản lượng (hiệu quả) "không kết nối" hoặc kết nối đầu ra, thông qua một bóng bán dẫn, với mặt đất.
Dưới đây là một ví dụ cơ bản nhất làm thế nào mà có thể hữu ích. Giả sử rằng sản lượng thu mở được trang bị với một điện trở "kéo lên" - một điện trở giá trị vừa phải (thường 2.2k - 10k) kết nối với một đường sắt cung cấp năng lượng tích cực, 12 Vôn
Sau đó, khi các bóng bán dẫn đầu ra bị vô hiệu hóa (và đầu ra được hiệu quả "không kết nối"), đầu ra sẽ được kéo lên giá trị điện đường sắt cung cấp, V 12 trong trường hợp này. Khi các bóng bán dẫn đầu ra được kích hoạt, đầu ra là có hiệu quả kết nối với mặt đất, và đầu ra đi gần đến 0 V.
Điều này, do đó, là một cách gọn gàng để xây dựng một shifter cấp logic. Những gì chúng tôi đã thực hiện là dịch một đầu vào logic (ví dụ, 0-5V) vào một mức độ khác nhau (0-12 V). Lưu ý rằng đầu ra không có được kéo lên rằng cho đến nay. Nếu kéo lên đã được kết nối với 3V, phạm vi đầu ra sẽ là 0-3 V, và bạn có thể sử dụng như một đầu vào điện tử kỹ thuật số mà không chịu được một V 5 đầy đủ về các yếu tố đầu vào của họ. Đối với SN7407N, sản lượng có thể tăng cao là 30 V, do đó, bạn cũng có thể sử dụng nó để thay đổi cao hơn là tốt.
Một cách khác mà bạn có thể sử dụng kết quả đầu ra thu mở như là một thay thế nhỏ gọn cho một tập hợp bên ngoài, bóng bán dẫn rời rạc. Giả sử rằng bạn muốn lái xe sáu bộ ba đèn LED trắng, kiểm soát kết quả đầu ra từ vi điều khiển của bạn. Để làm điều này, bạn có thể treo lên mỗi đầu ra, thông qua một điện trở, để các cơ sở của các bóng bán dẫn, và sử dụng bóng bán dẫn để chuyển đổi hiện tại để các đèn LED. SN7407N có thể được sử dụng cùng một cách cho phép bạn thay thế một trong những chip cho sáu điện trở cộng với sáu bóng bán dẫn.
Đây là một trong những kênh của các mạch cuối cùng, được xây dựng trên một breadboard. TTL nhấp nháy đầu vào đến từ vi điều khiển, vào SN7407, và clip bên ngoài dẫn mang lại V 12 trên tàu. Nếu bạn nhìn kỹ, bạn sẽ thấy rằng có thực sự là một trong nhiều thành phần: một vestigial (nhưng vô hại) 10k kéo lên trên đầu ra SN7407.
Mạch này là một ví dụ về một trình điều khiển "thấp bên", nơi các đèn LED được bật và tắt từ "bên thấp, bên gần gũi hơn với mặt đất tiềm năng.
Có một số những điều mà bạn không thể làm với các kết quả đầu ra bộ sưu tập mở.
Đó là hấp dẫn để nghĩ rằng bởi vì đầu ra của bạn hoạt động để chuyển đổi 20 mA, nó cũng có thể được sử dụng nguồn 20 mA, như trong "mạch xấu" ở trên. Đó là sự thật, kết hợp với một điện trở kéo lên, sản lượng thu mở có thể lên đến 12 V, nhưng đó là giả định rằng có trận hòa tối thiểu hiện hành từ đó sản lượng V 12. Vấn đề là đầu ra mở-thu không nguồn hiện tại ở tất cả, nó chỉ có thể chìm hiện hành.
Vì vậy, nếu có hiện nay là để lưu thông qua các đèn LED, nó sẽ không đến từ sản lượng SN7407, nhưng từ đường sắt V 12, thông qua các điện trở 10k. Và theo quy định của pháp luật Ohm, bạn không thể nhận được 20 mA để đi qua 10 kΩ, trừ khi bạn cung cấp ít nhất 200 V. Mạch này sẽ không đến gần.
Các mạch ở trên sẽ là một ví dụ của một trình điều khiển "bên" nếu nó thực sự làm việc. Bên trình điều khiển chuyển đổi đèn LED (hoặc các thiết bị điện tử) và tắt, sử dụng một bộ chuyển mạch kết nối sang một bên ở điện áp cao hơn. Có thực sự là một nhu cầu rất thực tế cho cả hai bên "cao" và "thấp bên" trình điều khiển mạch. Ví dụ, trong một ma trận LED ghép, mỗi hàng được bật lên một lúc, bằng cách sử dụng một trình điều khiển phía cao kết nối với mỗi hàng. Sau đó, các trình điều khiển phía thấp kết nối với mỗi sự đòi cột đèn LED trong hàng đó là tại một thời gian nhất định.
Vậy làm thế nào chúng ta có thể đi về xây dựng một trình điều khiển phía cao mà các công trình? Kể từ khi sản lượng thu mở với một pull-up sẽ không nguồn hiện tại mà chúng ta cần, điều hiển nhiên phải trở lại với logic thông thường (nguồn và chìm hiện tại), và thay vào đó đặt một chuyển đổi thực sự - một bóng bán dẫn - ở phía bên cao của đèn LED.
Và như vậy ... chúng tôi kết thúc với một mạch xấu khác. Và như xa như mạch xấu đi, đây là một trong những phổ biến nhất. Vấn đề là để chuyển đổi các đèn LED trên hoặc tắt, đầu ra logic cần phải được thể swing điện áp của các cơ sở bán dẫn ở trên và dưới mức điện áp ở trên cùng của ngăn xếp LED, rất gần đến 12 V. Như đầu vào luận lý của chúng tôi chỉ dao động từ 0 đến 5 V, đèn LED sẽ luôn luôn (nếu một bóng bán dẫn PNP được chọn) hoặc luôn luôn (nếu một transistor NPN được chọn).
Nó chỉ ra rằng chúng tôi thực sự có một trường hợp tuyệt vời ở đây bằng cách sử dụng một trong những người "cấp chuyển mạch mà chúng tôi thảo luận trước đó, để chúng ta có thể nâng cao các yếu tố đầu vào bóng bán dẫn lên đến 12 V.
Vì vậy, đây là một giải pháp hoạt động, và nó thực sự là một trình điều khiển tuyệt vời bên cao.
Sản lượng SN7407 được kéo lên đến 12 V, thông qua một điện trở 10 kΩ. Nó cũng được kết nối thông qua 1 kΩ, các cơ sở của một bóng bán dẫn PNP. Khi đầu vào SN7407 cao, các kết quả đầu ra là có hiệu quả ngắt kết nối, và các cơ sở của các bóng bán dẫn được kéo lên đến 12 V, tắt các bóng bán dẫn, và đảm bảo rằng không có dòng điện chạy qua đèn LED. Khi đầu vào SN7407 thấp, cơ sở của các bóng bán dẫn được kết nối với mặt đất thông qua các điện trở kΩ 1, bật bóng bán dẫn, và do đó cho phép các đèn LED bật. Vì vậy, một tác dụng phụ buồn cười của việc này là rằng đây không phải chỉ là một trình điều khiển cao-side, nó là một đảo ngược lái xe phía cao - các đèn LED là khi tín hiệu đầu vào thấp. Nếu bạn muốn đảo ngược này, để các đèn LED tín hiệu đầu vào là cao, bạn có thể chỉ đơn giản là thay thế các SN7407N với một SN7406N, tương đương với đảo ngược của SN7407N.
Có một cách duy nhất mà kết quả đầu ra thu mở hữu ích, và đó là xây dựng các ad-hoc cổng logic bằng cách kết nối đầu ra của họ với nhau.
Trên đây là một ví dụ đơn giản. Hai SN7407 kênh, từ đầu vào X và Y có kết quả đầu ra của họ kết nối với nhau và một điện trở kéo lên. Sau đó, nếu cả hai X và Y là cao, sản lượng kết hợp cũng sẽ cao. Nhưng, nếu một trong hai X hoặc Y là thấp, sản lượng sẽ thấp. Điều này tạo thành một hợp lý và cửa khẩu, bởi vì đầu ra là cao nếu và chỉ nếu cả hai X và Y là cao.
Đây là loại cửa được gọi là một cổng có dây, (bởi vì nó được thực hiện bởi hệ thống dây điện nó lên, chứ không phải là sử dụng silicon và cửa con chip) và đó là một loại rất hữu ích của cổng. Nó đặc biệt hữu ích bởi vì bạn có thể kết nối hàng chục các kết quả đầu ra thu mở cùng một dòng, để làm cho rất lớn và cửa khẩu mà có thể (ví dụ) hàng chục màn hình của hệ thống quan trọng và gây ra một tắt máy nếu có người trong số họ không thành công.
Các loại khác của cổng logic có dây có thể được xây dựng theo cách này. Ví dụ, các mạch trên được xây dựng với đảo SN7406 kênh sẽ là một dây cổng NOR có thể được đảo ngược một lần nữa để mang lại một dây hoặc cửa khẩu.
Như ghi chú, mở bộ sưu tập "có dây" cổng logic như thế này phần lớn rơi ra khỏi lợi. Đó là một phần bởi vì nó thật khó để gỡ rối một vấn đề phần cứng khi bạn có hàng tá cổng kết nối với nhau, và một phần vì sự phát triển lâu của chip logic tristated. Nhưng họ vẫn còn, nhân dịp, giải pháp đúng cho một vấn đề.
Đọc thêm:
http://en.wikipedia.org/wiki/Open_collector
http://en.wikipedia.org/wiki/Wired_logic_connection
http://www.ti.com/product/sn7407
No comments:
Post a Comment