- BLHeliSuite для прошивки ESC регуляторов прошивками SimonK и BLHeli

Использование BLHeliSuite для прошивки ESC регуляторов SimonK 30A и EMAX Simon-12A прошивками SimonK и BLHeli

Практика для студентов. Мясищев А.А.

Известно, что ESC это Electronic Speed ​​Controller . Как следует из названия, ESC необходим для контроля скорости двигателей. ESC получает сигнал дроссельной заслонки аппаратуры управления от контроллера полета и приводит в движение бесщеточный двигатель с оптимальной скоростью, обеспечивая необходимый уровень электрической мощности. Качественные ESC с качественной прошивкой обеспечивают надежный и беспроблемный полет. Большинство ESC поставляются с программным обеспечением (прошивкой) производителя. Однако такие прошивки не всегда оптимальны для этого ESC. Часто на ESC устанавливается прошивки с открытым исходным кодом SimonK и BLHeli, однако версии этих прошивок являются устаревшими и поддерживают старые протоколы связи полетного контроллера и ESC. Например, устаревший протокол PWM. Бывают случаи, когда ESC поставляется с прошивкой BLHeli, не рекомендованной для этого ESC. Например регуляторы EMAX Simon-12A приходят с прошивками EMAX20A Rev.-14.3.-Multi. Хотя рекомендацией BLHeli для EMAX Simon-12A является прошивка XP-12A Rev.-14.9.-Multi. Также видно, что и прошивка Rev.-14.3. является устаревшей. Аналогичная ситуация с ESC SimonK 30A, которые используют устаревшую прошивку Simonk, не поддерживающую протокол OneShot125.

Следует отметить кроме SimonK и BLHeli также и новые прошивки:

-BLHeli_S является вторым поколением прошивки BLHeli, разработанной специально для ESC с процессорами Busybee с аппаратным PWM. Прошивки Simonk и BLHeli формируют программный PWM.

-BLHeli_32 для ESC является третьим и последним поколением BLHeli. Прошивка написана специально для 32-битных процессоров ESC и ее программный код был закрыт. Эти ESC с более мощными процессорами обеспечивают более плавную, точную и надежную работу, чем предыдущие ESC.

Прошивка SimonK начиная с 2016 года не поддерживается. Ее последняя версия была выпущена 12-09-2015г.

Протокол ESC используется для связи между FC (контроллером полета) и ESC, в основном для того, чтобы контролировать скорость вращения двигателя. Первоначально протокол был основан на широтно-импульсной модуляции, имеющей аббревиатуру ШИМ или PWM. Это способ получения аналогового результата цифровыми средствами. Цифровые средства здесь используются для получения импульсов квадратной формы. Сигнал переключается между двумя состояниями, On и Off. В случае прошивки LibrePilot, сигнал PWM используется для указания ESC положения позиции стика Газа на пульте управления. На рисунке 1 показан стандартный сигнал PWM с частотой следования импульсов 490Гц (с периодом ~2000 мкс).

Рис.1. Схема Standard PWM - протокол управления ESC.

Для ESC, используемых в системах радиоуправления(RC), длина пульса стандартного RC - PWM сигнала используется в процентах. Длина импульса в 1000мкс соответствует 0% , а 2000мкс - 100% частоте вращения мотора. Например, если ESC должен обеспечить 50% частоты вращения мотора, он пошлет сигнал PWM длительностью 1500мкс. Следует отметить, что PWM не синхронизирует PWM сигнал, который контроллер полета посылает ESC, с работой гироскопа летательного аппарата. Поэтому обновление PWM происходит до обновления сигнала с гироскопа и ESC получает старый сигнал от контроллера полета.

OneShot125 является развитием стандартного сигнала RC PWM. OneShot125 состоит из двух частей:

-Первая часть OneShot125 синхронизирует импульсы RC (PWM сигнал, который контроллер полета посылает ESC) с выходом сигнала с гироскопа. Это позволяет ESC иметь самые актуальные последние данные из полетного контроллера без больших задержек;

-Вторая часть OneShot125, это передать на ESC самые свежие актуальные данные без задержек.

