Як перетворити цифровий сигнал


29

Мені потрібен спосіб перетворити цифровий сигнал, тобто якщо вхід великий, я хочу, щоб вихід був низьким, а якщо вхід низьким, я хочу, щоб вихід був високим.

Я думаю, що це можна досягти за допомогою одного транзистора PNP, але тут хотілося переконатися. Напруги, з якими я маю справу, менше 5 В.


Детальна обробка інвертора BJT: EE 307 Розділ 2 Проект MoHAT - "Метою цієї сторінки є керівництво зацікавленими в основних операціях інвертора BJT".
Пітер Мортенсен

Відповіді:


34

Або, оскільки ви все одно говорите про цифрові сигнали, ви використовуєте інвертор .

введіть тут опис зображення

Aє входом (для ворота з великою кількістю входів , які будуть A, B, Cі т.д.), Yє вихідним. Якщо це не ускладнює вашу схему занадто сильно, поставте символ введенням зліва.

NXP має інвертори з одним затвором . Всього чотири підключення: джерело живлення, заземлення, вхід і вихід.

Хоча це можна зробити з транзистором і двома резисторами. Це проста схема, але все ж доведеться зробити кілька простих розрахунків. У вас будуть точно такі ж з’єднання, що і з інвертором.
BTW, PNP - це варіант, але частіше буде використовуватися NPN.

редагувати (перегляньте свій коментар)

введіть тут опис зображення

Якщо вхідний сигнал високий, то через R2 буде протікати струм та з'єднання бази-випромінювача транзистора (база, а не затвор). Цей струм посилиться, а струм колектора через R1 спричинить падіння напруги, так що вихід буде низьким. Вхід високий, низький вихід.
Якщо вхідний сигнал низький, то не буде ні базового струму, ні колекторного струму. Немає струму через R1 не означає падіння напруги, так що вихід буде на рівні + V. Вхід низький, вихід високий.

Це вже веде трохи далі, але, як я вже сказав у коментарі до Sandun, вихід є дуже несиметричним. Якщо вихід підключений до конденсатора, високий вихідний рівень означатиме, що конденсатор заряджається через R1, що призведе до експоненціального нахилу з постійною часом R1C. Коли вихід знизиться, конденсатор буде розряджатися через набагато менший опір, а нахил буде набагато крутішим. Цю різницю ви не отримаєте із воротами CMOS, які мають симетричні можливості джерела / раковини.

Вхід транзисторної версії також буде проводити (невеликий) струм, коли високий. Версія CMOS матиме невеликий струм витоку як при високому, так і низькому рівні.

В цілому інтегральна логічна брама є переможцем.


Я, звичайно, тут можу заплутатися, але NPN вмикається, коли живлення подається до воріт, а PNP вимикається, коли подається живлення. Має сенс використовувати NPN для посилення сигналу, але це не спричинить інверсію сигналу. Думки?
Метт Руу

2
Ворота призначені для MOSFET, а не BJT. NFET включаються, а PFET відключаються. Але ви повинні переконатися, що джерело підключено належним чином. NPN і PNP - це BJT, і потрібно трохи більше математики, щоб переконатися, що вони працюють правильно
ajs410

коли мова йде про NXP, у вас дуже маленька кімната свободи. Є такі обмеження, як синхронізація, вентилятор, вихід вентилятора, запаси вхідного шуму, глюки тощо. У цьому випадку транзистор використовувати більш ніж просто. Просто тому, що ваші не заблоковані цими обмеженнями.
Стандартний Сандун

@Matt - відредагував мою відповідь.
stevenvh

1
@sandundhammika. Якщо ви створюєте свій власний, у вас все ще є обмеження на вентилятор та запас шуму (вентилятор тут не застосовується). Але ви повинні самі порахувати, які ці межі. Якщо ви використовуєте незакриті ворота, ви можете просто ознайомитись з таблицею даних, щоб дізнатися це. Крім того, споживання електроенергії (ще одне типове обмеження системи), ймовірно, буде набагато краще для позаштатних воріт.
The Photon

24

Так, це можна досягти за допомогою одного транзистора та резистора, але є мікросхеми, спеціально розроблені для перетворення цифрових сигналів. Як не дивно, їх називають інверторами . Ознайомтеся, наприклад, з 74HC04. Це дає шість окремих інверторів в одному 14-контактному пакеті. Є також окремі інвертори (та інші невеликі логічні ворота), доступні в невеликих пакетах SOT-23, що є тим самим пакетом, в який входять окремі транзистори.

Немає підстав намагатися зробити власний інвертор, але так, це можливо.

Додано у відповідь на коментар:

Як я вже говорив, єдиний біполярний транзистор може бути використаний в якості основи для простого інвертора. Як мінімум, потрібен транзистор і базовий резистор. Для повноти я також додаю резистор вихідного навантаження, який, на вашу думку, потрібен, якщо ви не знаєте, що все, що буде підключено до виходу, забезпечить необхідне навантаження. Нічого магічного в транзисторі PNP немає. NPN може бути використаний так само добре. Ось як буде використано кожне:

