APC Smart-UPS 1500 і 1000: COM-перехідник на FT232RL, бо через USB немає калібрування
Наші APC Smart-UPS 1500 RM і Smart-UPS 1000 підключені до комп'ютера кабелем USB. Через нього видно стан, але виконуються не всі команди. Калібрування часу роботи через USB не запускається:
$ upscmd -u admin ups1500 calibrate.start
Smart-UPS 1500 RM calibrate.start: CMD-NOT-SUPPORTED
Через USB ДБЖ поводиться як стандартний USB-пристрій живлення (HID), а в наборі команд такого пристрою калібрування просто немає. Повний набір команд дає COM-порт: там ДБЖ розмовляє власним протоколом APC (Smart). Комп'ютерів із COM-портом майже не лишилось, тому робимо перехідник USB → COM на мікросхемі FT232RL. Роз'єм до ДБЖ беремо готовий, зі старої материнської плати: планку COM-порту або сам роз'єм DB9 із задньої панелі.
Стаття з двох частин.
Частина 1. Теорія — чому через USB немає калібрування, які команди де доступні, і три схеми перехідника для будь-яких деталей: модуль MAX3232, два транзистори NPN або два PNP.
Частина 2. Практика — як ми зібрали перехідник з деталей старої материнської плати: фото деталей, схема з нашими деталями й розміщення на макетній платі.
Частина 1. Теорія
Як ДБЖ розмовляє з комп'ютером, що потрібно для перехідника і як працюють усі три схеми. Ці розділи годяться для будь-яких деталей; як ми зібрали перехідник насправді — у частині 2.
Три способи підключення
| Підключення | Як ДБЖ розмовляє | Що вміє |
|---|---|---|
| кабель USB | стандартний USB-пристрій живлення (HID) | стан, самотест, вимкнення; калібрування немає |
| COM-порт (DB9) | протокол APC Smart, 2400 біт/с | усе: калібрування, тести, вимкнення, усі налаштування в пам'яті ДБЖ |
| мережева карта AP9617 (у слот SmartSlot) | карта говорить із ДБЖ протоколом Smart, а вам дає веб-інтерфейс, SNMP і telnet | калібрування, самотест, вимкнення, основні налаштування |
USB і COM одночасно ми не використовуємо: поки працюєте через COM, кабель USB від'єднайте.
Які команди де доступні
Назви в колонках USB і COM — команди NUT (upscmd): через USB їх виконує драйвер usbhid-ups, через COM — apcsmart. Для COM у дужках — буква протоколу Smart, яку можна надіслати й руками з терміналу. Точний перелік для вашого ДБЖ покаже upscmd -l <ім'я ДБЖ>.
| Що зробити | COM (Smart) | USB (HID) | Карта AP9617 |
|---|---|---|---|
| калібрування часу роботи | calibrate.start, calibrate.stop (D) | немає — CMD-NOT-SUPPORTED | так |
| самотест батареї | test.battery.start, test.battery.stop (W) | test.battery.start.quick, test.battery.start.deep, test.battery.stop | так |
| тест індикаторів і пищалки | test.panel.start (A) | test.panel.start, test.panel.stop | не перевіряли |
| імітувати зникнення мережі | test.failure.start (U) | немає | не перевіряли |
| увімкнути вихід | load.on | load.on.delay (із затримкою) | так |
| вимкнути вихід одразу | load.off (Z двічі) | load.off.delay (із затримкою) | так |
| вимкнутись і ввімкнутись, коли повернеться мережа | shutdown.return (S) | shutdown.return | так |
| вимкнутись і не вмикатись | shutdown.stayoff (K двічі) | залежить від драйвера — перевірте upscmd -l | так |
| вимкнутись і ввімкнутись через заданий час | @nnn у терміналі (nnn — у десятих частках години) | shutdown.reboot (через 10 с) | так |
| скасувати заплановане вимкнення | байт 0x7F у терміналі | shutdown.stop | не перевіряли |
| робота через байпас | bypass.start, bypass.stop (^) — лише моделі з байпасом | немає | лише моделі з байпасом |
| звуковий сигнал | налаштування k у терміналі | beeper.enable, beeper.disable, beeper.mute | так |
У NUT для COM команди load.off, shutdown.return, shutdown.stayoff треба надіслати двічі: повторне надсилання — не раніше ніж через 3 с і не пізніше ніж через 15 с після першого.
Налаштування в пам'яті ДБЖ:
| Налаштування | COM (Smart) | USB (HID, upsrw) | Карта AP9617 |
|---|---|---|---|
| кількість зовнішніх батарейних блоків | > | немає | не перевіряли |
| межі мережі для переходу на батарею | l, u | input.transfer.low, input.transfer.high | так |
| чутливість до мережі | s | input.sensitivity | так |
| дата батареї | x (дата останньої заміни) | battery.mfr.date (у NUT зветься датою виготовлення) | так |
| попередження «батарея сідає» | q | battery.runtime.low | так |
| затримки вимкнення й увімкнення | p, r | ups.delay.shutdown, ups.delay.start | так |
| калібрування вольтметра й константа батареї | лише в режимі PROG через COM | немає | немає |
Повний перелік букв протоколу Smart із відповідями — у статті про APC Smart-UPS з батареєю LiFePO4.
Скільки цифр після коми
Найточніші числа дає COM: протокол Smart віддає їх текстом із фіксованою кількістю знаків.
| Значення | COM (Smart) | USB (HID) | Карта AP9617 |
|---|---|---|---|
| напруга батареї | соті: 27.40 | залежить від прошивки ДБЖ, перевірте upsc | не перевіряли |
| частота мережі | соті: 50.00 | залежить від прошивки ДБЖ | не перевіряли |
| напруга на вході й на виході | десяті: 230.4 | залежить від прошивки ДБЖ | не перевіряли |
| навантаження, % | десяті: 012.3 | цілі | не перевіряли |
| заряд батареї, % | десяті: 100.0 | цілі | не перевіряли |
| температура всередині, °C | десяті: 030.1 | залежить від прошивки ДБЖ | не перевіряли |
| прогноз часу роботи | цілі хвилини: 0117: | цілі секунди | не перевіряли |
- COM гарантовано дає соті там, де вони є в протоколі: напруга батареї й частота мережі.
- USB: стандарт USB-пристроїв живлення задає заряд і навантаження цілими відсотками. Решту ДБЖ віддає з тією точністю, яку закладено в прошивку. Що саме бачить ваш NUT, покаже
upsc ups1500. - Карта AP9617 зчитує значення з ДБЖ тим самим протоколом Smart, але скільки знаків лишає у веб-інтерфейсі й у SNMP, ми ще не перевіряли. У SNMP звичайні показники APC — цілі числа; точніші, у десятих, є лише в окремому розділі MIB, і не кожна прошивка карти його має. Перевірте
snmpwalkна своїй карті.
Що потрібно
| Що | Навіщо |
|---|---|
| модуль на FT232RL з перемичкою 5V / 3.3V | USB → послідовний порт із логічними рівнями (TTL) |
| перетворювач рівнів: модуль MAX3232 (схема 1) або два транзистори, 4–5 резисторів і 2 діоди (схеми 2 і 3) | перетворює TTL на рівні RS-232, які розуміє ДБЖ |
| планка COM-порту зі старої материнської плати | готовий роз'єм DB9 «тато» під гніздо ДБЖ і колодка 2×5 для дротів |
| дроти Dupont: 4 «мама–мама» і 3 «тато–мама» (для схеми 1) | «мама–мама» — між модулями; «тато–мама» — від модуля MAX3232 у колодку планки, бо колодка сама гніздова |
| мультиметр | продзвонити планку, перевірити напруги й транзистори |
Чому не можна FT232RL напряму до ДБЖ. FT232RL видає TTL: у спокої лінія тримає +5 В (або +3,3 В), «нуль» — 0 В. RS-232 інвертований: у спокої лінія від'ємна, «нуль» — додатна напруга, а розмах у ДБЖ — до 10–12 В. ДБЖ такого сигналу не зрозуміє, а напруга з ДБЖ на вході FT232RL може пошкодити мікросхему: її виводи витримують напругу лише від 0 до приблизно 5,5 В відносно маси. Перетворювач — модуль MAX3232 або два транзистори — робить і інверсію, і потрібні рівні.
Як перевірити самостійно: увімкнений ДБЖ, мультиметр у режимі постійної напруги, чорний щуп — на контакт 9 гнізда ДБЖ (він з'єднаний з корпусом), червоний — по черзі на контакти 1 і 2. На нашому Smart-UPS 1500 RM на одному контакті було 0 В, на другому — 11,3 В. Напруга понад 5,5 В, додатна чи від'ємна, означає RS-232: модуль FT232RL до такої лінії напряму не підключають. Перетворювач правильно прийме і таку, і нульову напругу спокою, тож ставимо його в будь-якому разі.
А як же кабелі, що «працюють напряму»? В описах саморобних кабелів для APC трапляється «підключив напряму — працює». Якщо придивитися, TTL там напряму до ДБЖ не йде ніколи. Або беруть готовий перехідник USB → COM із роз'ємом DB9 (наприклад, на PL2303), у якому поруч із USB-мікросхемою стоїть перетворювач RS-232 (SP3243 або подібний), відпаюють роз'єм і припаюють дроти вже після перетворювача. Або збирають перетворювач із двох транзисторів, як у схемах 2 і 3 нижче. Перевірити просто: якщо на платі перехідника, крім USB-мікросхеми, немає другої мікросхеми, на виводах перехідника — TTL.
5 В чи 3,3 В
| Де | Яка напруга |
|---|---|
| перемичка на FT232RL, схема 1 (MAX3232) | 5V (працює і 3.3V — головне, щоб MAX3232 живився від тієї самої напруги) |
| перемичка на FT232RL, схеми 2 і 3 (транзистори) | лише 5V: тоді до ДБЖ іде близько +3,5–4 В; із 3.3V було б лише близько +2–2,5 В — на межі порогу приймача ДБЖ (до 2,4 В) |
| живлення MAX3232 | від контакту VCC модуля FT232RL — тобто ті самі 5 В |
| лінії до ДБЖ | ± кілька вольт RS-232; їх робить сам MAX3232 із живлення 5 В |
| на планку COM | живлення не подаємо: до ДБЖ ідуть лише дані й маса |
Чому 5V: тоді контакт VCC модуля FT232RL віддає 5 В прямо з USB. На 3.3V той самий контакт живиться від внутрішнього стабілізатора FT232RL (до 50 мА). MAX3232 цього вистачає, але запасу менше. Логічні рівні між FT232RL і MAX3232 збігаються в обох варіантах, бо обидві мікросхеми живляться від однієї напруги.
⚠ Беріть саме MAX3232, а не MAX232: MAX232 розрахований лише на 5 В, а MAX3232 працює від 3 до 5,5 В.
Схема 1: модуль MAX3232
| FT232RL | MAX3232 | Планка COM, контакт DB9 | У ДБЖ |
|---|---|---|---|
| VCC (5 В) | VCC (ніжка 16) | — | — |
| GND | GND (ніжка 15) | 9 | маса |
| TXD | T1IN (11) → T1OUT (14) | 1 | прийом ДБЖ |
| RXD | R1OUT (12) ← R1IN (13) | 2 | передача ДБЖ |
- Номери ніжок — для самої мікросхеми MAX3232. На модулі контакти зазвичай підписано TXD / RXD з боку TTL і з боку RS-232; звіряйтеся з підписами свого модуля.
- Якщо на модулі MAX3232 стоїть власний роз'єм DB9, сигнали беріть з контактних майданчиків, а не з цього роз'єму: розпіновка в різних модулях різна.
- DTR, RTS, CTS, DSR і DCD не підключайте. У деяких кабелях APC ці лінії керують вимкненням ДБЖ, а Smart-протоколу вони не потрібні.
- Це та сама розпіновка, що й у фірмовому кабелі APC 940-0024C: комп'ютер передає на контакт 1 ДБЖ, приймає з контакту 2, маса — контакт 9. Звичайний прямий кабель COM тут не працює.
Планка COM-порту. Роз'єм DB9 «тато» на планці вставляється прямо в гніздо ДБЖ, тож контакти 1, 2 і 9 на схемі — це одночасно контакти ДБЖ. Від роз'єму йде шлейф до колодки 2×5 (та, що вдягається на штирі материнської плати). Як контакти DB9 розкладено по отворах колодки, залежить від виробника плати, тому:
- Мультиметр у режимі продзвонки.
- Один щуп — на контакт 1 роз'єму DB9 (номери вибито на пластмасі біля контактів), другим шукайте отвір колодки, який дзвониться. Так само для контактів 2 і 9.
- Позначте ці три отвори маркером: у них вставляються дроти від MAX3232.
Трапляються дві розкладки, тож перевіряти треба однаково. Intel (більшість плат за останні двадцять років): отвір N — контакт DB9 N, тобто DB9-1 → отвір 1, DB9-2 → отвір 2, DB9-9 → отвір 9. DTK (старі плати):
| Отвір колодки | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| контакт DB9 | 1 | 6 | 2 | 7 | 3 | 8 | 4 | 9 | 5 |
Тоді: DB9-1 → отвір 1, DB9-2 → отвір 3, DB9-9 → отвір 8.
Без пайки й без MAX3232 можна взяти готовий кабель USB → RS-232 на FT232RL з роз'ємом DB9: перетворювач рівнів у ньому вже є. До ДБЖ тоді потрібен лише перехідник на три дроти: контакт 2 кабелю — на контакт 2 ДБЖ, 3 — на 1, 5 — на 9.
Схема 2: два транзистори NPN
Якщо модуля MAX3232 немає, перетворювач можна зібрати з двох транзисторів, які легко випаяти зі старих плат. Транзистор Q1 передає сигнал від ДБЖ до FT232RL, Q2 — від FT232RL до ДБЖ. Кожен із них ще й інвертує сигнал, тому окремо вмикати інверсію не треба.
| Деталь | Скільки | Чим замінити |
|---|---|---|
| Q1, Q2 — малопотужний транзистор NPN | 2 | будь-який із розділу «Які транзистори підійдуть» |
| R1, R2, R3 — резистор 10 кОм | 3 | 4,7–22 кОм |
| R4 — резистор 1 кОм | 1 | 680 Ом – 1,5 кОм |
| D1, D2 — діод 1N4148 | 2 | 1N4001–1N4007 або інший малий кремнієвий |
| Звідки | Через що | Куди |
|---|---|---|
| контакт 2 ДБЖ (передача ДБЖ) | R1 | база Q1 |
| маса | D1, смужкою до бази | база Q1 |
| емітер Q1 | — | маса |
| колектор Q1 | — | RXD FT232RL |
| VCC FT232RL | R2 | колектор Q1 |
| TXD FT232RL | R3 | база Q2 |
| емітер Q2 | — | маса |
| колектор Q2 | — | контакт 1 ДБЖ (прийом ДБЖ) |
| VCC FT232RL | R4, далі D2 смужкою до колектора | колектор Q2 |
| GND FT232RL | — | контакт 9 ДБЖ |
Навіщо тут транзистори
ДБЖ і FT232RL передають ті самі байти, але різними напругами:
| Сторона | «1» (і стан спокою) | «0» | Що витримує вхід |
|---|---|---|---|
| ДБЖ, RS-232 | від −5 до −12 В | від +5 до +12 В | ±15 В і більше |
| FT232RL, TTL (живлення 5 В) | +5 В | 0 В | лише від 0 до 5,5 В |
Тобто перетворювач має зробити дві речі: змінити рівні (±12 В ↔ 0 / 5 В) і перевернути сигнал, бо в RS-232 «1» від'ємна, а в TTL — додатна. MAX3232 робить це всередині мікросхеми, а тут цю роботу виконують два транзистори — по одному на кожен напрям.
Транзистор тут — це ключ, тобто вимикач, яким керує малий струм бази. Транзистор NPN відкривається, коли база приблизно на 0,6 В вища за емітер: тоді колектор з'єднується з емітером, у цій схемі — з масою. Коли ця різниця менша, транзистор закритий (ключ розімкнений). Резистор перед базою обмежує цей струм приблизно до 1 мА, тому на вхід можна подавати і 12 В.
Звідси дві властивості, на яких тримається схема:
- Вихід бере напругу не з входу, а зі свого живлення. Ключ лише з'єднує або роз'єднує, а напругу на виході задає +5 В модуля через резистор. Тому ±12 В від ДБЖ стають 0 / 5 В для FT232RL, а 0 / 5 В від FT232RL — близько 0 / +3,5–4 В для ДБЖ.
- Ключ перевертає сигнал: напруга на базі є — на виході 0 В, немає — на виході +5 В. Це якраз та інверсія, якої вимагає RS-232, тому в програмі чи драйвері нічого вмикати не треба.
Що відбувається в схемі 2
Прийом: ДБЖ → комп'ютер (Q1).
| Що передає ДБЖ | Контакт 2 ДБЖ | Q1 | RXD FT232RL | Що отримує FT232RL |
|---|---|---|---|---|
| спокій або «1» | від −5 до −12 В | закритий | +5 В через R2 | «1» |
| «0» | від +5 до +12 В | відкритий | ≈ 0 В (Q1 на масу) | «0» |
Передача: комп'ютер → ДБЖ (Q2).
| Що передає FT232RL | TXD FT232RL | Q2 | Контакт 1 ДБЖ | Що отримує ДБЖ |
|---|---|---|---|---|
| спокій або «1» | +5 В | відкритий | ≈ 0 В (Q2 на масу) | «1» |
| «0» | 0 В | закритий | ≈ +3,5–4 В через R4 і D2 | «0» |
Справжнього мінуса на контакті 1 немає, але приймач RS-232 вважає «0» усе, що вище його порогу (від 1 до 2,4 В залежно від мікросхеми), а близько 0 В — спокоєм. За стандартом смуга від −3 до +3 В невизначена, але на практиці приймачі працюють саме так, тому +3,5–4 В він розуміє. На цьому тримається більшість саморобних кабелів на транзисторах.
Що робить кожна деталь:
- R1 (10 кОм) — обмежує струм бази Q1 і струм, який схема бере з лінії ДБЖ: при +12 В це близько 1 мА.
- D1 — захищає Q1. Коли лінія від'ємна, D1 відкривається і не дає базі опуститися нижче за −0,6 В. Без нього на перехід база–емітер прийшло б до −12 В у зворотному напрямі, а він витримує лише близько 5 В.
- Q1 — ключ прийому: відкритий замикає RXD на масу.
- R2 (10 кОм) — «підтягує» RXD до +5 В, поки Q1 закритий. Без нього RXD тримала б лише слабка внутрішня підтяжка FT232RL (близько 200 кОм), а її мало проти перешкод.
- R3 (10 кОм) — обмежує струм бази Q2 і струм, який бере вивід TXD: близько 0,4 мА.
- Q2 — ключ передачі: відкритий притискає контакт 1 ДБЖ до маси.
- R4 (1 кОм) — подає на контакт 1 ДБЖ +5 В модуля, поки Q2 закритий. Саме 1 кОм, а не 10: приймач ДБЖ сам навантажує лінію (3–7 кОм на масу), і з 10 кОм до нього дійшло б лише близько 1,5 В.
- D2 — пропускає струм тільки від R4 до ДБЖ і, якщо на контакті 1 опиниться напруга, вища за +5 В (наприклад, кабель вставили не туди), не пустить її в живлення модуля FT232RL.
- Маса (GND модуля — контакт 9 ДБЖ) — спільна точка відліку: без неї напруги з обох боків не мають сенсу, і нічого не працюватиме.
Роз'єм до ДБЖ — та сама планка COM, що й у схемі 1: контакти 1, 2 і 9 на колодці шукайте так само.
Схема 3: два транзистори PNP
Підходять і транзистори PNP — наприклад, PMBT2907A у корпусі SOT-23. Ця схема — дзеркальна копія схеми 2: емітери з'єднані з +5 В, а резистори, що тримають стан спокою, — з масою. Транзистори PNP не ставте в схему 2, а NPN — у схему 3: працювати не будуть.
| Деталь | Скільки | Чим замінити |
|---|---|---|
| Q1, Q2 — малопотужний транзистор PNP | 2 | будь-який із розділу «Які транзистори підійдуть» |
| R1–R5 — резистор 10 кОм | 5 | 4,7–22 кОм |
| D1, D2 — діод 1N4148 | 2 | 1N4001–1N4007 або інший малий кремнієвий |
| Звідки | Через що | Куди |
|---|---|---|
| VCC FT232RL | — | емітер Q1 |
| контакт 2 ДБЖ (передача ДБЖ) | R1 | база Q1 |
| база Q1 | R5 | емітер Q1 (VCC) |
| база Q1 | D1, смужкою до VCC | VCC FT232RL |
| колектор Q1 | — | RXD FT232RL |
| колектор Q1 | R2 | маса |
| VCC FT232RL | — | емітер Q2 |
| TXD FT232RL | R3 | база Q2 |
| колектор Q2 | D2, смужкою в бік ДБЖ | контакт 1 ДБЖ (прийом ДБЖ) |
| контакт 1 ДБЖ | R4 | маса |
| GND FT232RL | — | контакт 9 ДБЖ |
Що відбувається в схемі 3
Транзистор PNP — дзеркало NPN: він відкривається, коли база приблизно на 0,6 В нижча за емітер. Емітери тут з'єднані з +5 В, тож відкритий ключ з'єднує колектор не з масою, а з +5 В. Сигнал так само перевертається: низька напруга на вході — +5 В на виході.
Прийом: ДБЖ → комп'ютер (Q1).
| Що передає ДБЖ | Контакт 2 ДБЖ | Q1 | RXD FT232RL | Що отримує FT232RL |
|---|---|---|---|---|
| спокій або «1» | від −5 до −12 В | відкритий | +5 В (Q1 від VCC) | «1» |
| «0» | від +5 до +12 В | закритий | ≈ 0 В через R2 | «0» |
Q1 відкритий, поки напруга на лінії нижча приблизно за +4 В, — тобто і при від'ємній напрузі спокою, і при нулі.
Передача: комп'ютер → ДБЖ (Q2).
| Що передає FT232RL | TXD FT232RL | Q2 | Контакт 1 ДБЖ | Що отримує ДБЖ |
|---|---|---|---|---|
| спокій або «1» | +5 В | закритий | ≈ 0 В через R4 | «1» |
| «0» | 0 В | відкритий | ≈ +4 В (від VCC через D2) | «0» |
Що робить кожна деталь:
- R1 (10 кОм) — обмежує струм бази Q1 і струм, який схема бере з лінії ДБЖ.
- R5 (10 кОм, база — емітер Q1) — тримає Q1 закритим, коли на лінії +4 В і більше. Без нього під час перевірки «петлею» (див. нижче) Q1 лишався б відкритим.
- D1 (від бази Q1 до +5 В) — захищає Q1. Без D1 база при +12 В на лінії піднялася б приблизно до +8,5 В (R1 і R5 ділять напругу навпіл), тобто на 3,5 В вище за емітер. Якщо на лінії до +15 В або R1 менший за R5, різниця сягає 5 В і більше, а PMBT2907A витримує у зворотному напрямі лише 5 В. D1 не дає базі піднятися вище за +5,6 В і відводить надлишок у живлення модуля.
- Q1 — ключ прийому: відкритий подає на RXD +5 В.
- R2 (10 кОм) — притягує RXD до маси, поки Q1 закритий.
- R3 (10 кОм) — обмежує струм бази Q2 і струм, який бере вивід TXD.
- Q2 — ключ передачі: відкритий подає +5 В у бік ДБЖ.
- D2 — пропускає струм тільки від Q2 до ДБЖ і не пускає додатну напругу з контакту 1 ДБЖ через Q2 у вивід TXD.
- R4 (10 кОм) — тримає контакт 1 ДБЖ на 0 В, поки Q2 закритий. Тут вистачає 10 кОм, бо +4 В подає відкритий Q2, а не резистор.
- Маса (GND модуля — контакт 9 ДБЖ) — спільна точка відліку, як і в схемі 2.
Які транзистори підійдуть
Потрібні малопотужні транзистори, які стоять на платах сотнями. Струми тут менші за 2 мА, тож годиться майже будь-який.
| Тип | З ніжками | SMD, маркування на корпусі |
|---|---|---|
| NPN — для схеми 2 | BC547, BC548, BC546, BC337, 2N3904, 2N2222, S9013, S9014, S8050, КТ315 | 1AM (MMBT3904), 1F і 1G (BC847), 1P (MMBT2222A), J3 (S9013), J6 (S9014), Y1 (SS8050) |
| PNP — для схеми 3 | 2N2907, BC557, BC558, BC327, 2N3906, S9012, S8550, КТ361 | 2F (PMBT2907A, MMBT2907A), 2A (MMBT3906), 3F і 3G (BC857) |
До маркування SMD часто додано літеру заводу: наприклад, PMBT2907A буває з маркуванням t2F.
Як розпізнати випаяний транзистор мультиметром у режимі «діод»:
- Один щуп — на будь-який вивід, другим по черзі торкніться двох інших. Шукайте вивід, від якого обидва рази прилад показує 0,6–0,7 В: це база.
- Якщо на базі був червоний щуп — транзистор NPN, якщо чорний — PNP.
- Емітер і колектор надійніше визначити гніздом hFE мультиметра або за документацією на транзистор (там є і маркування SMD).
⚠ Порядок ніжок у корпусі TO-92 буває різний. Якщо тримати транзистор пласкою стороною до себе ніжками вниз, у BC547 зліва направо — колектор, база, емітер, а в 2N3904 і S9013 — емітер, база, колектор. Перевірте свій екземпляр перед пайкою.
SOT-23 (PMBT2907A і більшість SMD-транзисторів): покладіть написом до себе, одиночною ніжкою вгору. Верхня ніжка — колектор (3), нижня ліва — база (1), нижня права — емітер (2). Корпус дрібний: зручно приклеїти його на шматок плати й припаяти до виводів тонкі дроти.
Перевірка
Спершу без ДБЖ:
- Лише для схем 2 і 3. Перемичка — 5V, модуль у USB, ДБЖ не підключено. Чорний щуп мультиметра — на масу: на дроті до контакту 1 ДБЖ має бути близько 0 В. На RXD у схемі 2 — близько +5 В, у схемі 3 — близько 0 В: без ДБЖ R5 тримає Q1 закритим.
- «Петля»: з'єднайте між собою дроти, що йдуть на контакти 1 і 2 ДБЖ, і відкрийте термінал (налаштування — у кроці 3 розділу «Потім із ДБЖ»). Набрані літери мають повертатися на екран. Повертаються — і передача, і прийом працюють. Для схеми 1 так само: з'єднайте контакти модуля MAX3232, що йдуть на контакти 1 і 2.
Потім із ДБЖ:
- Модуль FT232RL — у USB. У Linux з'явиться
/dev/ttyUSB0, у Windows — новий COM-порт у диспетчері пристроїв. - Кабель USB від ДБЖ від'єднайте, планку вставте в COM-гніздо ДБЖ.
- Термінал: 2400 біт/с, 8 біт, без парності, 1 стоп-біт, без керування потоком. Linux —
screen /dev/ttyUSB0 2400, Windows — PuTTY, Serial, ваш COM-порт, 2400. - Натисніть
Y(без Enter) — ДБЖ має відповістиSM. ДаліB— напруга батареї,f— заряд. - Нічого не приходить — поміняйте місцями дроти на контактах 1 і 2: найчастіша помилка саме тут.
Через NUT (Linux), файл /etc/nut/ups.conf:
[ups1500]
driver = apcsmart
port = /dev/ttyUSB0
Після перезапуску NUT — калібрування:
upscmd -u admin ups1500 calibrate.start
ДБЖ запускає калібрування лише з повністю зарядженою батареєю і під стабільним навантаженням. Як ми калібрували й на що дивитися — у статті про калібрування батарей APC Smart-UPS 1000.
Кілька ДБЖ і однакові перехідники
Два перехідники FT232RL на одному комп'ютері виглядають однаково, і після перезавантаження /dev/ttyUSB0 та /dev/ttyUSB1 можуть помінятися місцями. Тоді NUT опитує не той ДБЖ. Розрізняти їх треба за серійним номером мікросхеми FT232RL: у кожної справжньої FT232RL він свій і записаний у її пам'ять.
Linux. Для кожного перехідника є постійне ім'я з серійним номером:
$ ls -l /dev/serial/by-id/
usb-FTDI_FT232R_USB_UART_XXXXXXXX-if00-port0 -> ../../ttyUSB0
usb-FTDI_FT232R_USB_UART_YYYYYYYY-if00-port0 -> ../../ttyUSB1
Його й пишемо в ups.conf замість /dev/ttyUSB0:
[ups1500]
driver = apcsmart
port = /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_XXXXXXXX-if00-port0
[ups1000]
driver = apcsmart
port = /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_YYYYYYYY-if00-port0
Побачити лише серійний номер: udevadm info -q property -n /dev/ttyUSB0 | grep ID_SERIAL_SHORT.
Windows. Драйвер FTDI запам'ятовує номер COM-порту за серійним номером перехідника: той самий перехідник отримує той самий COM-порт у будь-якому гнізді USB. Серійний номер видно в диспетчері пристроїв: порт → Властивості → Відомості → «Шлях до екземпляра пристрою».
⚠ Дешеві копії FT232RL часто мають однаковий серійний номер на всіх екземплярах. Тоді в /dev/serial/by-id/ лишиться лише одне ім'я на два перехідники. Що робити:
- записати кожному свій номер програмою FTDI FT_PROG (Windows) або
ftdi_eeprom(Linux); на копіях запис не завжди вдається; - або прив'язатися до гнізда USB:
/dev/serial/by-path/…— ім'я залежить від того, у яке гніздо вставлено перехідник, тож гнізда тоді не міняйте.
Перевірте, що це справді той ДБЖ. У кожного ДБЖ є і свій серійний номер: команда n у терміналі, у NUT — ups.serial, поруч ups.model. Після налаштування переконайтеся, що ups1500 справді показує модель Smart-UPS 1500 RM. Через USB драйвер usbhid-ups уміє вибирати ДБЖ саме за цим номером — рядок serial = … у ups.conf.
Серійні номери ДБЖ і перехідників нікуди не публікуйте: у прикладах вище замість них стоять XXXXXXXX і YYYYYYYY.
Частина 2. Практика: збираємо перехідник з деталей старої материнської плати
Тут — як ми зібрали схему 2 (два транзистори NPN) з того, що було під рукою. Транзистори, діоди, резистори й роз'єм DB9 ми випаяли зі старої материнської плати, купувати їх не довелося; не з материнської плати — лише модуль FT232RL. Як працює схема і чим замінити деталі — у частині 1.
Деталі
| Деталь | Що взяли | Як перевірили |
|---|---|---|
| Q1, Q2 | MMBT2222A (NPN) у корпусі SOT-23, маркування 1P; поруч може стояти ще один символ — код дати | тестер транзисторів: обидва NPN, hFE 223 і 227, Ube 0,62 і 0,58 В |
| D1, D2 | скляні SMD-діоди (MiniMELF): помаранчевий корпус, чорна смужка — катод | мультиметр у режимі «діод»: 0,6 В у прямому напрямку |
| R1, R2, R3 | SMD-резистори 10 кОм | мультиметр |
| R4 | SMD-резистор 1 кОм | мультиметр |
| роз'єм до ДБЖ | DB9 «тато» із задньої панелі тієї ж материнської плати (кутовий, для пайки на плату) | номери контактів відлиті на пластмасі |
| модуль FT232RL | червона плата з роз'ємом mini-USB, перемичкою 5V / 3.3V і колодкою на 6 контактів | — |
- Номери на екрані тестера — це гнізда самого тестера. Одиночна ніжка SOT-23 стоїть у гнізді 2, і тестер каже, що там колектор; нижня ліва ніжка (гніздо 1) — база, нижня права (гніздо 3) — емітер. Це збігається зі стандартною розпіновкою SOT-23 (1 — база, 2 — емітер, 3 — колектор), відрізняються лише номери. Тому паяйте за положенням ніжки, а не за цифрами на екрані.
- Роз'єм DB9 з материнської плати замінює планку COM: шукати отвори на колодці не треба, дроти паяємо прямо до ніжок 1, 2 і 9. З боку ніжок нумерація дзеркальна, тож звіряйтеся з номерами на пластмасі.
- Модуль FT232RL: з колодки на 6 контактів потрібні лише VCC, GND, TXD і RXD; DTR і CTS не підключаємо. Перемичка — на 5V.
Схема з нашими деталями
R4 — саме 1 кОм, решта — 10 кОм. R4 подає +5 В модуля на вхід ДБЖ, а приймач RS-232 сам навантажує лінію: зазвичай 3–7 кОм на масу. З 1 кОм на контакті 1 буде близько +3,5–4 В, а з 10 кОм — лише близько 1,5 В, і ДБЖ може не розпізнати «0». Підійде від 680 Ом до 1,5 кОм: з 2,2 кОм на слабкому приймачі ДБЖ буде лише близько 2,5 В — на самому порозі.
Розміщення на макетній платі
Щоб перехідник вийшов маленьким, деталі стоять щільно на макетній платі з кроком 2,54 мм: зайнято 10 × 5 отворів, приблизно 25 × 13 мм. Угорі — шина +5 В, унизу — шина маси, між ними два каскади: ліворуч прийом (Q1), праворуч передача (Q2).
- Транзистори лягають маркуванням догори між майданчиками: колектор — на майданчик над корпусом, база й емітер — на сусідні знизу ліворуч і праворуч. Ніжки SOT-23 дрібні, тож підпаюйте їх краплею припою або відрізком тонкого дроту.
- Резистори й діоди стоять між двома сусідніми майданчиками. Короткий SMD-резистор, що не дістає до другого майданчика, доточіть відрізком дроту.
- Дріт TXD проходить над шиною маси — беріть ізольований.
- Перед першим увімкненням продзвоніть мультиметром: між шиною +5 В і шиною маси замикання бути не повинно.
Готовий перехідник
Плату з деталями припаяли прямо до ніжок роз'єму DB9, а модуль FT232RL — до плати з другого боку. Вийшов один компактний блок без кабелів між частинами.
Перший запуск: спершу «Driver not connected», потім запрацювало
Linux перехідник побачив одразу:
$ lsusb
… ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
$ ls -l /dev/serial/by-id/
usb-FTDI_FT232R_USB_UART_XXXXXXXX-if00-port0 -> ../../ttyUSB2
А NUT даних від ДБЖ не отримував:
$ upsc apc1500
Error: Driver not connected
Це повідомлення означає, що драйвер ДБЖ не запущений, а чому — з нього не видно. Причин дві: драйвер не стартував через налаштування, або стартував, не дочекався відповіді від ДБЖ і завершився — тоді винен перехідник. Як з'ясувалось, перехідник був справний, а причина — найімовірніше, у налаштуваннях.
1. Подивилися налаштування (у CentOS файл лежить у /etc/ups/, у Debian і Ubuntu — у /etc/nut/):
$ grep -A4 apc1500 /etc/ups/ups.conf
[apc1500]
pollfreq = 5
##09-11-2026## driver = usbhid-ups
##09-11-2026## port = auto
…
Старі рядки для USB були вже закоментовані, а нових для COM-порту ще не було. У розділі не лишилося жодного драйвера, тож запускати було нічого.
2. Вписали драйвер COM-порту і порт за серійним номером FT232RL, а не ttyUSB2, бо номер ttyUSB після перезавантаження може змінитися:
[apc1500]
driver = apcsmart
port = /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_XXXXXXXX-if00-port0
pollinterval = 2
desc = "Smart-UPS 1500 RM"
3. Перезапустили драйвер: systemctl restart nut-driver. Ручна перевірка, upsdrvctl -DD start apc1500, відповіла «Duplicate driver instance detected!». Тобто драйвер уже працював, а ручний запуск зупинив його й запустив свою копію.
4. Ще раз systemctl restart nut-driver, щоб драйвером знову керував systemd, — і дані пішли:
$ upsc apc1500
battery.voltage: 27.67
device.model: Smart-UPS 1500 RM
driver.name: apcsmart
input.frequency: 50.00
input.voltage: 220.3
output.voltage: 220.3
ups.firmware: 617.3.I
ups.load: 022.7
ups.serial: ASXXXXXXXXXX(
ups.status: OL
ups.temperature: 026.5
Під час пошуку причини перехідник ще й виймали з USB і вставляли знову. Тому точно сказати, що саме допомогло, не можемо. Найімовірніше — правильний розділ у ups.conf і перезапуск драйвера після правки.
Що з цього варто запам'ятати:
- «Driver not connected» — спершу перевірте
ups.confі перезапустіть драйвер, а вже потім шукайте помилку в пайці. - Після кожної правки
ups.confперезапускайте драйвер:systemctl restart nut-driver. - «Duplicate driver instance detected!» — драйвер уже запущений; це не помилка перехідника.
Дужка в серійному номері. Через COM-порт ДБЖ віддав серійний номер із зайвою дужкою в кінці: ASXXXXXXXXXX(, хоча через USB той самий ДБЖ показував його без дужки. Значення однакове в кожному опитуванні, тож це не збій лінії, а так відповідає сам ДБЖ або так читає драйвер. Якщо ваша програма впізнає ДБЖ за серійним номером, порівнюйте лише літери й цифри. Інакше вона вирішить, що ДБЖ замінили.
Журнал змін статті
| Дата | Що змінилось |
|---|---|
| 08.11.2026 | Перша версія: команди через COM, USB і мережеву карту AP9617, точність значень, схема перехідника FT232RL + MAX3232, кілька ДБЖ на одному комп'ютері. |
| 08.11.2026 | Схеми без MAX3232: на двох транзисторах NPN і на двох PNP; які транзистори підійдуть і як їх розпізнати; перевірка «петлею» до підключення ДБЖ; чому «кабелі напряму» насправді мають перетворювач; як мультиметром переконатися, що FT232RL не можна підключати до ДБЖ напряму. |
| 08.11.2026 | Розділ «Наша збірка»: схема 2 деталями зі старої материнської плати (MMBT2222A «1P», скляні діоди, SMD-резистори), практична схема з номерами ніжок SOT-23, чому R4 саме 1 кОм, як читати номери на тестері транзисторів; роз'єм DB9 із материнської плати замість планки COM. |
| 08.11.2026 | Стаття поділена на дві частини: теорія і практика. У практиці — фото деталей зі старої материнської плати з підписами, схема з нашими деталями, розміщення на макетній платі. |
| 09.11.2026 | «Готовий перехідник»: фото зібраного перехідника; перший запуск — спершу «Driver not connected» через налаштування NUT, після виправлення ups.conf і перезапуску драйвера ДБЖ відповідає; дужка в серійному номері через COM. |
| 09.11.2026 | Статтю завершено й опубліковано: вичитано практичну частину, уточнено, чому буває «Driver not connected» (налаштування або перехідник). |
| 09.11.2026 | Схеми 2 і 3: навіщо транзистори і як працює ключ, таблиці «що на вході → що на виході» для обох напрямів, що робить кожна деталь; уточнено напругу до ДБЖ (+3,5–4 В) і заміну R4 (680 Ом – 1,5 кОм). |