Стандартный PWM импульс находится в промежутке между 1000 и 2000 микросекундами. OneShot125 короче PWM импульса и находится в диапазоне между 125 и 250 мкс. Это означает, что ESCs получает полный сигнал PWM в 8 раз быстрее. Для ESC важно иметь самые свежие данные. Полетный контроллер постоянно меняет данные для ESC на основании данных, полученных с гироскопов. Свежие актуальные без задержек данные позволяют ESC получить необходимые значения газа быстрее. Это позволяет осуществлять более точное управление, устанавливать более высокие значения PID и добиться большей стабильности особенно для гоночных квадрокоптеров.

На рисунке 2 показан стандартный PWM - с частотой обновления 490Hz при ширине импульса 1000-2000мкс. Этот PWM не синхронизируется с выходом гироскопа. В настоящее время все ESC работают с этим протоколом. PWM импульс выдается на частоте обновления равной 490Hz.

Рис.3. Подключение Arduino Nano к ESC EMAX 12A

Перед прошивкой ESC в Arduino Nano должна быть загружена программа, которая позволит Arduino выполнить процесс программирования. Для этого подключается Arduino к компьютеру через USB кабель, запускается программа BLHeliSuite.exe, выполняется переход на вкладку Make interfaces, выбирается порт и интерфейс(рис.4).

Рис.4. Выбор интерфейса

На рис.2 выбрана плата Arduino Nano со скоростью порта 57600. После нажатия на кнопку Arduino 4way-interface необходимо будет выбрать файл загрузки, как на рисунке 5.

Рис.5. Выбор файла загрузки

После выбора файла выполняется программирование Arduino. При успешной загрузки файла будет выдано соответствующее сообщение. Для загрузки прошивки необходимо перейти во вкладку Silabs ESC Setup и во вкладке Select ATMEL/SILABS Interface выбрать SILABS C2(4way-if). После этого к ESC подключить батарею через автомобильную лампу (~21 Ватт) и нажать на кнопку Connect.

Рис.6. Выбор интерфейса и загрузка прошивки

После успешного подключения к ESC необходимо нажать на кнопку Flash BLHeli. Далее появиться окно для выбора файла прошивки. Для EMAX 12A, установленного на квадрокоптере, выбирается файл XP-12A Multi Rev.14.9. После этого выполняется прошивка и результат ее выводится на дисплей. После завершения процедуры и нажатию на кнопку Read Setup выводится обновленный экран с параметрами этой прошивки как на рисунке 7.

Рис.7. Параметры прошивки

Параметры прошивки можно менять. Для их сохранения необходимо нажать на кнопку Write Setup. Если не отпаивать провода от контактных площадок, то даже после установки ESC на квадрокоптер их можно использовать для изменения параметров или перепрошивки ESC через Arduino Nano. Однако мотор при этих действиях рекомендуется отключать.

Ниже перечислены некоторые параметры с их расшифровкой.

Closed Loop Mode - Режим замкнутого контура устанавливает диапазон скоростей, с которыми может работать контур управления.

- Для High значения дроссельной заслонки от 0% до 100% линейно соответствуют заданным значениям оборотов т.е. от 0 до 200000 электрических оборотов в минуту(для 2-х полюсного мотора).

- Для Middle диапазона значения дроссельной заслонки от 0% до 100% линейно соответствуют заданным значениям оборотов от 0 до 100000 электрических оборотов в минуту.

- Для Low диапазона значения дроссельной заслонки от 0% до 100% линейно соответствуют заданным значениям оборотов от 0 до 50000 электрических оборотов в минуту.

Когда Closed Loop Mode Off, контур управления отключен.

Таким образом с помощью этого параметра ESC пытается управлять крутящим моментом в зависимости от текущих оборотов. Если установить HiRange, это соответствует 200 тыс. оборотов в минуту при полном открытии дроссельной заслонки. Например, если мотор 1000KV, батарея 4S то 4,2Вольт х 4S х 1000KV = 16.8 тыс оборотов в минуту на полном газу на заряженных аккумуляторах. То есть нужно установить или HiRange или вовсе выключить. По умолчанию режим выключен. В этом случае при максимальной дроссельной заслонке мотор работает с максимальными оборотами для заданного напряжения.

Motor Gain - ограничивает максимальную мощность в зависимости от входного сигнала.

Startup Power - мощность импульса при старте мотора.

Temperature Protection - защита от перегрева.

PWM Output Dither - это параметр, который добавляет некоторое изменение к длительности цикла PWM отключения двигателя. Это может уменьшить проблемы (например, дискретность сигнала дроссельной заслонки или вибрации) в областях частот вращения, где частота PWM равна гармоникам частоты коммутации двигателя. Полезно в режиме активного торможения (DampedLight).

