Прошивка Dshot для ESC

Сергей_Уж

И еще прочитал и попробовал прогу “BLHeli Configurator” из Хрома для прошивки ESC любой прошивкой без скачивания. Все просто и понятно, прошивка выбирается ( последняя есть ) из выпадающего меню.
Попробуйте, ничего особенного но мне понравилась
…google.com/…/mejfjggmbnocnfibbibmoogocnjbcjnk

PS И о скачке hex файлов, забыл как правильно, при сохранении получал файл на 100кб больше. Правильно когда на странице скачки в закладке RAW нужно кликнуть по самой кнопке RAW правой кнопкой и скачать, тогда получаем правильный файл. Просто выскочило из башки, копировал в блокнот и сохранял как hex 😃

DieHertz
arb:

Сколько шагов у ваншот с мультишот я не нашел , но я так понял мало и должно зависеть от разрешения мозгов при генерации / измерении сигнала.

240

arb:

Однако и с дшот есть подводные камни. Надо теперь смотреть даташиты мозгов на возможность измерения наносекунд. Т.к. если мозг различает только микросекунды , то заставить его работать с 600 будет невозможно. Он просто 1 не отличит от 0. И чувствительность к 600 наносекундам должна быть с запасом, чтоб помехи не влияли.

Не понял идеи, все BLHeli_S на базе EFM8BB10x/21x и поддерживают DSHOT того или иного битрейта. Не понял, что за 600 наносекунд такие и откуда они взялись.

Сергей_Уж:

И еще прочитал и попробовал прогу “BLHeli Configurator” из Хрома для прошивки ESC любой прошивкой без скачивания. Все просто и понятно, прошивка выбирается ( последняя есть ) из выпадающего меню.
Попробуйте, ничего особенного но мне понравилась
…google.com/…/mejfjggmbnocnfibbibmoogocnjbcjnk

PS И о скачке hex файлов, забыл как правильно, при сохранении получал файл на 100кб больше. Правильно когда на странице скачки в закладке RAW нужно кликнуть по самой кнопке RAW правой кнопкой и скачать, тогда получаем правильный файл. Просто выскочило из башки, копировал в блокнот и сохранял как hex 😃

С BLHeli Configurator скачивать HEX вручную не требуется.

arb
DieHertz:

240

Тогда получается длина шага 5/240*1000=20,8 наносекунд. Опять надо смотреть даташит на разрешение мозгов.

DieHertz:

Не понял, что за 600 наносекунд такие и откуда они взялись.

Отсюда

Сергей_Уж:

more technical infos from blckmn, he worked since the start on the betaflight Dshot support:
blck.mn/2016/11/dshot-the-new-kid-on-the-block

Бит длина (период времени) составляет 1,67 микросекунд (T0H + T0L или T1H + T1L).
Чтобы различить 0, Ширина импульса должна быть равна 625 наносекунд (T0H – время импульса для нулевого значения);
Чтобы различить 1, Ширина импульса должна быть равна 1250 наносекунд (T1H – время импульса для высокого значения)

А 625 или 600 разницы уже нет. Т.к. если есть разница, то тогда можно было бы еще раз в 10 сократить время цикла и получилось бы Дшот 6000. Но что-то и с таким временем проблемы.

DieHertz
arb:

Тогда получается длина шага 5/240*1000=20,8 наносекунд. Опять надо смотреть даташит на разрешение мозгов.
Отсюда

А 625 или 600 разницы уже нет. Т.к. если есть разница, то тогда можно было бы еще раз в 10 сократить время цикла и получилось бы Дшот 6000. Но что-то и с таким временем проблемы.

Понял откуда, спасибо. Да с 600 никаких проблем и нет, если устранить фильтр в цепи сигнала. На BLHeli_S проблема в том, что нет DMA, обрабатывать сигнал приходится программно, 600 Kbps - практически предел для семейства EFM8BB21x.
А KISS (STM32F051x) в тестах может и DSHOT1200.

wind7
arb:

Вся проблема именно здесь. Для достижения высокой скорости приходится уменьк раз бы остановились бы на самом принципе. Сделали бы 150, ну максишать ширину импульса, а это погрешность измерения 1 и 0. Когда на грани, ошибок не избежать.

