DSHOT BITBANG — ЧТО ЭТО?
DSHOT Bitbang — что это?
DSHOT Bitbang — это способ реализации протокола DShot для управления регуляторами скорости (ESC) бесщеточных моторов с помощью программного управления вывода сигнала ("bitbang"), то есть прямого формирования цифрового сигнала на выводах микроконтроллера без использования специализированных аппаратных таймеров.
Что такое DShot?
- DShot — это цифровой протокол обмена данными между полетным контроллером (ПК) и регуляторами скорости (ESC), который пришел на смену аналоговым протоколам Oneshot и Multishot.
- Протокол передает данные в виде цифровых бит, что исключает необходимость калибровки регуляторов, повышает точность и устойчивость к помехам.
- DShot имеет несколько вариантов скорости передачи: DShot150, DShot300, DShot600 (числа обозначают скорость в тысячах бит в секунду).
Что значит Bitbang в контексте DShot?
- Bitbang — это метод программного формирования сигнала, когда микроконтроллер "вручную" управляет уровнем сигнала на выводе, задавая последовательность битов в нужном временном формате.
- В отличие от аппаратной реализации через таймеры и DMA, Bitbang не требует специальных аппаратных ресурсов, но может быть менее эффективен с точки зрения загрузки процессора.
- В GitHub обсуждениях Betaflight сравнивают реализацию Bidirectional DShot через Bitbang и через таймеры, обсуждая плюсы и минусы каждого подхода. (###)
- Bitbang-реализация может быть полезна на микроконтроллерах с ограниченными аппаратными таймерами или для быстрой прототипизации.
Bidirectional DShot
- Это расширение протокола DShot, позволяющее не только отправлять команды регулятору, но и получать от него телеметрию, например, скорость вращения мотора (RPM) по тому же сигнальному проводу без дополнительных проводов.
- Реализация bidirectional DShot через Bitbang требует сложной обработки сигнала для приема данных от ESC.
Итого:
DSHOT Bitbang — это способ программного формирования цифрового протокола DShot на микроконтроллере без использования аппаратных таймеров, позволяющий управлять ESC с помощью цифровых сигналов. Такой метод удобен для реализации на различных контроллерах, но может быть менее эффективным по ресурсам по сравнению с аппаратными методами. Bidirectional DShot Bitbang — это расширение, позволяющее обмениваться данными в обе стороны по одному проводу, что используется для получения телеметрии моторов.
Как реализовать DShot Bitbang в Betaflight
В Betaflight реализация DShot Bitbang (программная генерация сигнала DShot без аппаратных таймеров) происходит автоматически на некоторых платформах и портах, где аппаратная поддержка ограничена. Пользователю обычно не нужно выбирать Bitbang вручную — Betaflight сам определяет способ передачи сигнала.
Настройка DShot и Bidirectional DShot в Betaflight
- Обновите прошивку полетного контроллера до Betaflight версии 4.1 или новее.
- Убедитесь, что ваши ESC поддерживают DShot (BLHeli_32 или BLHeli_S с прошивкой JazzMaverick для bidirectional DShot).
- В Betaflight Configurator:
- Перейдите на вкладку Configuration.
- В разделе ESC/Motor Features выберите протокол DShot300, DShot600 или DShot1200 (bidirectional DShot работает только с этими вариантами).
- Включите опцию Bidirectional DShot.
- Установите частоту обновления гироскопа и PID-цикла на 4 кГц для оптимальной работы.
- Через CLI можно дополнительно ввести команды:
set dshot_burst = OFF set scheduler_optimize_rate = ON set dshot_bidir = ON save
- Перезагрузите контроллер и ESC (сначала подключите аккумулятор, затем USB).
- Проверьте работу в вкладке Motors Betaflight Configurator: должны отображаться обороты моторов без ошибок.
Особенности и рекомендации
- Bitbang-режим включается автоматически, если аппаратная поддержка DShot отсутствует.
- Bidirectional DShot позволяет получать телеметрию RPM по тому же проводу, что и управление ESC, без дополнительных проводов.
- Для работы bidirectional DShot необходимы ESC с прошивками BLHeli_32 версии 32.7.0 и новее или BLHeli_S с патчем JazzMaverick.
- Если RPM-фильтрация включена, но ESC не передают телеметрию, арматура будет запрещена (с сообщением RPMFILTER на OSD).
Итог: пользователю достаточно выбрать нужный протокол DShot и включить bidirectional DShot в Betaflight, а Bitbang-реализация будет применена автоматически при необходимости.
Раздел: Параметры и режимы, Конспекты