Low RPM Power Protect - если включить этот параметр, то ESC отключит мотор, если пропеллеры за что-то зацепились (мотор увяз при низких оборотах). Эта не вызовет пожар квадрокоптера.

Brake On Stop - при включении этого параметры выполняется резкий останов пропеллера при выключении мотора пультом управления.

Motor Direction - направление вращения мотора. Если мотор вращается не в ту сторону, необходимо изменить этот параметр.

Demag Compensation - защита от срыва синхронизации. Для небольших двигателей параметр не актуален.

PWM Frequency - частота входящего PWM-сигнала. Значение Low - около 8кГц, High - около 20кГц.

PWM Frequency - Damped и Damped Light - режимы торможения двигателя. Не все регуляторы имеют поддержку Damped. Это зависит от скорости работы силовых ключей регулятора.

Enabe PWM input - включить PWM вход. В режиме "OFF" ESC будет ждать на входе только протокол OneShot125, а в режиме "ON" будет выбирать автоматически между OneShot и PWM.

Motor Timing - синхронизация двигателя. Low - 0 градусов, MediumLow - 8 градусов, Medium - 15 градусов, MediumHigh - 23 градуса, High - 30 градусов. Практика показывает, что если мотор на низких оборотах начинает дергаться при резком увеличении газа, то увеличивают Motor Timing.

Синхронизация двигателя, настраиваемая ESC, важна для эффективности двигателя, надежности его работы, крутящего момента и числа оборотов. Для вращения мотора пропускается электрический ток через катушку, которая создает магнитную силу и притягивает магнит ротора. Когда включается и выключается ток через катушку, происходит индукция. При получении тока катушкой, требуется время для создания магнитного поля и достижения его идеального уровня, когда ток отключается, потребуется также время, чтобы магнитное поле полностью исчезло.

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

Синхронизация двигателя во многом зависит от индукции, а индукция зависит например от тока, сопротивление катушки, число витков катушки и так далее. Разные двигатели будут иметь разное время индукции, и, следовательно, Motor Timing должен подстраиваться.

Input Polarity - полярность PWM сигнала. Если при нулевом газе мотор работает на полных оборотах - меняется значение этого параметра.

Startup Beep Volume - громкость сигнала при подаче питания на кадрокоптер, издаваемая моторами.

Beacon Volume - громкость сигнала при бездействии.

Beacon Delay - задержка перед подачей сигнала бездействия.

PPM Min Throttle - минимальное значение PPM-сигнала.

PPM Max Throttle - максимальное значение PPM-сигнала.

Программирование (прошивка) ESC регулятора EMAX-12A по одному сигнальному проводу прошивкой BLHeli. В этом случае предыдущее программное обеспечение(прошивка) ESC регулятора должно иметь также и загрузчик. В противном случае прошивка должна быть выполнена предыдущим способом для прошивки BLHeli или как работе[13] для прошивки Simonk. Обычно современные ESC поставляются с прошивками, имеющими начальный загрузчик(bootloader) но с устаревшими версиями SimonK и BLHeli, которые могут не поддерживать протоколы OneShot. Однако даже при наличии bootloader-а ESC необходимо доработать, чтобы он мог работать с начальным загрузчиком. Например, в EMAX-12A выпаять конденсатор и резистор, обведенные синим цветом на рисунке 1 (аналогично на рис.6).

Для программирования с помощью Arduino по сигнальному проводу необходимо выполнить подключение Arduino к EMAX-12A, как на рисунке 8 (вывод D3 Arduino к сигнальному проводу ESC, GND Arduino к GND ESC).

Рис.8. Программирование с помощью Arduino

по сигнальному проводу ESC EMAX-12A

Программирование Arduino Nano выполняется как в предыдущем случае по рисункам 4 и 5. Для загрузки прошивки необходимо перейти во вкладку Silabs ESC Setup и во вкладке Select ATMEL/SILABS Interface выбрать SILABS BLHeli Bootloader(4way-if). После этого к ESC подключить батарею через автомобильную лампу (~21 Ватт) и нажать на кнопку Connect.

Рис.9. Выбор интерфейса

