Обсуждение и перепрошивка регуляторов (ESC) прошивками SimonK/BLHeli

gorbln
An_private:

Не могу понять - какой toolchain нужен для компиляции.

Avra.
Вообще, вроде, любой ассемблер для AVR, avrasm например.

Если скачаете KKMulticopterFlashTool - там есть встроенный редактор кода и компилятор.

An_private
ssilk:

По фоткам пробовали искать аналоги? Или, хотябы, по приблизительной схеме, номиналы, феты и так далее…

Нету аналогов. Я уже разобрался - прозвонил пины. Порт 0 расшит стандартно, а порт 1 со смещением на 2 пина относительно обычной распиновки. Проверил по всем inc файлам в прошивке - прямых аналогов нет. Придётся брать какой-нибудь похожий inc, менять пины в нём и собирать прошивку. Как её собирать я уже разобрался.

gorbln:

вроде, любой ассемблер для AVR

Там Silabs. Нужен Ride7 + Rkit 51.

gorbln
An_private:

Там Silabs. Нужен Ride7 + Rkit 51.

действительно. не посмотрел, что блхели, а не симонк.

An_private

Чёрт, ничего не понимаю… Поменял inc файл, переназначил все пины. Всё пять раз перепроверил. Прошил. Подаю питание, радостно пищит. Подаю ppm на вход 1200. Начинает медленно крутиться (1-2 оборота в секунду) и всё - не разгоняется. Ест где-то полампера при этом. Греется немного сам моторчик и градусов до 40-50 силовые ключи. Включаю реверс через blheli - крутится в другую сторону с такой же скоростью. Все пины и сигналы проверил - драйвера живые, сигнал до ключей доходит, ключи, вроде, тоже живые, сигнал обратной связи на все 4 положенных пина доходит. Что ему еще надо - ума не приложу…

An_private
ssilk:

ШИМ?

Приборы? Что приборы? 😃
ШИМ присутствует, конечно 😃
То есть на пинах сигналы управления присутствуют - могу осциллограммы дать.
Такое ощущение, что с обратной связью что-то не то - то ли где-то что-то перепутано, то ли где-то что-то сдохло. Но прохождение сигналов до пинов я проверил.
Попробую сегодня взять запасной Overskyrc MR-20A, перепрошить его в BlHeli и посмотреть - где там и что происходит. Может хоть что-то пойму…

ssilk

Не управления… Я имею ввиду частоту коммутации, от нее непосредственно обороты зависят. Если она слишком низкая или слишком высокая мотору не хватит мощности обороты набрать. Еще момент: Бывают моторы(не хоббийные, из разных отраслей), у которых обороты меняются сдвигом фазы. Например, 0 или 180 это максимальная мощность и обороты, а 90 или 270 - минимальные. Посмотрите в сторону тайминга, это и есть сдвиг фазы…
Я тут недавно тоже запускал бесколлекторник с датчиками Холла, либо не крутится вообще, либо только в ненужную сторону, пока до меня дошло что датчики надо переполюсовывать вместе с силовыми я изрядно поматерился и собирался уже спор открывать…) Засада в том, что нет схемы подключения мотора к драйверу…)

An_private
ssilk:

Я имею ввиду частоту коммутации

Ну так её полностью определяет контроллер - я в неё вмешиваться не могу никак.
Вот так выглядит сигнал на фазах двигателя:

Визуально правдоподобно…

An_private

А ни у кого нету, случайно, схемы какого-нибудь ESC на Silabs, который бы поддерживал BLHELI? Ничего не могу найти. Хочу кое-какие принципы устройства проверить…

ssilk

Поздравляю… И в чем дело было?

An_private
ssilk:

в чем дело было?

Ну, привычка читать комментарии к коду сыграла плохую роль в данном случае. Кратко:

  • в коде задефайнены пины, соответствующие входам драйверов
  • выглядит это примерно так:
    AnFET EQU 5 ;o “nFETs” are really the high side drivers
    BnFET EQU 4 ;o
    CnFET EQU 3 ;o
    ApFET EQU 2 ;o “pFETs” are really the low side drivers
    BpFET EQU 1 ;o
    CpFET EQU 0 ;o
  • читаю комментарии и вижу, что pFET - нижняя сторона, а nFET - верхняя
  • несколько удивляюсь (так как обычно наоборот), но вбиваю пины в соответствии с комментами
  • ни хрена не работает
  • вожусь полтора дня, снимаю полную схему - всё правильно, но не работает
    Тут я начинаю что-то подозревать 😃 Ищу в инете фото самого простого трёхамперного ESC вообще без драйверов. Беру соответствующий ему inc-файл. И за 10 минут убеждаюсь, что как и подсказывает логика - nFET - нижние, pFET - верхние.
    Долго матерюсь.
    Перезабиваю определения и макросы - тут же всё начинает крутиться как родное.
    Остались не совсем понятны две вещи:
  • в каких единицах забиваются задержки между коммутациями для избежания входного тока? Пока поставил примерно средние по больнице, так как судя по схеме этот ESC должен быть довольно быстрым
  • от чего зависит вид макроса, который делает DampingLight. В разных inc он разный и пока не понял чётко закономерность. Вроде и так работает, но как-то это не совсем правильно.
