BLHeli для ESC с контроллером SiLabs (часть 1)

Прошил свои новые Turnigy Plush 25A прошивкой BLHeli.
Хочу поделиться информацией о данной прошивке вцелом и том, как это все дело прошивается, что откуда качать и т.п.
(т.к. я во всем этом новичек, прошу не ругать сильно за ошибки и глупые высказвания, просто напишите, если что не так - я подправлю)

Предупреждаю сразу: вернуть заводскую прошивку не получится! И я не несу никакой отвественности, если вдруг у вас что-то пойдет не так, и вы испортите свои регуляторы! Прежде чем начинать, прочтите все до конца и оцените свои силы.

О прошивке

Прошивка BLHeli разрабатывается и поддерживается неким Steffen Skaug. Вся информация, включая обновления, публикуется в отдельной ветке вот тут. Изначально прошивка проектировалась под вертолеты, но на данный момент она развилась на столько, что прекрасно подходит и под мультимоторные системы.

Приведу для примера табличку настроек прошивки для мультиков:

А вот пример работы:

На видео автор показывает, как летает его мультик на дефолтных настройках сначала со стоковой прошивкой, а затем с прошивкой BLHeli.
Скажу сразу, я еще не успел полетать на своих перепрошитых. Погода не позволяет…

На данный момент поддерживаются следующие ESC:

  • Turnigy Plush 6/10/12/18/25/30A
  • Turnigy AE 25A (All N-Fet design aka it runs cooler)
  • DP 3A
  • XP 3/7/12/18/25A
  • SuperMicro 3/5A

(на самом деле это скорее всего не полный список, подробнее можно узнать в офф. ветке прошивки и из файла)

Как и для прошивки СимонКа нам понадобится подпаяться к пятачкам на плате. Но подпаять придется всего 2 провода 😃
Оставлять или нет проводки и выводить ли разъем - дело ваше. Но через него очень удобно настраивать регуляторы, а так же можно перепрошивать новые версии прошивки, которые выходят довольно часто! Так что я лично оставил.

Где все это счастье брать:

  1. BLHeli for SiLabs ESCs (официальная ветка прошивки на форуме)
  2. BLHeli / SiLabs (репозиторий, в котором всегда можно скачать последнюю версию прошивки и руководство)
  3. BlHeli Setup (блог пользователя 4712, в котором он выкладывает свою программу для прошивки и настройки прошивок BLHeli)
  4. owSilProg: AVR for Flashing Silabs Microcontroller & ESC (блог тов. OlliW, в котором он выкладывает свою версию программы для прошивки и настройки прошивок BLHeli)
  5. Flashing SiLabs ESCs with BLHeli Multi Firmware (статья тов. Jordan, в которой он описывет на англ. как это все прошить, собственно я с этой статьи и начинал)

Чем прошивать:

Тут есть несколько вариантов:

  1. Купить специальный программатор для SiLabs’ов, называемый Toolstick
  2. Использовать Arduino (либо любой ее клон, собственно, сама платка для MultiWii - это тоже клон ардуино)
  3. Использовать любой совместимый микроконтроллер от ATMEL (ATmega8, 168, 328) в DIP корпусе на макетке

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

Вот так это все у меня выглядит в готовом виде:

Подготовка ESC:

Честно говоря, сначала я все это заснял на видео, хотел сварганить ролик, выложить на ютуб, но потом подумал, сколько это времени займет (чтобы все это дело обработать, порезать, вставить ссылки и т.п.), короче, передумал 😃
Постараюсь объяснить все в текстово/картиночной форме.

Нам понадобится:

  1. Сам ESC
  2. Провод монтажный тонкий (например, МГТФ)
  3. Термоусадка
  4. Разъем BLS-2 (или любой другой, какой вам нравится)
  5. Паяльная станция с тонким жалом (хотя можете и 60-ваттным паялом попробовать запаять :rolleyes:)
  6. Флюс паяльный безотмывочный (например, ЛТИ-120)
  7. Припой тонкий (например, ПОС61)
  8. Зажигалка (фен/горелка)