После успешного подключения к ESC необходимо нажать на кнопку Flash BLHeli. Далее появиться окно для выбора файла прошивки. Для EMAX 12A, установленного на квадрокоптере, выбирается файл XP-12A Multi Rev.14.9. После этого выполняется прошивка и результат ее выводится на дисплей. После завершения процедуры и нажатия на кнопку Read Setup выводится обновленный экран с параметрами этой прошивки как было представлено на рисунке 7.

Программирование (прошивка) ESC регулятора SimonK-30A по одному сигнальному проводу прошивкой SimonK (tgy_2015-09-12)

В регуляторе SimonK-30A должна быть установлена прошивка с Bootloader-ом. Arduino Nano подключается к ESC как на рисунке 10. ESC Simonk-30A работает под управлением микроконтроллера ATMEGA-8A.

Рис.10. Программирование с помощью Arduino

по сигнальному проводу ESC Simonk-30A

Программирование Arduino Nano выполняется как в предыдущем случае по рисункам 4 и 5. Для загрузки прошивки необходимо перейти во вкладку Silabs ESC Setup и во вкладке Select ATMEL/SILABS Interface выбрать ATMEL BLHeli Bootloader(4way-if) - рис.11. После этого к ESC подключить батарею через автомобильную лампу (~21 Ватт) и нажать на кнопку Connect.

Рис.11. Выбор интерфейса

Далее через 15-20сек. необходимо нажать на кнопку Read Setup, после чего должно появиться окно (рис.12).

Рис.12.

После нажатия на кнопку Cancel и потом на Flash Other появиться запрос на выбор файла прошивки. Прошивку необходимо скопировать с сайта http://0x.ca/tgy/downloads/ - файл tgy_2015-09-12_103edb5.zip и распаковать его в каталоге. Для прошивки выбирается файл tgy.hex. Далее выполняется прошивка, ход которой отображается на экране. В случае успешной прошивки появляется соответствующее сообщение. После этого ESC Simonk-30A будет поддерживать протокол OneShot125.

После установки ESC и полетного контроллера на квадрокоптер, ESC можно перепрошивать по сигнальному проводу после отключения его от полетного контроллера и переподключении к Arduino Nano. Однако перепрошивку можно делать и через полетный контроллер, если там установлена прошивка CleanFlight последних версий. Для этого вначале подключается полетный контроллер через USB к компьютеру, затем подключается к квадрокоптеру батарея и запускается программа BLHeliSuite.exe(рис.13)

Рис.13. Подключение ко всем ESC через полетный контроллер

Для загрузки прошивок с 4-х ESC необходимо перейти во вкладку Select ATMEL/SILABS Interface и выбрать ATMEL BLHeli Bootloader(CleanFlight) - рис.11. На втором этапе выбирается номер порта полетного контроллера - COM 16 со скоростью 115200. На третьем этапе нажимается кнопка Connect. Примерно через 10-15 сек. нажимается кнопка Read Setup. Это приводит к чтению параметров всех ESC. 3-й был определен с начальным загрузчиком и Simonk и микроконтроллером Atmel и неизвестной прошивкой, остальные с прошивкой XP12A BLHeli. Выбор нужного регулятора можно выполнить в соответствии с меткой 5 рисунка 13. Для выбора, например 2-го ESC необходимо нажать на кнопки не нужных ESC, например 1,4. Останется 2-й ESC который можно перепрошить или поменять у него параметры.

На рисунке 14 представлено фото квадрокоптера с рамой 250мм, у которого установлено 3 регулятора EMAX-12A с прошивкой XP12A BLHeli и один регулятор SimonK-30A c последней прошивкой SimonK. Полетный контроллер SP Racing F3 - Acro управляется прошивкой Cleanflight. В качестве протокола связи с ESC используется OneShot125. Тестирование квадрокоптера показало достаточную его устойчивость в полете.

Рис.14. Фото квадрокоптера с рамой 250

Выводы

1. Показана необходимость перепрограммирования ESC регуляторов более современными прошивками, например BLHeli или SimonK в зависимости от аппаратной части регулятора. Если регуляторы основаны на микроконтроллерах ATMEL(ATmega8a и др.) то используются прошивки BLHeli или SimonK, если используются микроконтроллеры SILABS(F330, F39X) то они прошиваются только BLHeli.

