Плата PCA9685 зблизька — що на ній є і навіщо
Плата PCA9685 придумана для роботів на сервоприводах. Тому більша частина того,
що на ній є, — гвинтова клема, товстий конденсатор, силова шина V+ через усі
шістнадцять роз'ємів — існує заради живлення сервомашинок і в нашому щитку не
використовується взагалі.
Контролеру oCBot від плати потрібні чотири виводи з двадцяти з гаком. Ця стаття каже, які саме, що з рештою робити (нічого) і чого не робити ніколи.
Мікросхема: що вона насправді робить#
У центрі плати — мікросхема PCA9685 виробництва NXP: 16-канальний 12-бітний ШІМ-контролер з керуванням по I2C.
Головна її цінність не в кількості каналів, а в тому, що вона працює сама. Контролер один раз надсилає по I2C «канал 3 — сорок відсотків» і забуває про нього. Далі мікросхема тримає цей рівень власними силами: у неї є вбудований генератор на 25 МГц, зовнішня тактова частота їй не потрібна, а процесор ESP32 звільняється під сценарії, телеметрію й веб-інтерфейс.
Розрядність — 12 біт, тобто 4096 градацій на канал. Прошивка приймає
потужність у відсотках і перераховує її в ці кроки (% × 4095 / 100), тож крок
керування — один відсоток, а роздільної здатності мікросхеми вистачає з
величезним запасом.
Частота ШІМ у PCA9685 спільна для всіх шістнадцяти каналів — це властивість мікросхеми, а не обмеження прошивки. oCBot виставляє 1 кГц. Через це до плати не можна підключити навантаження, яке вимагає іншої частоти, — докладно в статті Сервопривід і плата розширення.
Дві сторони плати: логіка й силове коло#
Фізично плата поділена на дві частини, які майже не перетинаються.
Роз'єм логіки — гребінка 1×6 з торця. Саме через неї плата спілкується з контролером:
| Вивід | Що це | Треба нам |
|---|---|---|
GND |
земля логіки | так — спільна з контролером обов'язково |
OE |
Output Enable, апаратне вимкнення всіх виходів | опційно, окрема стаття |
SCL |
тактування I2C | так |
SDA |
дані I2C | так |
VCC |
живлення логіки, 3.3–5 В | так — 3.3 В від контролера |
V+ |
силова шина сервоприводів | ні |
Така сама гребінка є з протилежного боку плати — часто без запаяних штирків. Вона повністю дублює першу й потрібна для з'єднання плат у ланцюжок; про це — Кілька плат PCA9685 на одній шині.
Силове коло — двоконтактна гвинтова клема (V+ і GND), товстий
електролітичний конденсатор поряд із нею й середній ряд контактів у всіх
шістнадцяти трипінових роз'ємах. Це один спільний рай, від якого мали б
живитись сервомашинки.
Кожен трипіновий роз'єм має контакти в такому порядку:
| Ряд | Контакт | Призначення |
|---|---|---|
| верхній | PWM |
сигнал каналу — єдине, що нам потрібно |
| середній | V+ |
силова шина плати |
| нижній | GND |
земля |
Що ми не використовуємо і чому#
У нашій схемі канал плати — це сигнальний вихід, який відкриває ключ: транзистор, драйвер затвора, буфер ULN2803 перед твердотілкою. Живлення до насоса, вентилятора чи ТЕНа приходить не з плати, а зі свого джерела.
Звідси наслідки:
- Гвинтова клема
V+лишається порожньою. Подавати на неї 5–6 В не треба: ця напруга нікуди не піде, крім середнього ряду роз'ємів, до якого ми нічого не підключаємо. - Електролітичний конденсатор нічого не робить. Він стоїть на шині
V+і згладжує кидки струму від сервомоторів. У нас по цій шині струм не тече, тож конденсатор просто присутній. На частині плат він узагалі не запаяний — є лише посадкове місце. Це нормально і на нашу задачу не впливає. - Із трипінового роз'єму задіяний лише верхній ряд. До нього йде сигнальний провід на вхід ключа, а земля береться з нижнього ряду того ж роз'єму або з загальної шини землі — головне, щоб земля була спільна з контролером.
Спокуса «подати на клему 12 В і живити насос прямо з роз'єму» коштує плати. Шина V+ розрахована на живлення сервомашинок, її доріжки й роз'єми не для силового струму, а сам вихід каналу віддає близько 10 мА — це сигнал, а не потужність.
Чому канал не тягне реле й що між ними ставити — у статті Твердотілки на платі розширення.
Світлодіод живлення: що він каже і чого не каже#
На платі є світлодіод, підключений до VCC. Він світиться, щойно на логіку
подано напругу.
Що це означає: живлення логіки є, дріт VCC цілий.
Чого це не означає:
- що контролер бачить плату на шині — за це відповідають
SDA,SCLі збіг адреси; - що канали працюють — вони можуть бути зняті виводом
OE; - що є силове живлення
V+— світлодіод про нього нічого не знає.
Тобто світлодіод горить, а канали мертві — типова й цілком очікувана картина. Куди дивитись у такому разі, написано в Плата розширення PCA9685.
Майданчики адреси A0…A5#
У кутку плати — ряд паяльних майданчиків, підписаних A0…A5. Незапаяні, вони
дають плату з адресою 0x40; кожен запаяний додає до неї свій біт.
Одна плата в системі — не чіпайте їх узагалі. Дві й більше — кожній наступній треба своя адреса, інакше на шині буде конфлікт. Таблиця комбінацій і порядок дій — у статті Кілька плат PCA9685 на одній шині.
На що дивитись при купівлі#
Плати від різних виробників відрізняються дрібницями, і жодна з них не критична — але дві варто перевірити на фото ще до замовлення:
- Чи запаяна друга гребінка 1×6. Якщо плануєте ланцюжок із двох і більше плат, зручніше взяти з обома запаяними, ніж паяти самому.
- Чи є майданчики A0…A5 і чи вони доступні. На деяких дешевих клонах вони заховані під роз'ємами — запаяти можна, але незручно.
Наявність конденсатора, колір плати й тип клеми на нашу задачу не впливають. Логічні входи PCA9685 сумісні з 3.3 В, тож ніяких перетворювачів рівнів між контролером і платою не потрібно.
Плата має слабкі підтяжки SDA і SCL до VCC. Якщо на шині вже є інші пристрої зі своїми підтяжками, кілька плат поспіль можуть «пересилити» лінію — це проявляється на довгих шинах і розглянуто в статті про кілька плат.
Суміжні статті#
- Плата розширення PCA9685 — підключення до контролера, адреса в інтерфейсі, прив'язка пристроїв до каналів.
- Твердотілки на платі розширення — чому між каналом і реле потрібен буфер і як його зібрати.
- Кілька плат PCA9685 на одній шині — адреси, ланцюжок і спільна земля.
- Сервопривід і плата розширення — чому саме цю плату не вийде використати за її первісним призначенням.