Serial Wombat 8B — программируемый I/O-сопроцессор дешевле многих пассивных расширителей
Восьмивыводная плата Serial Wombat 8B переносит обработку энкодеров, кнопок, PWM и простых контуров управления в отдельный CH32V003. Команды и результаты проходят по I²C, а пользовательские линии обслуживаются прошивкой как назначаемые функции. Предел такой архитектуры задают общие ресурсы дешёвого MCU и конфигурация одновременно активных режимов.
Serial Wombat 8B, также известный как PCB_0029, реализует программируемое I/O-расширение на микроконтроллере WCH CH32V003. На восьми пользовательских линиях прошивка назначает режимы GPIO, 10-битного АЦП, PWM, генерации сервосигналов, anti-bounce для кнопок, квадратурного энкодера, измерителя длительности импульса, матричной клавиатуры и индикаторов TM1637. Предусмотрены локальные PID- и гистерезисные алгоритмы, поэтому пороговая реакция на датчик или регулирование могут исполняться между обменами с основным контроллером.
Для хоста SW8B выглядит как устройство I²C. Формулировка о прямом управлении по UART для этой версии неточна: на её распиновке присутствуют только SCL и SDA как интерфейс ведущего контроллера. UART доступен в одном из назначаемых режимов пользовательских выводов, где плата работает мостом I²C→UART. Производитель заявляет одну полнодуплексную пару до 115200 бод и дополнительные односторонние линии до 19200 бод.
Смысл платы определяется времязависимыми функциями. Обычный регистровый GPIO-expander требует регулярного опроса: хост считывает вход, фильтрует дребезг, отслеживает фронты и обновляет выходы по своей задаче. SW8B принимает высокоуровневую конфигурацию, после чего конечные автоматы работают локально. Для энкодера заявлены режимы опроса 1 кГц и 57.6 кГц, для PWM и измерения импульсов указано квантование 17 мкс. Эти величины опубликованы разработчиком; независимых измерений задержки, джиттера и устойчивости при одновременной работе нескольких pin modes не представлено.
Такой подход даёт ожидаемый выигрыш на панели управления, датчиковом модуле или в малом стенде, где основной MCU занят протоколом, дисплеем либо вычислениями. Одновременно он вводит ограничение, характерное для прошивочного сопроцессора: периферийные задачи конкурируют за таймеры, прерывания и процессорное время одного CH32V003. Конкретную комбинацию энкодера, сервоканалов, АЦП и программного UART требуется проверять под реальной нагрузкой, особенно при коротких импульсах и шумной I²C-шине.
Аппаратная часть и документация опубликованы под CERN-OHL-P-2.0, код — под MIT; сертификат OSHWA US002728 зарегистрирован 28 марта 2025 года. Плата выпускалась в 2025 году, поэтому речь идёт об архивной разработке, сохранившей ценность благодаря цене и открытой реализации. Целевой ценник автора составлял $1.50 за плату, однако это заявка производителя, а не подтверждённая универсальная розничная цена.
У ранней ревизии V5 обнаружилась конкретная технологическая ловушка: полигон земли заходил в область перемычки подтяжек I²C, и неаккуратная пайка могла закоротить 3.3 В на землю. В V6 трёхконтактную перемычку заменили двумя двухконтактными. Этот эпизод хорошо показывает границу проекта: функциональность собрана вокруг доступного MCU и открытой прошивки, однако разводка, подтяжки шины и ревизия платы остаются столь же критичными, как набор программных режимов.