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

Начало: часть 1.

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

Для начала нужно отключить наш USBAsp от меги и подключить к ней USB-UART переходник, то есть должно быть подключено следующее:

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

Все подключили, проверили. Подключаем USB-UART переходник к компьютеру.

Из сборки тов. OlliW открываем программу “BLHeliTool_v006.exe”, выбираем в ней внизу правильный порт (у меня это COM7) соответствующий вашему переходнику.

Нажимаем Read. В итоге должны получить что-то вроде:
Read… Please wait!
delay… OK
v… OlliW SilProg v0.08 PB3PB4
r… rok
d… Connection to target FAILED!

Если вывод именно такой, значит все ок. Программатор у нас получился рабочий и программа может с ним общаться.
А вот строчка “Connection to target FAILED!” говорит о том, что регулятор мы не подключили - так оно и есть.

Если вывод такой:
Read… Please wait!Opening port COM7 FAILED!

Значит вы выбрали не тот порт. Либо ваш USB-UART переходник не подходит (я уже писал, что с переходником на CP у меня ничего не вышло).

Если вывод такой:
Read… Please wait!
delay… OK
v… Connection to target FAILED!

Значит что-то не так с подключением вашего переходника к АТмеге. Попробуйте, например, поменять проводки RXD и TXD местами. Если и это не поможет, значит что-то пошло не так, например, не прошилось, или фьюзы выставлены неверно, или питания на АТмеге нет. В общем, это означает, что наша АТмега не отвечает на запросы от программы.

Прошивка ESC:

Добрались до самого ответственного 😃

Нам дополнительно потребуется питнаие для регулятора. Вообще рекомендуется использовать какое-нибудь маломощное питание, чтобы в случае некорректной прошивки не пожечь регулятор. Хотя я этим правилом пренебрег и использовал для питания БП от компьютера (12 вольт).
Так же лучше подключить к регулятору и моторчик, чтобы хоть как-то определять, жив ли регуль 😃 Моторчик ессно без винтов!

Подключаем моторчик к регулятору.

На макетке подключаем это:

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

Пора подключить три проводка, которые у нас заготовлены для регулятора. Земляной проводок к земле (минусу, черному проводу) на разъеме управления регулятором. А два других к нашему подпаянному разъему. Как - не особо важно, т.к. если будет не правильно - просто перевернем.

Несколько раз все проверяем и перепроверяем, смотрим, чтобы нигде ничего не замыкало.

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

Затем подключаем наш USB-UART переходник к компьютеру.

Снова запускаем “BLHeliTool_v006.exe”, проверяем в ней, чтобы был правильно выбран порт.

Переходим на закладку "Flash BLHeli to BESC"и выбираем там правильные параметры:
BESC: TURNIGY_PLUSH_25A (у меня такой)
Revision: 7.0 (последняя на данный момент)
Mode: MULTI (есть еще две версии для вертолетов MAIN и TAIL)

В итоге в строке Hex File должно получиться нечто такое:
BLHeliHexFiles\TURNIGY_PLUSH_25A_MULTI_REV7_0.HEX
А можно и просто было выбрать данный Hex через проводник.

(внимание, подумайте еще раз - оно вам надо? пути назад не будет 😃)

Нажимаем Flash и ждем.

Если получаем вот такой вывод:
Flash hex file… Please wait!
delay… OK
v… OlliW SilProg v0.08 PB3PB4
r… rok
d… Connection to target FAILED!

Значит перепутали проводки идущие к регулятору, меняем их местами (их же всего два).

Снова жмем Flash и ждем.

При правильном подключении должны получить нечто такое:
Flash hex file… Please wait!
delay… OK
v… OlliW SilProg v0.08 PB3PB4
r… rok
d… dok0A
i… iok
e… eok
…тут много много точек…
Flash hex file… DONE!

Если до надписи “Flash hex file… DONE!” не дошли, значит что-то пошло не так. Немедленно отключите питание от регулятора и внимательно проверьте все соединения. Ну и пробуйте снова.

Если же желанную надпись “Flash hex file… DONE!” получили - отключаем питание от регулятора, ждем несколько секунд (чтобы точно выключился) и подаем питание снова.

Если все ОК - регулятор пропищит нам приветсвие немного отличное от стокового.

Настройка прошивки:

Во-первых, вам понадобится руководство к BLHeli. Например, это. Качаем, открываем, изучаем.

Для настройки прошивки у нас есть два способа:

  1. С помощью аппы (да, данная прошивка поддерживает и этот режим, как им пользоваться - как раз рассказано в первой части руководства)
  2. С помощью программы (куда быстрее, проще и удобнее)

Рассмотрим второй способ: подключаем все как для прошивки, подаем питание на регулятор, он пищит.

В программе тов. OlliW проверяем опять же правильный порт и, находясь на закладке “Setup”, жмем Read.