2. Показано, что протокол PWM связи полетного контроллера с ESC регулятором не синхронизируется с работой гироскопа летательного аппарата. Поэтому ESC получает старый сигнал от контроллера полета. Протокол OneShot125 синхронизирует импульсы аппаратуры управления с выходом сигнала с гироскопа. Это позволяет ESC иметь самые актуальные последние данные из полетного контроллера без больших задержек, что стало возможным потому, что длина управляющего импульса OneShot125 в 8 раз меньше чем у PWM. Синхронизация позволяет осуществлять более точное управление, устанавливать более высокие значения PID и добиться большей стабильности полета особенно для гоночных квадрокоптеров.

3. Показано, что прошивка SimonK способна поддерживать относительно медленные протоколы PWM и OneShot125 и в настоящее время не поддерживается. Работает только на микроконтроллерах ATMEL. Прошивка BLHeli поддерживает всю линейку высокопроизводительных современных протоколов. Она работает на микроконтроллерах ATMEL, SILABS. В зависимости от модели микроконтроллера SILABS поддерживаются разные по производительности протоколы. Например SILABS F330 работает с самыми медленными протоколами PWM и OneShot125, F396 c более быстрыми OneShot42 и MultiShot и т.д.

4. Показана возможность использования Arduino Nano для программирования ESC EMAX-12A прошивкой BLHeli через три проводника в случае невозможности использования начального загрузчика из-за аппаратных ограничение регулятора ESC, позволяющего выполнить прошивку по сигнальному кабелю. Здесь на контактные площадки ESC напаиваются три проводника, которые подключаются к Arduino. Перед прошивкой ESC Arduino предварительно программируется.

5. При аппаратной доработке ESC регулятора EMAX-12A(и других ESC из этой серии) показана возможность программирования ESC через сигнальный провод, который используется для подключения к полетному контроллеру. В этом случае программирование ведется также через Arduino Nano.

6. Рассмотрена возможность программирования ESC регулятора Simonk-30A самой последней версией прошивки SimonK через Arduino Nano по одному сигнальному проводу с помощью программы BLHeliSuite.exe.

7. Установлено, что если все ESC регуляторы(или несколько) подключены к полетному контроллеру с прошивкой CleanFlight (опробована ver.2.5.0), то ESC регуляторы можно прошивать новыми прошивками, необязательно BLHeli, а также менять параметры регуляторов, если используется прошивка BLHeli. Если используется полетный контроллер например APM 2.6, то перепрошивку ESC можно выполнять по сигнальному проводу через Arduino, предварительно отключив ESC от полетного контроллера.

Литература

1. Paweł Spychalski. PWM, OneShot125, OneShot42, Multishot and DSHOT comparison. [Электронный ресурс]. – Режим доступа: https://quadmeup.com/pwm-oneshot125-oneshot42-and-multishot-comparison/ , 2016.

2. Oscar Liang. WHAT IS ONESHOT ESC PROTOCOL – ACTIVE BRAKING. [Электронный ресурс]. – Режим доступа: https://oscarliang.com/oneshot125-esc-quadcopter-fpv/ , 2016

3. Использование OneShot125 или PWMSync. [Электронный ресурс]. – Режим доступа:

http://fpv-community.ru/applications/core/interface/file/attachment.php?id=2204 , 2016.

4. Oscar Liang. WHAT IS DSHOT ESC PROTOCOL. [Электронный ресурс]. – Режим доступа: https://oscarliang.com/dshot/ , 2017.

5. BLHeli - прошивка регуляторов. [Электронный ресурс]. – Режим доступа: http://mcheli.blogspot.com/2014/10/blheli-brushless-esc-firmware.html, 2017.

6. Programming adapters for BLHeli. [Электронный ресурс]. – Режим доступа: https://flyingmodscom.files.wordpress.com/2017/06/blheli-programming-adapters.pdf, 2017.

7. Oscar Liang. FLASH AND PROGRAM BLHELI ESC VIA CLEANFLIGHT – FLIGHT CONTROLLER. [Электронный ресурс]. – Режим доступа: https://oscarliang.com/flash-esc-via-cleanflight-fc/, 2015.

8. ESCs supported by BLHeli SiLabs. [Электронный ресурс]. – Режим доступа: https://www.mediafire.com/folder/dx6kfaasyo24l/BLHeliSuite ,2018.