Нам нужно вывести наружу 2 контакта (да-да, всего два 😃 гораздо меньше, чем при прошивке регуляторов на атмеге). На самом деле нужно три Gnd (земля), C2CK и C2D. Но т.к. земля и так присутствует, например, на контакте управления ESC, дополнительно я ее не выводил.

  1. Снимаем с нашего ESC термоусадку и находим на плате пятачки для подпайки.
    Чтобы найти пятачки, воспользуйтесь этим файлом. Нужные места для подпайки, как я понял, на картинках обведены цветными кружками. Нам нужны красный и белый кружки. По крайней мере на моих Turnigy Plush 25A все было именно так 😃

  1. Подготавливаем проводки для подпайки (я лично использую тонкий МГТФ провод, а так же BLS-2 гнездо на кабель - то есть подпаиваюсь и оставляю разъемчик прямо под термоусадкой, так, что к нему остается удобный доступ)
    Отрезаем небольшой кусочек провода, снимаем с обоих концов изоляцию (с МГТФ изоляцию удобно снимать огнем, например, от зажигалки). Только не переусердствуйте! Особенно с конца, который будет припаиваться на пятачек на плате ESC необходимо снять совсем чуть-чуть, чтобы как раз влезало на пятачек.
    Затем обжимаем (или запаиваем) один из концов проводка в разъем BLSки.
    Я паяю дешевой китайской паяльной станцией YaXun с тонким жалом. Использую флюс ЛТИ-120 (фирмы коннектор) и наш отечественный тонкий припой ПОС61.

  2. Заодно можно подготовить кусочки новой термоусадки. Если использовать прозрачную, то между термоусадкой и платой регулятора можно будет подложить наклейку со старой термоусадки, ну ту, на которой написано название ругулятора и т.п. У меня прозрачной не было, так что взял обычную черную.

На данной картинке видно несколько подготовленных проводков с разъемами, несколько кусочков термоусадки, старую разрезанную термоусадку Turnigy и сам подопытный регулятор.

  1. Подпаиваем наши проводки к площадкам (напоминаю: нам нужны площадки, помеченные красным и белым кружками)

Получается как-то так.

Если флюс не безотмывочный (ну или эстетики ради) спиртом отмываем флюс.

  1. Останется надеть на контакты саму гильзу BLS и ужать это все аккуратно в новую термоусадку (феном/зажигалкой/горелкой - только не перегрейте!). У меня разъем располагается так:

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

Подготовка программатора:

Если вы решили использовать варианты 1 (toolstick) или 2 (ардуино), то вам прямая дорога в статью тов. Jordan. Там вы в картинках сможете увидеть, куда подключать наши проводки.

Тут же речь пойдет о программаторе из голой ATмеги8 (ну или какой-то другой).

Нам понадобится:

  1. ATmega8(A) или какая-то другая
  2. Макетная плата (breadboard - белая в дырочку, как у меня на фото)
  3. Несколько проводков/перемычек
  4. Резистор на 1-10 кОм
  5. Программатор для атмеги (подойдет USBAsp, USBTinyISP, да в общем-то любой, которым можно прошить AVR’ку)
  6. USB-UART переходник на FTDI микросхеме (на микросхеме CP у меня почему-то ничего не завелось)

В итоге на макетке должно выйти нечто следующее:

У меня на макетке подключены одновременно и программатор и USB-UART переходник - просто, чтобы показать, что и куда подключается.
Так делать не стоит!

Чтобы было понятнее, приведу распиновку:

Желтым помечены используемые контакты.

