Мигаем светодиодом
| .idea | ||
| UML | ||
| .gitignore | ||
| blink_description.txt | ||
| blink.qar | ||
| blink.qarlog | ||
| blink.qpf | ||
| blink.qsf | ||
| blink.sdc | ||
| blink.v | ||
| LICENSE | ||
| output_file.cof | ||
| output_file.map | ||
| README.md | ||
| signalprobe_qsf.tcl | ||
| tb_blink.v | ||
Преобразователь 3.3В → 24В для входа TX01
Назначение
Преобразователь уровня сигнала с GPIO микроконтроллера 3.3В (STM32F407) на дискретный вход 24В (TX01) с инверсией логики. Подходит для подключения ПЛИС/МК к промышленным входам 24В. [web:10]
Схема
+24V (внешний источник)
GPIO pin_10 │
│ ┌┴┐
│ │ │ R3 = 4.7kΩ
│ └┬┘
│ │
│ ├──────────► TX01 (вход 24V)
│ │
└─[ 10kΩ ]─┬[B] │
│ │
┌┴┐ ┌──┴──┐
R2 │ │ │ C │
100kΩ │ │ │ NPN │ Q1: BC547B / 2N2222A / 2N3904
└┬┘ │ Q1 │
│ │ E │
GND └──┬──┘
│ │
─┴─ GND
GND │
│
GND ─────────────┴──────────── GND (общий)
Принцип работы
R1 (10kΩ) и R2 (100kΩ) образуют резистивный делитель напряжения на базе транзистора. [web:8]
- При GPIO = 3.3В на базе формируется около 3.0В (до открытия перехода база‑эмиттер). [web:8]
- При
V_{BE} \approx 0.7Втранзистор открывается и входит в насыщение, коллектор притягивается к GND. [web:8] - Избыток напряжения рассеивается на делителе R1–R2. [web:8]
Выход TX01 подтянут к +24В через R3 (4.7kΩ):
- Когда транзистор закрыт, TX01 ≈ 24В (логическая 1 для входа 24В). [web:8]
- Когда транзистор открыт, TX01 ≈ 0.2В (насыщение, логический 0). [web:8]
Таблица состояний
| GPIO PA5 | Транзистор | TX01 | Логика TX01 |
|---|---|---|---|
| 0В | Закрыт | ~24В | HIGH |
| 3.3В | Открыт | ~0.2В | LOW |
Инверсия логики:
- LOW на GPIO → HIGH на TX01
- HIGH на GPIO → LOW на TX01
Расчеты
Ток базы при GPIO = 3.3В:
I_b = \frac{V_{in} - V_{BE}}{R1 + R2}
I_b = \frac{3.3V - 0.7V}{110k\Omega} \approx 24\ \mu A
Ток коллектора (при подтяжке 24В через 4.7kΩ):
I_c = \frac{24V}{4.7k\Omega} \approx 5.1\ mA
Требуемый коэффициент усиления:
\beta = \frac{I_c}{I_b} \approx \frac{5.1mA}{24\mu A} \approx 212
Подходящие транзисторы (по h_{FE} в активном режиме, с запасом для насыщения): [web:8][web:9]
- BC547B:
hFE \approx 200–450[web:8] - 2N2222A:
hFE \approx 100–300[web:9] - 2N3904:
hFE \approx 100–300[web:9]
Назначение элементов
-
R1 (10kΩ)
- Ограничивает ток базы.
- Формирует верхнее плечо делителя напряжения.
-
R2 (100kΩ)
- Обеспечивает разряд базы при выключении.
- Не дает базе и GPIO «плавать».
- Ускоряет выключение транзистора.
- Формирует нижнее плечо делителя.
-
R3 (4.7kΩ)
- Pull‑up к +24В для входа TX01.
- Ограничивает ток коллектора транзистора.
- Формирует уровень HIGH на входе 24В.
-
Q1 (NPN: BC547B / 2N2222A / 2N3904)
- Работает как ключ в насыщении. [web:8][web:9]
- Коммутирует вход TX01 на землю.
- Обеспечивает развязку 3.3В GPIO и 24В линии.
Особенности применения
- Требуется общий GND между STM32/ПЛИС и источником 24В. [web:10]
- Логика инверсная, это нужно учесть в прошивке. [web:10]
- Ток через вход TX01 ≈ 5 mА при 24В, что подходит для большинства промышленных дискретных входов. [web:8]
- Схема подходит для частот от единиц герц до десятков килогерц (ограничения по R1/R2 и паразитным емкостям). [web:8]