Самодельный конвертер сингала PWM в PPM для регуляторов БК двигателей

Babay

Ну вот, не успел испытать - оборвалась одна жила у движка когда все собирал. Надо перематывать. Перехватывайте инициативу. А я пока другой двигатель поставлю, который многострадальный hexTronik, надо под него крепеж новый выпилить по быстрому.

Испытал. Прошивка pwm_to_ppm-2.0.3-202.hex. Поведение регулятора не изменилось. Стартует примерно с пятого раза, если хорошо пошевелить газом. Если завелся, то циклически встает примерно каждые секунду-полторы. Держу верт в руках, так прямо чувствуется момент остановки движка. Вряд ли это регуль, потому что пробовал вчера два разных. Но в любом случае нужно, чтобы кто-то еще испытал для статистики.

Babay

С самосборной прошивкой вообще не завелся. Попробую поставить MPLABX.

RXL

А у меня как специально куда-то делся шнур от программатора…
Попробую в отладчике понять, в чем может быть проблема.
От предыдущей прошивки импульсы PPM немного отличаются: раньше они имели ширину в диапазоне 1.1…1.9 мс, сейчас - 1…2 мс. Может в этом дело?

Babay

Возможно, потому что останока происходит после полного газа, как будто сигнал пропадает, то есть захлестывает за 1.9. Может и не стартует с малого газа, потому что 1, а не 1.1 мс. На середине газа поведение вроде стабильное.
Так что можно попробовать снова прошивку на 6мс, но с диапазоном 1.1…1.9 - может заработает, может в этом дело было.

cylllka

Пришел ответ от NanoFreak, по поводу БК хвоста

Hi,

we use our Flea-ESC for MCPX Tail
it is the only one which is fast enough
we are making the ESC by our own - it was originally for the 4#3 brushless - we did a lot of brushless 4#3 conversions.
Now we do not produce the Flea-ESC any longer.

We are playing aroud to find another solution with reflashing a standard ESC.

Вот все что ответил

gershpion

То есть, на сколько я понял, они делали свой собственный регулятор, который понимает PWM?

RXL

Ошибки нашел. Править буду завтра или послезавтра. Основная ошибка была в расчете длительности импульса и паузы. В итоге, импульс мог достигать ширины 2.2 мс. Новые прошивки удаляю - слишком значительна ошибка. Потом выложу исправленные.

Babay

С нетерпением буду ждать. Пока выпилю адаптер, чтобы не перепаивать постоянно, а вставлять и ножки поджимать.

RXL

А я себе такой стенд сделал: к сашиному конвертеру (чип на плате) припаял шлейф и разъем. К плате вертолета тоже разъем. И еще один такой же разъем есть у программатора. Понятное дело, что это настольный стенд, зато переключиться с программатора на плату вертолета можно за пару секунд.
Кабель бы только найти… Куда я его дел…

Babay

Попробовал pwm_to_ppm-2.0.4-202.hex. Стартует иногда сразу, иногда с середины газа, причем нестабильно. Если потрясу хвостом, то стартует. В полете ведет себя аналогично прошлому разу. Короткий момент удержания хвоста, примерно секунда-полторы, потом короткий рывок градусов на 10 по часовой (увеличение газа), потом почти полный оборот против часовой. И так циклически. Сейчас еще параметры пошевелю, посмотрю что будет.

RXL

А какой у тебя вертолет? Хвост БК или коллекторный?

Babay

Увеличил в параметрах частоту ШИМ на 8 кГц, включил фильтры. Поведение такое же, но теперь хвост держит секунды две и проворачивает против часовой аж на два оборота.

У меня Solo Pro. Все эксперименты ставлю с БК хвостом, потому что это единственное что останавливает от полной переделки на БК.

RXL

Частота у Прохи 4 кГц. Параметр частоты, по сути, вообще не нужен - ставь всегда 4. Но частота ШИМ (не настройка - физический сигнал) должна быть кратная 4 кГц, иначе будут разнообразные спецэффекты.

Попробуй в ppm_loop.asm так:

ppm_loop
    PPM_IMPULSE 1 ; 2 ms
    PPM_DELAY ; 1 ms
    PPM_IMPULSE 2 ; 2 ms
    PPM_DELAY ; 1 ms
    goto ppm_loop

и так

ppm_loop
    PPM_IMPULSE 1 ; 2 ms
    PPM_DELAY ; 1 ms
    PPM_IMPULSE 2 ; 2 ms
    PPM_DELAY ; 1 ms
    PPM_DELAY ; 1 ms
    goto ppm_loop

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

Babay

Попробовал оба варианта - не помогло:(
К слову о старте только на середине газа. Если уменьшить чувствительность гироскопа, то регуль вообще не стартует. Если увеличить, то стартует, если подергать хвостом, но если перестать дергать хвост - останавливается. Ну то есть газ процентов 20, движок стоит, хвостом брык - вжик, стоп. Еще раз брык - вжик, стоп.

Результаты могут быть неверными! Развалился подшипник в движке, ротор задевал статор!

RXL

А в инструкции к регулю ничего не сказано про калибровку? HK, например, калибруется входом в режим программирования.

Однако…
А ведь тогда надежда, что прошивка рабочая, увеличивается! 😃

RXL

Одно уже хорошо - регуль сигнал не теряет.

Какие были настройки? Моя сборка или своя?

druksel

этта… могу показаться нахалом, но похоже есть вариант заставить стартовать по нормальному… была такая фигня у меня с хк регами при переделке коптера нав стандартные реги… дык вот. фича этих регов в том , что при включении они выжидают 3 сек и тот импульс что был в этих 3х секундах принимают за ноль газа… то бишь прогу надо подправить - типа что при начальном включении конвертер генерил 3-5 секунд ппм типа газ ноль - то бишь 1 мс и тока потом принимал шим с штатного рега и превращал его в ппм… как то так…

RXL

Плата Прошки стартует всегда с нулевым газом. Сперва идет соединение с пультом, потом на пульте ручку надо перевести в ноль и только тогда можно дать газ. Все это время конвертер выдает 1.1 мс. Т.ч. такая проблема тут исключена. Я полагаю тут проблема с детекцией, но не уверен. Мне бы самому на железе потестить. В симуляторе микроконтроллера все путем, но это рафинированные условия.

Пробую в симуляторе задать не точную частоту, а чуть меньшую или чуть большую - ±60 Гц. Тестирую на скважности 50%. Есть девиация на уровне ±4%, но не более.
Существенной девиации (12%) удалось добиться при уходе частоты ШИМ аж на 400 Гц - 3600 вместо 4000 Гц. Сомневаюсь, что у нас такие некачественные чипы. В даташите указана точность встроенного генератора на уровне 1-2%.

druksel

дык в том то идело… на коптере тож так было… и из за этого все таки стартовали реги уже почти на полгаза… а как тока сделали выдержку все сразу ок