Зауважте, що кожен має 4 з'єднання: живлення, заземлення, вхід та вихід. Різниця між двома полягає в тому, в якому напрямку він завантажує вхід і в якому напрямку вихід активно рухається проти пасивно витягнутого вантажем. Якщо ви не переймаєтесь цими питаннями, то два схеми функціонально рівноцінні.

Однак це простіше:

Він також швидший, займає меншу потужність у стаціонарному стані, має більший імпеданс імпульсу та менший. Він має такі ж чотири з'єднання, які роблять вище перетворювачі. Одні ворота, подібні до цієї, є в пакетах SOT-23, який є тим самим пакетом, в який входять одиночні транзистори. Для цього потрібна лише одна зовнішня частина, обхідна кришка. Йому не потрібен резистор навантаження, оскільки його вихід активно працює в обох напрямках.

Дійсно, для загального інвертування цифрових сигналів виготовлення власного інвертора нерозумно для звичайних програм.

Поза вікном щодо схематичного малювання:

Сценарій насправді всього три рядки. Ось весь файл:

@echo off
рем
rem MAKE_SCHEM_GIF
рем
rem Створює добре відфільтрований схематичний GIF-файл із необробленого виводу Eagle
rem /temp/a.tif. Отриманий GIF-файл буде /temp/b.gif, і буде
рема сіра шкала.
рем
image_filter /temp/a.tif /temp/b.img -srink 5
image_copy /temp/b.img /temp/b.gif -form -грай
image_disp /temp/b.gif -zoom 1 -dev середовище

Це дуже специфічний разовий сценарій, але працює досить добре для цієї мети. У Eagle я експортую схему у файл зображення \ temp \ a.tif, запустіть сценарій, який робить \ temp \ b.gif. Налаштування Eagle для експорту зображень - 600 DPI і монохромні. Дійсно, це все є. Напевно, це звучить складніше, ніж це є.


1
@MattRuwe це буде "достатньо", але точка Оліна полягає в тому, що виділений чіп зробив би краще (час підйому і падіння було б симетричнішим). PNP може "підтягнутися" до Vdd, але вам потрібно щось відтягнути назад, коли PNP дозволить вихідному плавати. Це "щось" створить асиметрію під час підйому / падіння, виходячи з його імпедансу.
ajs410

Є, має сенс
Метт Руу

1
Чому ваша схема виглядає красивішою, ніж моя? :-)
stevenvh

4
@stevenvh: Має бути, тому що я просто кращий. Якщо серйозно, то я використовую «Орел» і трохи дбаю. Після малювання в Eagle я експортую схему в 600 DPI у файл зображення, потім запускаю скрипт, який фільтрує і стискає його в 5 разів і записує результат у GIF-файл сірого масштабу. Це робить результат розумним розміром без піксельних артефактів. Це робить рядки трохи нечіткими, що є компромісом за відсутність згладжування та видимих ​​пікселів.
Олін Латроп

1
@abdullah: див. додаток для відповіді.
Олін Латроп

8

Ось кілька значень резисторів, які працюють для CMOS-сигналів:

Я знайшов цю тему, тому що хотів підключити старіший "РК-цифровий рюкзак" Arduino. Arduino видає позитивні послідовні сигнали, а цифровий рюкзак хоче перевернутих сигналів. Більш нова версія РК-контролера має перевернуту / не перевернуту перемичку, але моя - ні. Так само можливо генерувати інвертовані послідовні сигнали через програмне забезпечення, але це передбачає запуск нестандартної бібліотеки. Я хотів використовувати стандартні Serial.writeкоманди.

Я спочатку підключив один із 4-х NOR-дисків на 4001 CMOS-квадратичних NOR-воротах як інвертор, але це займає багато місця на моїй дошці, і оскільки ви повинні прив’язати всі невикористані входи до землі, передбачає багато електропроводка. (Я думаю, мені потрібно було підключити всі, крім 3 із 14-ти штифтів у пакеті; все, крім виходів на 3-х невикористаних NOR-іх.)

Я хотів більш простого рішення. Я використовував схему, надану @stevenvh.

Посилання тут:

введіть тут опис зображення

Я маю справу з логікою 5V CMOS при 9600 бодах, тому вхідний опір дуже високий / струм дуже низький. Оскільки я перемикаюсь лише на 9600 бод, я не думаю, що асиметрична поведінка інвертора на основі транзистора мені сильно шкодить.

Я виявив, що резистор 100K на вході (R2 на схемі Stevenvh) працював, і використовував резистор 3,3k як резистор, що піднімається на R1. На підставі моїх розрахунків (I = V / R, 5/3300) ця установка буде мати значення <= 1,5 мА в стані ВКЛ (Дещо менше через внутрішній опір транзистора.) Я можу підключити горщик і побачити, наскільки великий резистор Я можу відійти від все ще є РК-сигнал приймати сигнал.


4

Ось як це зробити CMOS способом:

схематичний

імітувати цю схему - Схематично створено за допомогою CircuitLab

Напруга на рейковій потужності може бути настільки високою, скільки вам подобається, до тих пір, поки вона буде нижчою за напругу пробою в затворі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.