9. Pin Configuration for BLHeliSuite 4-Way Interfaces (4w-if) on Arduino boards for Atmel/SiLabs ESC (v3). [Электронный ресурс]. – Режим доступа: https://www.mediafire.com/folder/dx6kfaasyo24l/BLHeliSuite , 2018.

10. BLHeliSuite MultipleESC mode 14.3.0.2 and later. [Электронный ресурс]. – Режим доступа: https://www.mediafire.com/folder/dx6kfaasyo24l/BLHeliSuite , 2018.

11. Operation manual for BLHeli SiLabs Rev14.x. [Электронный ресурс]. – Режим доступа: https://www.mediafire.com/folder/dx6kfaasyo24l/BLHeliSuite , 2018.

12.Oscar Liang. HOW TO CHOOSE ESC FOR RACING DRONES AND QUADCOPTERS. [Электронный ресурс]. – Режим доступа: https://oscarliang.com/choose-esc-racing-drones/ , 2017.

13. Мясищев А.А. Перепрошивка регуляторов Hobbypower ESC-30A, Readytosky ESC-30A и Simonk 30A прошивкой Simonk. [Электронный ресурс]. – Режим доступа: https://sites.google.com/site/webstm32/esc_reg , 2017.

14. Мясищев А. А. Использование платы RobotDyn Mega2560 Pro для построения полетного контроллера гексакоптера / А. А. Мясищев // Вісник Хмельницького національного університету. Технічні науки. – 2018. – № 3. – С. 172-180.

15. Мясищев А. А. Настройка PID регуляторов и GPS модуля для прошивки MegapirateNG полетного контроллера на базе Arduino mega2560 / А. А. Мясищев, Е. С. Ленков, В. М. Полозова // Збірник наукових праць Військового інституту Київського національного університету імені Тараса Шевченка. – Київ : ВІКНУ, 2017. – Вип. 57. – С. 143-152.

16. Мясищев, А.А. Построение БПЛА на базе полетного контроллера АРМ 2.6 // Вісник Хмельницького національного університету. Технічні науки. – 2016. – № 5. – С. 225-230.

17. Мясищев А.А.НАСТРОЙКА PID РЕГУЛЯТОРОВ ДЛЯ ПОЛЕТНОГО КОТРОЛЛЕРА НА БАЗЕ ARDUINO MEGA256 И ПРОШИВКИ MEGAPIRATENG. Materialy XIII mezinarodni vedecko - prakticka konference « Moderni vymozenosti vidy– 2017». - Dil 8. Technicke vedy. Fyzika. Matematika. Stavebnictvi a architektura. Modernich informacnich technologii: Praha. Publishing House «Education and Science» s.r.o - 86 stran, c 76-83

13.02.2019

Рис.3. OneShot125 для Multicopter

Таким образом:

- Oneshot125 устанавливает скорость таймера на выходе двигателя в 8 раз быстрее. Выходной сигнал двигателя теперь намного короче (125-250 мкс), чем исходный PWM (1000 мкс-2000 мкс), это означает, что для отправки данных в ESC требуется меньше времени. Теперь проблема, связанная с обновлением сигнала PWM с опозданием устранена.

- Oneshot125 посылает только «один выстрел» сигнала в каждом цикле контроллера полета и делает это, как только у контроллера полета появляется новое значение для ESC.

- ESC теперь записывает новое значение в двигатель, даже до того, как FC запускает следующий цикл управления, поэтому имеет место более быстрый отклик FC и ESC. В связи с этим значение P для PID регулятора может быть немного увеличено. Отмечается более быстрым изменением скорости двигателя в соответствии с реакцией газа на пульте управления. Это важно для гоночных дронов, огибающих препятствия.

Ниже перечислены все протоколы ESC, доступные для мультикоптера, и соответствующая им ширина сигнала - время, необходимое для отправки одного пакета данных:

-Стандартный PWM (1000мкс - 2000мкс)

-Oneshot125 (125мкс - 250мкс)

-Oneshot42 (42мкс - 84мкс)

-Multishot (5мкс - 25мкс)

-Dshot

-Dshot150 (106,8мкс)

-Dshot300 (53.4мкс)

-Dshot600 (26,7мкс)

-DShot1200 (13,4мкс)

-ProShot

Протоколы Oneshot125, Oneshot42 и Multishot представляют собой аналоговые сигналы, похожие на стандартный PWM, но намного быстрее. Эти протоколы синхронизируются с циклом PID-регулятора, чтобы уменьшить дрожание, повысить производительность и уменьшить задержку между вводом данных со стика аппаратуры управления и реакцией корабля.

