Перепрошивка регулятора Cheerson CX20 ver 2.4b прошивкой BlHeli

DISCLAIMER

Данная прошивка является неофициальной! Автор не несёт ответственности за любые проблемы, вызванные использованием ESC с этой прошивкой! Во время прошивки соблюдайте предосторожности, описанные далее!

ДАННАЯ ПРОШИВКА РАБОТАЕТ ТОЛЬКО НА РЕГУЛЯТОРАХ ВЕРСИИ 2.4b. РЕГУЛЯТОРЫ 1.6 ИМЕЮТ ДРУГУЮ СХЕМУ И С ДАННОЙ ПРОШИВКОЙ РАБОТАТЬ НЕ БУДУТ!!!

Предыстория

Как известно многим пользователям Cheerson CX20 родные регуляторы имеют неприятную привычку со временем выходить из строя сами по себе. Обычно это происходит после долгого стояния. Симптомы - либо просто полная тишина, либо непрекращающийся прерывистый писк вместо нормальной инициализации. Судя по симптомам - проблемы во входе в какой-то некорректный режим, а не железные.
Столкнулся с такой проблемой и я. Был заказан и получен новый регулятор, после чего я попытался снять с него прошивку. Выяснилось, что производитель закрывает прошивку от чтения и снять её нельзя. Посмотрев внимательно на устройство ESC я подумал, что на него вполне нормально должен встать BlHeli для микроконтроллеров SiLabs. Убив на это дело пару дней мне таки удалось заставить работать BlHeli на данном ESC.

Исходные данные

По всему тексту я буду ссылаться на файлы в папке на GoogleDrive:
drive.google.com/open?id=0B4WG5OG778SzNDRzbmk2cUVn…
Если я просто даю имя файла - надо его скачать оттуда. В некоторых случаях буду давать прямые линки на сторонние ресурсы.
В процессе работы была снята полная схема ESC:
cx20_esc.pdf
Все обозначения деталей соответствуют фотографиям face.jpg и rear.jpg.
Тип драйверов на самом деле неизвестен, так как затёрты - были взяты подобные по функциям. Особенности - внутренний диод на бустер (обычно внешний), инвертированный сигнал по нижнему драйверу (выход активен при 0 на входе).
Силовые транзисторы PK650BA, их Datasheet:
…com.cn/…/201584092224-PK650BA_REV1.1_20150720.pdf
Кратко: до 30В, сопротивление в открытом состоянии 3.3мОм, постоянный прямой ток - 19А, импульсный - до 100А, время включения - 23нс, время выключения - 40 нс. В общем - очень приличные параметры.

Необходимое

Для прошивки надо приготовить:
Arduino Nano - одна из самых дешёвых ардуин, меньше 2$
Лампочку на 12В. Желательно на небольшую мощность, например какую-нибудь подсветки салона из машины.
Провода, паяльник, терпение.

Процедура прошивки

Скачиваем BLHeliSuite16514801.zip , распаковываем его в любое место.
Скачиваем обновление 16514800to16514801patch.zip , распаковываем его туда же.
Качаем прошивку XP_3A_MULTI_REV14_8.HEX

Подключаем Arduino Nano по USB, ждём появления нового последовательного порта и смотрим его номер в диспетчере устройств. У меня это COM6, в дальнейшем буду использовать этот номер. Если вместо последовательного порта обнаружилось неизвестное устройство - качаем драйвера для CH340 и устанавливаем:
www.wch.cn/download/CH341SER_ZIP.html
Либо гуглением они находятся за 5 минут.

Запускаем BlHeliSuite.
Идём на закладку MakeIntefaces.
Панель Make Arduino Interface Boards.
Arduino Board - выбираем Nano w/ Atmega 328.
Baud - 57600
Port (в самом низу) - выбираем тот, на который встала Arduino.

