PCA9685 — это 16-канальный 12-разрядный контроллер с настраиваемой частотой ШИМ в пределах от 24 до 1526 Гц. С помощью ШИМ-контроллера можно управлять яркостью светодиодов, сервоприводами и другими устройствами, где в качестве управляющего сигнала применяется ШИМ-сигнал.
Для управления PCA9685 используется шина I2C. На этой плате есть две группы разъемов для шины I2C с двух сторон. Это позволяет подключать на одной шине несколько плат последовательно или подключать другие I2C-устройства.
На плате есть перемычки, с помощью которых можно установить адрес устройства, отличный от стандартного. Поэтому если 16 каналов Вам мало, можно последовательно включить несколько таких плат, установив перемычками на каждой свой адрес. Конструкция позволяет каскадирование и управление 992 сервоприводами или 62 платами.
Питание контроллера и выходов ШИМ-каналов разделено и может быть от 3 до 5 вольт. Для ШИМ-каналов допускается максимальное напряжение 6 вольт. Питание для ШИМ-каналов можно подавать на штырьки (V+) или через клемму. На плате есть фильтрующий конденсатор — это помогает при больших нагрузках, когда питание может быть нестабильным, что может отрицательно сказываться на работе управляемых устройств.
Характеристики PCA9685
- Питание модуля: 3.3 или 5 В, оба напряжения входят в диапазон допустимых;
- Питание чипа (VCC): 2.3 … 5.5 В постоянного тока;
- Сбой питания (VPOR): до 2.0 В — константа, используемая компаратором (номинально 1,7 В);
- Потребляемый ток в рабочем режиме: до 10 мА (номинально 6 мА);
- Потребляемый ток в режиме ожидания: до 15.5 мкА (номинально 2,2 мкА);
- Ток нагрузки на выходах при VCC = 5 В и выходом с открытым стоком (флаг OUTDRV=0): до 25 мА;
- Ток нагрузки на выходах при VCC = 5 В и каскадным выходом чипа (флаг OUTDRV=1): до 10 мА;
- Частота тактирования: 25 МГц — внутренний генератор (±3%);
- Внешний источник тактирования: от 0 до 50 МГц;
- Количество каналов ШИМ: 16 шт. с поддержкой «горячего» подключения устройств к выходам;
- Разрешение ШИМ: 12 бит, 4096 тактов (рабочий цикл от 0 до 100%);
- Выходная частота ШИМ: от 24 до 1526 Гц для внутреннего генератора 25 МГц (зависит от частоты тактирования и значения предделителя);
- Рабочая частота шины I2C: до 1 МГц с поддержкой 100 кГц, 400 кГц, 1 МГц (ёмкость до 4000 пФ);
- Уровень «0» на шине I2C: от -0.5 до 0.3 VCC В;
- Уровень «1» на шине I2C: до 0.7 VCC до VCC+0.3 В;
- Рабочая температура: от -40 до 85 °C.
Принципиальная схема PCA9685
Китайские реплики могут отличаться отсутствием цепи защиты от обратного тока в виде полевого транзистора AOD417.
Распиновка модуля на PCA9685
| Вывод | Описание |
|---|---|
| GND | общий (минус питания) |
| OE | разрешение работы выходов модуля |
| SCL | линия тактирования (интерфейс I2C) |
| SDA | линия данных (интерфейс I2C) |
| VCC | плюс питания чипа |
| V+ | плюс питания периферии |
| PWM (0…15) | выходы ШИМ (широтно-импульсная модуляция) |
| A0…A5 | состояния 0…5 битов адреса чипа на шине I2C |
Система установки I2C адреса на PCA9685
Данная плата имеет 16 ШИМ-выходов, то есть можно подключить 16 сервоприводов. Но если и этого будет недостаточно — на плате есть свободные контакты GND, OE, SCL, SDA, VCC, V+, к которым при помощи 6-жильного кабеля-дюпона можно подключить еще один контроллер PCA9685, а к нему, в свою очередь, еще один. Каждой плате в цепочке должен быть присвоен свой уникальный адрес. Это можно сделать при помощи адресных контактов A0, A1, A2, A3, A4, A5.

Базовый адрес для каждой платы — 0x40. Для присвоения уникального адреса нужно использовать капли припоя, чтобы присвоить соответствующий адрес для каждого контроллера. Программно это будет выглядеть так:
Плата 0: Адрес = 0x40 Смещение = binary 01000000 (плата, которая присоединена к Arduino, без припоя);
Плата 1: Адрес = 0x41 Смещение = binary 01000001 (припой на А0);
Плата 2: Адрес = 0x42 Смещение = binary 01000010 (припой на А1);
Плата 3: Адрес = 0x43 Смещение = binary 01000011 (припой на А0, А1);
Плата 4: Адрес = 0x44 Смещение = binary 01000100 (припой на А2) и т.д.
Таким образом, можно подключить до 62 устройств на одну шину и получить 992 ШИМ-выходов.
Дополнительные адреса чипа
Чип может иметь до 3 дополнительных адресов, которые устанавливаются путём записи 7-битных чисел в регистры SUBADR1, SUBADR2, SUBADR3. Число записывается в старшие 7 бит регистра, младший бит регистра всегда равен «0» и недоступен для записи. Дополнительные адреса действуют как основные, но могут совпадать у нескольких групп чипов на одной шине, что дает возможность передавать команды сразу группе ведомых чипов. Так как чипу доступны 3 дополнительных адреса, то он может находиться сразу в трех разных группах. Для разрешения чипу реагировать на дополнительный адрес, необходимо установить соответствующий флаг SUB1, SUB2, SUB3.
Адреса общего вызова
Адрес общего вызова — это число, записываемое в старшие 7 бит регистра ALLCALLADR, младший бит регистра всегда равен «0» и недоступен для записи. Адрес действует по аналогии с дополнительными адресами, но предназначен для всех чипов на шине, хотя и может использоваться как 4-я группа. Для разрешения чипу реагировать на адрес общего вызова, необходимо установить флаг ALLCALL.
Не рекомендуется указывать адреса, зарезервированные протоколом I2C:
- адреса 11110XX — используются устройствами с 10-битной схемой адресации;
- адрес 0000000 — предназначен для вызова всех устройств на шине;
- мастер-код 00001XX — указывает на желание мастера перевести шину в высокоскоростной HS-режим.
Описание регистров PCA9685
Текстовую версию можете найти на второй странице в документации PCA9685_ru.pdf.
Блок-диаграмма микросхемы PCA9685
Рассчитать скважность и параметры ШИМ-сигнала на выходах PCA9685 можно с помощью калькулятора PWM Duty Cycle, а перевести угол сервопривода в длительность импульса — с помощью калькулятора импульсов серводвигателя Arduino.
Материалы
Документация на Русском PCA9685_ru.pdf
datasheet_PCA9685.pdf
learn.adafruit.com
avislab.com