вы в корне не правы , посмотрите как устроенны высокоскоростные протоколы допустим в автомобилях, по одному проводу может передаваться сразу 3 сигнала с разным порогом по напряжению , допустим +1в до -1в , +2.5в до-2.5 +3.5в до -3.5 или другие комбинации , и соответственно каждый канал будет читать свой порог как 0 или 1 , хотя обычно высоко скоростные протоколы идут по 2 поводам один на прием второй на передачу

arb

Это у Вас комп так коверкает чужой текст или специально сделали? Надеюсь первое.

wind7:

вы в корне не правы

Может быть, хотелось бы еще узнать только в чем.

wind7:

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

Мы обсуждаем конкретный протокол, реализованный на конкретных мозгах. На всякий случай повторю ссылку Сергея.

Сергей_Уж:

some blog posts:

more technical infos from blckmn, he worked since the start on the betaflight Dshot support:
blck.mn/2016/11/dshot-the-new-kid-on-the-block

Принцип протокола одно и по ссылке он хорошо описан, а вот возможности оборудования (мозгов) по измерению длины импульса другое. Зачастую проблема упирается в погрешность измерения. В противном случае возможны ошибки. И чтоб этого избежать на старом оборудовании и придумали ширину импульса 1000 мкс. Но даже старый протокол можно было просто сократить 2 раза по времени не меняя ширины импульса, а значит и количества шагов из расчета 1 шаг 1 мкс. Надо было всего лишь сократить задержку с 1000 до 50.

wind7:

хотя обычно высоко скоростные протоколы идут по 2 поводам один на прием второй на передачу

Ну здесь прием не требуется. Хотя на Кисс прием телеметрии реализован на отдельном проводе, это все же другое. А к примеру в протоколе SPI используется 2 провода для проверки, по 1 идет прямой сигнал, а по 2 инверсный. Но это другой протокол и здесь его никто не собирался использовать для сохранения совместимости со старым протоколом.
Да можно сравнить этот протокол с осциллографом. Ведь есть осциллографы способные измерять без искажений высокочастотные сигналы, но там уже и АЦП другой и частоты другие, и используются специальные щупы, которые точно не сравнить даже с витым проводом.

Сергей_Уж

Искал и нашел отличный ответ как найти и где находится тот самый кондюк фильтра который нужно удалить на Cicada\Racerstar RS30A V2 30A Blheli_S для корректной работы DShot600
Может кому то пригодится
www.rcgroups.com/forums/showpost.php?p=36216745&po…

DieHertz
Сергей_Уж:

Искал и нашел отличный ответ как найти и где находится тот самый кондюк фильтра который нужно удалить на Cicada\Racerstar RS30A V2 30A Blheli_S для корректной работы DShot600
Может кому то пригодится
www.rcgroups.com/forums/showpost.php?p=36216745&po…

Спасибо, я старался 😃 Это работает для большинства контроллеров на BLHeli_S.

nminnakh
DieHertz:

Это работает для большинства контроллеров на BLHeli_S.

А нужно именно удалить?
На сколько помню, речь шла о том, чтобы заменить на конденсатор бОльшей емкости.

DieHertz

Намного проще удалить вовсе, так делает большинство.
Если очень хочется заменить - стоит оценить частоту среза фильтра, обеспечив её приемлемое значение для желаемого DSHOT. Тут еще и сопротивление измерить придётся.

lunohod

Большой конденсатор вроде советуют на силовую линию ставить

SergejK
nminnakh:

А нужно именно удалить?
На сколько помню, речь шла о том, чтобы заменить на конденсатор бОльшей емкости.

Это врядли, конденсатор для того и стоит, чтобы сглаживать и фильтровать импульсы, что в конце концов может сгладить короткие импульсы настолько, что они не будут распознаны вообще. В сигнальную цепь регуля обычно ставят резистор и конденсатор в виде простого ФНЧ. Так вот конденсатор лучше всего удалять вообще. А вот резисор лучше оставить. Плюс да, конденсатор, да побольше и лоу еср, на вход питания регуля.

Сергей_Уж
DieHertz:

Спасибо, я старался 😃 Это работает для большинства контроллеров на BLHeli_S.

Суперовая статья, я мог бы не потеть с переводом , а здесь спросить 😃 Сейчас у меня на 600 моторки чуть чихают, работа неровная. Как было у тебя до и после, исчезли срывы ?
( монтировка сдернуть кондюк рядом, руки чешутся 😃 )