Теперь жмём по нижней кнопке: Arduino 4Way-interface
Появится окошечко подтверждения, нажимаем OK.
Появляется окно выбора файла прошивки. Выбираем:
4wArduino_Nano__16_PB3PB4v16400.hex
ВНИМАНИЕ: именно с PB3PB4 в имени, не перепутайте.
Еще одно окошечко подтверждения - жмём Yes.
Появится окно со всякими бегающими строками, всё должно закончиться окном с сообщениями от флешера и кнопкой OK. Убеждаемся, что последняя строка от флешера “done. Thank you” и жмём OK.
Всё, Silabs C2 интерфейс для прошивки подготовлен. Пока отключаем Arduino от USB.

Вытаскиваем ESC, отпаиваем провода мотора, отключаем управление, отпаиваем питание, кладём на стол.
Подпаиваем три коротких проводочка (сантиметров 10-15, не более) к Arduino:

С другой стороны подпаиваем их к ESC в соответствии с картинкой:

VDD НЕ ПАЯЕМ
От отдельной батарейки ЧЕРЕЗ ЛАМПОЧКУ заводим питание на ESC. Лампочка защитит от бросков тока, если вдруг ключи откроются неправильно во время перепрошивки.
Подключаем Arduino к USB.
Запускаем BlHeliSuite. Закладка SiLabs ESC Setup. Меню Select Atmel / Silabs Interface - выбираем вариант B Silabs C2 (4way-if).
Внизу проверяем номер порта, должен быть тот, Arduino. Нажимаем около него Connect.
На родном ESC выдастся ошибка, что память не может быть считана, игнорируем.
Нажимаем Flash other. Появится окно выбора файла - выбираем тот самый скачанный XP_3A_MULTI_REV14_8.HEX
Будет предупреждение какое-то - типа “Вы уверены, что хотите прошить именно этот файл”. Отвечаем Yes. Если всё нормально, то побегут отсчёты Write, потом Read.
Появится табличка с надписью “Flashed file succesfully” и кучей предупреждений. Жмём Ок.
Появится вопрос: Do you want write current settings to ESC? То есть сохранить ли текущие настройки в ESC. Если вы еще не настраивали ESC, то нажимаем NO.
Всё, прошились.
Настраиваем. Мои рекомендации (многие взяты с потолка):
Closed loop mode: Off
Motor Gain: x1.00
Startup power: 1.00
Temperature protection: On
PWM Output Dither: 7
Low RPM power protect: On
Brake on Stop: On
Motor direction: Normal
Demag compensation: Low
PWM Frequency/ Damped: High
Enable PWM Input: off
Motor timing: MediumHigh
Input polarity: Positive

Programming by TX: галочка снята
Остальное на ваш вкус - там всё понятно.
Настроили - давим на Write Setup и потом на Restart ESC.

Всё. Подключаем мотор, подключаем управление, пробуем покрутить (пока с лампочкой).
Если мотор без пропеллера, то на малых оборотах ток должен быть порядка 200-300 мА.
Если больше - что-то не так. Я проверял от лабораторного блока питания - там проще оценивать потребление.

TODO:

  • времена включения/выключения сейчас в прошивке стоят по прикидке. Надо бы померить реальные и понять - в каких единицах они задаются в прошивке
  • разобраться с DampedLight. Вроде он работает, но какой вариант макроса надо ставить в прошивке - пока не понял
  • 3061
Tags:
Comments
An_private

Так, с DampedLight разобрался, вроде. Работает. Вообще впечатляет мгновенная смена оборотов 😃 Но надо как-то жёстко крепить винты - иначе на торможении открутятся.

darkcats

вопрос: а в качестве ардуины, Usbasp программатор пойдет? он же тоже не атмеге… и миним осд я им поднимал) и точки MISO и MOSI на нем есть и разъем 6 пин))

An_private
darkcats;bt152538

вопрос: а в качестве ардуины, Usbasf программатор пойдет? он же тоже не атмеге… и миним осд я им поднимал) и точки MISO и MOSI на нем есть и разъем 6 пин))