Чтобы предварительно прошить нашу АТмегу (это делается один раз), подключаем только:

  1. Все GND - к земле
  2. VCC, AREF, AVCC - к +5 вольт
  3. RESET через резистор в 1-10 кОм - к +5 вольт
  4. MOSI, MISO, SCK, RESET - к программатору (еще к нему идет земля и с него берется +5 вольт питания)

Если забыли (не знаете), как расположены пины на разъеме программатора, то вот они:

Подключили? Проверили 10 раз все соединения? Тогда смело подключайте программатор к компьютеру и запускайте на нем вашу любимую программу для прошивки AVR’ок. Если у вас ее нет, используйте, например, эту.

Выбирайте в программе для прошивки ваш программатор (я в SinaProg в самом низу в разделе Programmer выбрал USBAsp).
Если вы используете SinaProg, то можно теперь нажать кнопку Search и SinaProg (если все правильно подключено) найдет нашу АТМегу (в выпадающем списке Device будет выбрано ATmega8). Если вы исползуете другую программу, тогда вам в ней необходимо указать, что за контроллер (ATmega8) мы используем.

Далее мы используем комплект программ и прошивок от тов. OlliW.
Идем к нему на сайт (ссылка была указана ранее) и в самом низу страницы в разделе “Latest Firm- and Software” качаем последнюю сборку (на момент написания это было “owSilProg BLHeliTool BLHeliBox v20120921c”).

Распаковываем скачаный архив куда-нибудь поближе к корню одного из жетских дисков и находим в нем файл “owsilprog_v008_m8_8mhz_pb3pb4.hex”, возможно в будущем появятся более новые версии, так вот в имени этого файла версия это v008. m8 - это как раз наша ATmega8, 8mhz указвает, что прошивка рассчитана на работу на частоте 8mhz, а pb3pb4 указывает на то, что подключать регулятор надо будет к пинам pb3 (MOSI) и pb4 (MISO).

В сборке есть прошивки и для других микроконтроллеров и частот. Так вот, если вы решили использовать Ардуино для прошивки ваших регуляторов, вам скорее всего пригодится другая прошивка, например, “owsilprog_v008_m2560_16mhz_pb2pb3.hex” для Arduino Mega 2560 (так как на нем стоит как раз ATmega2560 и работает она на частоте 16mhz). Обратите внимание, что при этом используются другие пины pb2pb3. А определить, какие при этом конкретно используются выводы Ардуино можно, почитав информацию на сайте arduino.cc/en/Main/Hardware. Например, для Arduino Mega 2560 смотрим arduino.cc/en/Hacking/PinMapping2560 и видим наши pb2 - Digital pin 51 и pb3 - Digital pin 50.

Итак, мы определились, какую будем прошивать прошивку, в SinaProg щелкаем на значек папочки в разделе Hex file и выбираем нашу прошивку “owsilprog_v008_m8_8mhz_pb3pb4.hex”.

В разделе Flash нажимаем кнопочку Program и ждем, пока все прошьется. Так же рядом есть кнопочка Verify - нажав на нее можно сравнить содержимое памяти микроконтроллера (что в него прошито) с содержимым выбранной прошивки. Это можно сделать для верности после прошивки.

Осталось самое страшное Фьюзы 😃 Если вы пользуетесь SinaProg, то вам достаточно в разделе Fuses выбрать из выпадающего списка “Int. 8 MHz” и нажать рядом кнопку Program. Все.
Если вы используете Ардуино - Фьюзы трогать вам не нужно!
Если у вас какая-то своя программа для прошивки, то вам необходимо в ней настроить фьюзы на работу ATmega8 от внутреннего RC генератора на частоте 8 MHz. High: D9 / Low: E4 / Lock: не трогать!

Вот как-то так:

youtu.be/eJHcM1CHSks

Итак, прошивку “owsilprog_v008_m8_8mhz_pb3pb4.hex” прошили и проверили, Фьюзы запрограммировали? Идем дальше!

Далее: часть 2.

Обсуждение предлагаю вести на формуе: вот тут.

  • 24965