DShot - это новейший протокол ESC, представляющий собой цифровой сигнал. Это будущее протокола ESC, который имеет лучшую надежность и производительность, а также способности посылать на ESC не только параметры скорости двигателя, но и конкретные команды.

Аппаратное обеспечение ESC регуляторов и полетных контроллеров, выпущенное после середины 2017 года, должно поддерживать все протоколы ESC, кроме DShot1200, который является относительно новым и совместим только с некоторыми 32-разрядными ESC.

Рассмотрим аппаратную часть ESC, основой которой является микроконтроллер.

Микроконтроллеры ATMEL и SILABS

Существует три основных семейства микроконтроллеров (MCU) - это Atmel, Silabs и ARM Cortex. Различные MCU имеют разные спецификации и функции, которые позволяют запускать разные прошивки.

- 8-битный ATMEL поддерживается прошивками SimonK и BLHeli ESC

- SILABS 8-битный может работать только BLHeli или BLHeli_S

- Atmel ARM Cortex 32-битный (точнее STM32 F0) - может работать BLHeli_32

ESC на основе ATMEL были более распространены до того, как на рынке начали доминировать SILABS. ESC Silabs, как правило, превосходят 8-битные ATMEL. В 2017 году Atmel Arm Core MCU стал использоваться для 32-битных ESC.

В ESC на основе SiLabs установлены разные процессоры, которые обеспечивают разную производительность. Наиболее используемые настоящее время - F330 и F396.

F330 имеет более низкую тактовую частоту и может иметь проблемы с работой двигателей с высоким KV. F396 не имеет этих проблем и поддерживает протоколы Multishot и Oneshot42 для ESC.

Busybee MCU - это обновленные микроконтроллеры F330 и F39X. BLHeli_S ESC обычно работает на BusyBee1 - BB1 (EFM8BB10F8) и BusyBee2 - BB2 (EFM8BB21F16)

BusyBee лучше тем, что вместо использования программного PWM, у них есть специальное оборудование для аппаратной генерации PWM-сигнала, который синхронизируется с рабочим циклом процессора, в результате получается гораздо более плавный отклик на газ аппаратуры управления. Эти микроконтроллеры поддерживают новейшие протоколы DShot ESC.

Оценивая производительность микроконтроллеров, можно записать ряд от лучшего к худшему:

1.BB2, 2.BB1, 3.F330, 4.F396, 5.Atmel 8-разрядный.

В настоящее время большинство ESC используют 8-разрядные процессоры (F330, F39X, Busybee и т. д.). Но с 2016 года начали появляться некоторые 32-разрядные ESC на основе STM32. Эти мощные 32-разрядные процессоры имеют много новых функций, которые были невозможны из-за ограниченной вычислительной мощности и возможностей 8-разрядного MCU.

Рассмотрим обновление прошивки у ESC EMAX-12A. Здесь может быть два варианта. Прошивка с помощью 3-х проводов(интерфейс C2) и но одному сигнальному проводу(требуется загрузчик), который использует ESC для подключения к полетному контроллеру. В первом варианте прошивки для указанных двух случаев в качестве адаптера связи компьютера с ESC используется Arduino Nano v3.0 c преобразователем USB-UART CH340. Во втором варианте прошивка выполняется через полетный контроллер с прошивкой cleanflight.

Вначале необходимо загрузить на компьютер программное обеспечение с прошивками для различных ESC с сайта https://github.com/bitdump/BLHeli (BLHeli-master.zip) и программу для выполнения прошивки с https://www.mediafire.com/folder/dx6kfaasyo24l/BLHeliSuite (BLHeliSuite16714901.zip)

Прошивка по интерфейсу C2. Выводы на мотор должны быть изолированы. Для напайки трех проводников к контактным площадкам ESC термоусадка с ESC должна быть удалена.

На рисунке 3 показано подключение Arduino Nano к ESC.

Рис.2. Стандартный PWM для Multicopter

На рисунке 3 показан OneShot125 с частотой обновления 500Hz и шириной импульса 125-250µs. Для его работы требуется ESC с поддержкой OneShot125. Свободно распространяемые прошивки BLHeli версии 13.0+, SimonK 2015-02-26 и новее поддерживают OneShot125, если их можно установить на ESC.