Видим нечто такое:
Read… Please wait!
delay… OK
v… OlliW SilProg v0.08 PB3PB4
r… rok
d… dok0A
i… iok
br… br021A00ok0700 -> Revison 7.0
br… br021A0Dok55AA -> Mode 55AA MULTI
br… br101A60ok20202020202020202020202020202020
-> Name: > <
br… br101A50ok23424C48454C49234633333023202020
-> MCU: >#BLHELI#F330# <
br… br101A40ok235475726E6967793235412320202020
-> BESC: >#Turnigy25A# <
br… br011A07ok03 -> Gain: 3
br… br011A06ok03 -> Low Voltage Limit: 3
br… br011A09ok03 -> Startup Power: 3
br… br011A12ok01 -> Startup RPM: 1
br… br011A13ok05 -> Startup Acceleration: 5
br… br011A18ok02 -> Startup Method: 2
br… br011A15ok03 -> Motor Timing: 3
br… br011A16ok02 -> Damping Force: 2
br… br011A0Aok01 -> Motor PWM Frequency: 1
br… br011A0Bok01 -> Motor Direction: 1
br… br011A14ok01 -> Voltage Compensation: 1
br… br011A0Cok01 -> Input PWM Polarity: 1
br… br011A0Fok01 -> Programming by Tx: 1
br… br011A1Bok28 -> Beep Strength: 40
br… br011A1Cok50 -> Beacon Strength: 80
br… br011A1Dok01 -> Beacon Delay: 1
br… br011A1Eok0D -> Throttle Rate: 13
br… br011A19ok25 -> Throttle Min: 37
br… br011A1AokD0 -> Throttle Max: 208
Read… DONE!

И в программе появляется кучка настраиваемых полей и значений. Меняем их как нам хочется (что они значат, читаем в инструкции) и не забываем в итоге нажать “Write”.

Видим следующее:
Write… Please wait!
delay… OK
v… OlliW SilProg v0.08 PB3PB4
r… rok
d… dok0A
i… iok
br… br021A00ok0700 -> Revison 7.0
br… br021A0Dok55AA -> Mode 55AA MULTI
p… p0Dok
1A60 Name: >< -> bw101A6020202020202020202020202020202020… ok
1A50 MCU: >#BLHELI#F330# < -> bw101A5023424C48454C49234633333023202020… ok
1A40 BESC: >#Turnigy25A# < -> bw101A40235475726E6967793235412320202020… ok
1A00 Revison: 0700 -> bw021A000700… ok
1A0D Mode: 55AA -> bw021A0D55AA… ok
1A07 Gain: 3 -> bw011A0703… ok
1A06 Low Voltage Limit: 1 -> bw011A0601… ok
1A09 Startup Power: 3 -> bw011A0903… ok
1A12 Startup RPM: 1 -> bw011A1201… ok
1A13 Startup Acceleration: 5 -> bw011A1305… ok
1A18 Startup Method: 2 -> bw011A1802… ok
1A15 Motor Timing: 3 -> bw011A1503… ok
1A16 Damping Force: 2 -> bw011A1602… ok
1A0A Motor PWM Frequency: 1 -> bw011A0A01… ok
1A0B Motor Direction: 1 -> bw011A0B01… ok
1A14 Voltage Compensation: 1 -> bw011A1401… ok
1A0C Input PWM Polarity: 1 -> bw011A0C01… ok
1A0F Programming by Tx: 1 -> bw011A0F01… ok
1A1B Beep Strength: 40 -> bw011A1B28… ok
1A1C Beacon Strength: 80 -> bw011A1C50… ok
1A1D Beacon Delay: 1 -> bw011A1D01… ok
1A1E Throttle Rate: 13 -> bw011A1E0D… ok
1A19 Throttle Min: 37 -> bw011A1925… ok
1A1A Throttle Max: 208 -> bw011A1AD0… ok
Write… DONE!

Все, наши параметры записаны в регулятор! Можно тестировать! 😃

Итого:

Конечно это все кажется сложным, конечно можно испоганить регулятор (и не один), так стоит ли оно того? Не знаю (потому что еще не пробовал), но говорят, что стоит 😃

По поводу программы от тов. OlliW - ей есть альтернатива от пользователя 4712 (BLHeli-Setup называется). Выглядит как-то так:

Я ее тоже пробовал. Какую использовать - решать вам. Но для программы от пользователя 4712 естественно придется перепрошить мегу другой прошивкой (от него же, на самом деле изначально его программа не рассчитана на работу с таким вот программатором на 8 меге, но я ему отписал и мы с ним вот уже дня три пытаемся этот вопрос решить, он из-за меня даже 8 мегу закупил для тестов:), там была у нас пара глюков, но вроде как разобрались, так что ждем-с, скоро, надеюсь, он все обновит и выложит).

Какие еще вкусняшки нас ждут? Редактирование параметров в полях. Да, это тоже возможно и не через аппу. На самом деле для настройки BLHeli существует так называемый BLHeliBox. На самом деле это тоже аврка, к оторой прикручен экранчик, аккум и несколько кнопок. Чтобы можно было с помощью этой штуки прямо в поле подключиться к регулятору и поменять настройки. Ну это уже выходит за рамки статьи - так что читайте сами 😃

Пока что вроде все 😵

PS: извиниет за качество картинок, местный движок их так ужал 😦
Ну и не пинайте строго. Проба пера-с так сказать. Я лишь хотел внести свой вклад в летное сообщетсво, надеюсь, хоть кому-то пригодится 😃

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

  • 7610