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 провода 😃
Оставлять или нет проводки и выводить ли разъем - дело ваше. Но через него очень удобно настраивать регуляторы, а так же можно перепрошивать новые версии прошивки, которые выходят довольно часто! Так что я лично оставил.
Где все это счастье брать:
- BLHeli for SiLabs ESCs (официальная ветка прошивки на форуме)
- BLHeli / SiLabs (репозиторий, в котором всегда можно скачать последнюю версию прошивки и руководство)
- BlHeli Setup (блог пользователя 4712, в котором он выкладывает свою программу для прошивки и настройки прошивок BLHeli)
- owSilProg: AVR for Flashing Silabs Microcontroller & ESC (блог тов. OlliW, в котором он выкладывает свою версию программы для прошивки и настройки прошивок BLHeli)
- Flashing SiLabs ESCs with BLHeli Multi Firmware (статья тов. Jordan, в которой он описывет на англ. как это все прошить, собственно я с этой статьи и начинал)
Чем прошивать:
Тут есть несколько вариантов:
- Купить специальный программатор для SiLabs’ов, называемый Toolstick
- Использовать Arduino (либо любой ее клон, собственно, сама платка для MultiWii - это тоже клон ардуино)
- Использовать любой совместимый микроконтроллер от ATMEL (ATmega8, 168, 328) в DIP корпусе на макетке
Варианты 1 и 2 как раз описаны в статье тов. Jordan. 1 вариант я отмел сразу, т.к. покупать и ждать еще один программатор не хотелось. Вариант 2 вполне себе подходящий и простой, но у меня просто не оказалось под руками свободной Ардуинки (а выкорчевывать мозги из мультика не хотелось). Я решил опробовать вариант 3, т.к. в загашнике валяется несколько свободных микроконтроллеров. Вы можете выбрать любой из вариантов, тем более, что они очень похожи, разница лишь в железке ну и чуть-чуть в программщине.
Вот так это все у меня выглядит в готовом виде:
Подготовка ESC:
Честно говоря, сначала я все это заснял на видео, хотел сварганить ролик, выложить на ютуб, но потом подумал, сколько это времени займет (чтобы все это дело обработать, порезать, вставить ссылки и т.п.), короче, передумал 😃
Постараюсь объяснить все в текстово/картиночной форме.
Нам понадобится:
- Сам ESC
- Провод монтажный тонкий (например, МГТФ)
- Термоусадка
- Разъем BLS-2 (или любой другой, какой вам нравится)
- Паяльная станция с тонким жалом (хотя можете и 60-ваттным паялом попробовать запаять :rolleyes:)
- Флюс паяльный безотмывочный (например, ЛТИ-120)
- Припой тонкий (например, ПОС61)
- Зажигалка (фен/горелка)
Нам нужно вывести наружу 2 контакта (да-да, всего два 😃 гораздо меньше, чем при прошивке регуляторов на атмеге). На самом деле нужно три Gnd (земля), C2CK и C2D. Но т.к. земля и так присутствует, например, на контакте управления ESC, дополнительно я ее не выводил.
- Снимаем с нашего ESC термоусадку и находим на плате пятачки для подпайки.
Чтобы найти пятачки, воспользуйтесь этим файлом. Нужные места для подпайки, как я понял, на картинках обведены цветными кружками. Нам нужны красный и белый кружки. По крайней мере на моих Turnigy Plush 25A все было именно так 😃
-
Подготавливаем проводки для подпайки (я лично использую тонкий МГТФ провод, а так же BLS-2 гнездо на кабель - то есть подпаиваюсь и оставляю разъемчик прямо под термоусадкой, так, что к нему остается удобный доступ)
Отрезаем небольшой кусочек провода, снимаем с обоих концов изоляцию (с МГТФ изоляцию удобно снимать огнем, например, от зажигалки). Только не переусердствуйте! Особенно с конца, который будет припаиваться на пятачек на плате ESC необходимо снять совсем чуть-чуть, чтобы как раз влезало на пятачек.
Затем обжимаем (или запаиваем) один из концов проводка в разъем BLSки.
Я паяю дешевой китайской паяльной станцией YaXun с тонким жалом. Использую флюс ЛТИ-120 (фирмы коннектор) и наш отечественный тонкий припой ПОС61. -
Заодно можно подготовить кусочки новой термоусадки. Если использовать прозрачную, то между термоусадкой и платой регулятора можно будет подложить наклейку со старой термоусадки, ну ту, на которой написано название ругулятора и т.п. У меня прозрачной не было, так что взял обычную черную.
На данной картинке видно несколько подготовленных проводков с разъемами, несколько кусочков термоусадки, старую разрезанную термоусадку Turnigy и сам подопытный регулятор.
- Подпаиваем наши проводки к площадкам (напоминаю: нам нужны площадки, помеченные красным и белым кружками)
Получается как-то так.
Если флюс не безотмывочный (ну или эстетики ради) спиртом отмываем флюс.
- Останется надеть на контакты саму гильзу BLS и ужать это все аккуратно в новую термоусадку (феном/зажигалкой/горелкой - только не перегрейте!). У меня разъем располагается так:
Если не уверены в пайке или еще в чем - не утягивайте регулятор сразу в термоусадку, отложите пока в сторону, сначала попробуйте его прошить, а потом уже будете утягивать.
Подготовка программатора:
Если вы решили использовать варианты 1 (toolstick) или 2 (ардуино), то вам прямая дорога в статью тов. Jordan. Там вы в картинках сможете увидеть, куда подключать наши проводки.
Тут же речь пойдет о программаторе из голой ATмеги8 (ну или какой-то другой).
Нам понадобится:
- ATmega8(A) или какая-то другая
- Макетная плата (breadboard - белая в дырочку, как у меня на фото)
- Несколько проводков/перемычек
- Резистор на 1-10 кОм
- Программатор для атмеги (подойдет USBAsp, USBTinyISP, да в общем-то любой, которым можно прошить AVR’ку)
- USB-UART переходник на FTDI микросхеме (на микросхеме CP у меня почему-то ничего не завелось)
В итоге на макетке должно выйти нечто следующее:
У меня на макетке подключены одновременно и программатор и USB-UART переходник - просто, чтобы показать, что и куда подключается.
Так делать не стоит!
Чтобы было понятнее, приведу распиновку:
Желтым помечены используемые контакты.
Чтобы предварительно прошить нашу АТмегу (это делается один раз), подключаем только:
- Все GND - к земле
- VCC, AREF, AVCC - к +5 вольт
- RESET через резистор в 1-10 кОм - к +5 вольт
- 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: не трогать!
Вот как-то так:
Итак, прошивку “owsilprog_v008_m8_8mhz_pb3pb4.hex” прошили и проверили, Фьюзы запрограммировали? Идем дальше!
Далее: часть 2.
Обсуждение предлагаю вести на формуе: вот тут.