Штатными средствами не пойдёт. BlHeliSuite требует стандартного Silab С2 интерфейса, который он сам делает из любой ардуины. Скачайте BlHeliSuite - посмотрите там доступные интерфейсы.

darkcats
An_private;bt152539

Штатными средствами не пойдёт. BlHeliSuite требует стандартного Silab С2 интерфейса, который он сам делает из любой ардуины. Скачайте BlHeliSuite - посмотрите там доступные интерфейсы.

понятно, заказал уже ARDUINO NANO за 3 бакса))) с али)

An_private
darkcats;bt152540

понятно, заказал уже ARDUINO NANO за 3 бакса))) с али)

Грабёж 😃 Тут за 2.15$
www.aliexpress.com/item/…/32382480158.html
А для интерфейса только можно и на Atmega168 взять за 1.92$ 😃

darkcats
An_private;bt152541

Грабёж 😃 Тут за 2.15$
www.aliexpress.com/item/…/32382480158.html
А для интерфейса только можно и на Atmega168 взять за 1.92$ 😃

ну я примерно цену сказал)) я так и взял за 137р)) и именно у этого продавца)

darkcats

по поводу лампочки, ее подключаем между + и - батареи, перед ESC ? так я понял?

An_private
darkcats;bt153258

по поводу лампочки, ее подключаем между + и - батареи, перед ESC ? так я понял?

А смысл какой? Между + батареи и + ESC. То есть последовательно.

darkcats

спс

whoim

Есть ли смысл прошивать регули, если они живые, для использования на f4 полетнике под inav? Функционала добавится?

An_private
whoim;bt161419

Есть ли смысл прошивать регули, если они живые, для использования на f4 полетнике под inav? Функционала добавится?

По настроению 😃 В общем-то, они и в изначальном виде нормально летают.Основное преимущество Blheli - это активное торможение. Ну и плюс всякие настройки, но насколько они нужны - вопрос спорный.

whoim
An_private;bt161422
  • вопрос спорный.

Настроение есть, понимание что происходит - тоже)
Но активное торможение на первых порах наверное не светит - винты самозатяг. С другой стороны, потом разбирать это все неохота, когда приедут нормальные трёшки… Спасибо за ответ в общем, подумаю щас)
ЗЫ а 4s эти моторы и регули на 9450 винтах точно сдюжат если пытаться жарить?)

An_private
whoim;bt161424

4s эти моторы и регули на 9450 винтах точно сдюжат если пытаться жарить?)

Должны. Ключи там хорошие. Насчёт моторов уже не так уверен, но 9450 не сильно большой размер. Думаю вытянут.

whoim
An_private;bt161432

Должны. Ключи там хорошие. Насчёт моторов уже не так уверен, но 9450 не сильно большой размер. Думаю вытянут.

Спасибо! Все перепрошил, от торможения моторов на столе прифигел)
А подключаться к ним теперь случайно нельзя по проводу, которым оно управляется, pwm?)
168я атмега не захотела прошиваться, хотя в программе она есть, только 328я, если что. Наверное, загрузчик уже более новый…
Моторы отпаивать тяжко конечно, надо паяльник помощнее отдельно взять для такого.

whoim

А ещё такой вопрос, если можно. Если на vdd пустить 3.3в, и не подключать питание регулятора, им можно будет управлять не отпаивая моторов?Хочу разьемчики мелкие впаять на будущее

An_private
whoim;bt161440

А ещё такой вопрос, если можно. Если на vdd пустить 3.3в, и не подключать питание регулятора, им можно будет управлять не отпаивая моторов?Хочу разьемчики мелкие впаять на будущее

Можно так. Можно подключать питание регулятора и настраивать, не отпаивая моторы - всё равно до арма ключи не активны.
У меня подпаяны разъёмы без VDD.

whoim

Спасибо! Посмотрим, сколько проживут)