DieHertz
Сергей_Уж:

Суперовая статья, я мог бы не потеть с переводом , а здесь спросить 😃 Сейчас у меня на 600 моторки чуть чихают, работа неровная. Как было у тебя до и после, исчезли срывы ?
( монтировка сдернуть кондюк рядом, руки чешутся 😃 )

На моих RS30A v2 моторы вообще не стартовали на DSHOT600, без конденсатора - всё гладко. Я только на стенде проверяю пока, нет возможности полетать.
Один человек в теме на RCG жаловался на небольшие неравномерности в звучании без конденсатора на DSHOT600 с этими же контроллерами, но это не последняя инфа 😃

Сергей_Уж
DieHertz:

Один человек в теме на RCG жаловался на небольшие неравномерности в звучании без конденсатора на DSHOT600 с этими же контроллерами, но это не последняя инфа

Да, я это читал. Такое Феликс лечит на кисах прошивкой. У меня в режиме висения на 600 короткие срывы которые ни на что не влияют ( с кондюком ), на 300 все ровно и четко. Наверное попробую убрать кондюки, отпишусь…

arb
DieHertz:

Я только на стенде проверяю пока, нет возможности полетать.

А осциллографом глянуть сигнал есть возможность?

DieHertz
arb:

А осциллографом глянуть сигнал есть возможность?

Нет.

Я бы не гнался за 600, пока BetaFlight не поддерживает 16/32КГц для PID-регулятора и гироскопа.
Разве что из спортивного интереса, другое дело - контроллеры, которые вообще DSHOT из коробки не тянут из-за частоты среза на уровне 40КГц.

arb
DieHertz:

Нет.

Жаль так можно было воочию глянуть как там режется.

DieHertz:

Это работает для большинства контроллеров на BLHeli_S.

Спасибо. Так и есть. 17 нога (Р0.5) приемник. Проверил на ЛБ30_S. Кондер стоит.

DieHertz:

Я бы не гнался за 600, …
Разве что из спортивного интереса,

Я пока больше чтобы разобраться что к чему. Вообще если посчитать цифры в разных направлениях, то интересно получается.
2000 шагов это 0,05% от полного диапазона стика. С такой точностью стик ручками не двинуть.
Частота цикла мультишот и Дшот600 порядка 33 - 35 кГц.
Частота сигнала (1 импульса) Дшот 600 около 0,6 МГц. А длина 0 - 1,6 МГц. Это уже не десятки кГц, соответственно ФНЧ нужен другой.

DieHertz
arb:

Спасибо. Так и есть. 17 нога (Р0.5) приемник. Проверил на ЛБ30_S. Кондер стоит.

Ну алгоритм описан общий, P0.5 для примера, не у всех прошивок эта нога. Например у Airbot Bumpbee S 30A, J_H_15, сигнал подается на P0.4.
Aikon SEFM 30A имеет прошивку C_H_15/C_H_25 и у него вообще на P0.0 подан сигнал.

arb:

2000 шагов это 0,05% от полного диапазона стика. С такой точностью стик ручками не двинуть.

16 бит на стик? Конечно не двинуть, но тут нюанс в том, что тягой не только стик рулит, а еще и ПИД-регулятор, для него такая разрешающая способность не лишняя.

flexile
arb:

Спасибо. Так и есть. 17 нога (Р0.5) приемник. Проверил на ЛБ30_S. Кондер стоит.

На LB30A-S я удалил кондер из RC-фильтра, дома висит нормально на DSHOT600. На улице пока не было возможности проверить, на выходных попробую подлетнуть.

arb
DieHertz:

Ну алгоритм описан общий, P0.5 для примера, не у всех прошивок эта нога. Например у Airbot Bumpbee S 30A, J_H_15, сигнал подается на P0.4.
Aikon SEFM 30A имеет прошивку C_H_15/C_H_25 и у него вообще на P0.0 подан сигнал.

Спасибо, разобрался. Кстати удобнее и привычнее искать строчку с “RTX pin” - объявление ножки входа.

DieHertz:

а еще и ПИД-регулятор, для него такая разрешающая способность не лишняя.

Это понятно, только на выходе регулятор такую точность все равно не обеспечивает.
Как раз на стенде можно глянуть насколько болтает тягу если не менять газ.