banner
Центр новостей
Отличное обслуживание

Один я пропустил: светодиодный драйвер перепрофилирован под 16 сервоприводов

Dec 04, 2023

Я рассматривал электронику маленького робота-собаки Петои (верно), и заметил неизвестную мне ранее микросхему NXP PCA9685.

При более глубоком копании я заметил, что Adafruit также использует его для создания классических импульсов длительностью 1,0–2,0 мс, которые сообщают сервоприводам хобби, где расположить их.

Он имеет вход I2C и может создавать до 16 ШИМ-каналов — какое удобное устройство.

Компания NXP создала его для управления красными, зелеными, синими и желтыми светодиодами с четырехцветной подсветкой дисплеев.

PCA9685 компании NXP, демонстрирующий один из 16 выходных каналов ШИМ.

Каждый ШИМ имеет разрядность 12 бит, поэтому 4096 шагов (также возможны 0% и 100%), и все каналы имеют программируемую базовую частоту от 24 Гц до 1,5 кГц (внутренний генератор составляет ~ 25 МГц, а внешняя частота может достигать 50 МГц).

Кроме того, выходы могут быть установлены на открытый сток (макс. 5,5 В) или на тотемный полюс. Возможности: источник 10 мА и приемник 25 мА.

Требуется питание от 2,3 до 5,5 В, а входы устойчивы к напряжению 5,5 В.

Понятия не имею, какая умная душа первой решила, что это будет источником сигнала для сервоприводов (может быть, Adafruit?) – но какая хорошая идея – 16 сервоприводов, управляемых через одну шину I2C, которые могут работать на частоте 1 МГц.

Каждый выход имеет два 12-битных регистра, номинально названных «время включения» и «время выключения», но на самом деле они взаимодействуют с фиксированным временным интервалом в 4096 отсчетов более сложным образом, чем предполагают их названия, чтобы также обеспечить контроль относительной фазы между всеми каналами. как время включения и выключения — начните с главы 7.3.3 в техническом описании PCA9685, чтобы на некоторое время запутать ваш разум.

Отдельные биты полностью отключают или полностью включают каждый канал, и существует способ включить или выключить все каналы вместе с помощью глобальной команды. Каждый выход также имеет свой собственный бит инвертирования выхода.

Выходная частота устанавливается 8-битным прескалером и обеспечивает частоту 25 МГц/4096/прескалер, хотя по причинам, которые мне хотелось бы знать, ее нельзя установить ниже деления на четыре, поэтому настройки ÷1, ÷2 или ÷3 автоматически заменяются на ÷4. Возможны значения ÷5 и выше. По умолчанию он производит ~ 200 Гц.

К счастью для всех нас, AdaFruit создала библиотеку Arduino для управления чипом как многоканальным сервоприводом — мы должны поблагодарить Limor Fried за такое количество хороших библиотек Arduino — и у нее есть нечто похожее для CircuitPython и Python.

Кстати, если вас интересует собака-робот Peroi Bitttle, найдите ее здесь. По сути, он имеет электронику Arduino — специальную плату Arduino-esk с подходящей периферией.

верноPCA9685 компании NXP, демонстрирующий один из 16 выходных каналов ШИМ.Стив Буш