Hyperion

на фоне этого
rcopen.com/forum/f123/topic276142/25461
решил сравнить damped light в blheli и motor_brake в simonke

youtu.be/fUtqhOsaN9o

по стоп кадрам сделал несколько замеров дабы усреднить показания и в целом вырисовалась следующая картина
simonk_vs_blheli by Alexey Degterev, on Flickr
а картина такова.
simonk_vs_blheli_chart by Alexey Degterev, on Flickr

  1. Без Торможения blheli жрет больше тока. Теперь это 100% точно доказано для себя. А то были сомнения.
  2. Damped light оказывает самым экономичным режимом.
  3. У Simonk режимы более сбалансированы. Самый экономичный оказывается comp_pwm off motor_brake off
  4. comp_pwm какой то непонятный режим. По работе мотора я не увидел эффекта
  5. motor_brake работает аналогично damped light. Но торможение более плавное. У второго торможение более резкое.
Hyperion

меряю эффективность при тяге ~300г. Именно такой вес коптера у меня - 1200г и такая тяга нужна.

SergejK
Hyperion:

решил сравнить damped light в blheli и motor_brake в simonke

Вообще comp_pwm это аналог damped light. На эффективность кроме прошивки будет влиять еще и схемотехника регулятора, в идеале нужно использовать один и тот же. Незнаю правда, насколько блхели хорош на атмегах, всетаки точат его в основном под силабсы. На разных регулях сравнение врядли будет 100% корректным. Кроме того тот же тайминг тоже может влиять на эффективность. А найти одинаковый по характеристикам для обеих прошивок весьма проблематично.

Hyperion

Регуль один и тот же! ztw spider lite 18a. На atmel чипе конечно же. damped light включался и отключался через конфигуратор между тестами. Симонк заливался через rapidflash с указанием режимов (comp_pwm и motor_brake)

SergejK:

Вообще comp_pwm это аналог damped light.

Я тоже так думал, как оказалось нет. Тоже думал что это аналог damped light - но на видео видно что с включеным comp_pwm торможение не работает. Тайминги везде дефолт. Я до этого сравнивал эти моторы на блхели с разными таймингами. Срывов нету в любых диапазонах. Эффективность в пределах погрешности. Таки и летаю на дефолтныйх. Моторы 980кв и пропы 10дюймов.

SergejK
Hyperion:

Я тоже так думал, как оказалось нет.

Да нет, так и есть. У саймонк торможение и comp_pwm это разные вещи. Если на пальцах, то торможение работает при остановке, а comp_pwm только при вращении. Потому торможение и заметно в принципе.

Hyperion

да возможно так и есть. Визуально конечно сложно отличить как оно тормозится в процессе вращения. Гораздо проще понять работу при абсолютном торможении.

youtu.be/0M1iOlgDxJk

снял второе видео.
прямо кардинально отличается работа регулей.
пояснение. На blheli при поднятии газа от нуля до середины обороты не меняются. Причем это так стало в прошивке 3.4 апм коптера. При уровне газа середина и чуть выше коптер сразу взлетает.
на симонке же газ растет линейно как и было на старых прошивках. При этом если коптер стоит криво, то один из моторов не крутится. Стоит его наклонить - начинает вращаться. При этом сразу после калибровки газ растет линейно. Блхели был откалибровка до записи видео (летал на этой прошивке) а симонк калибровал на видео. К сожалению не снял как реагирует блхели на газ сразу после калибровки.

ssilk
Hyperion:

При этом если коптер стоит криво, то один из моторов не крутится. Стоит его наклонить - начинает вращаться. При этом сразу после калибровки газ растет линейно

Не парьтесь по этому поводу, так и должно быть… Сразу после калибровки сигнал на регули идет байпассом на регули, потому и линейно… Как только питание переподключили байпасс отключается и сигнал идет через мозг, то есть просчитывается алгоритмом стабилизации… У меня так на любых регулях и любых контроллерах, кроме самых тупых…