Перейти к содержимому


Фотография

Теория и практика перепрошивки регуляторов (Перепрошивка или реинкарнация Plush)


  • Закрытая тема Тема закрыта
В этой теме нет ответов

  #1 OFFLINE   Poster1

Poster1

    Вездесущ

  • Администраторы
  • 3 739 сообщений

Отправлено 25 декабря 2013 - 08:59

Перепрошивка или реинкарнация Plush

1.jpg
 
Существует три лагеря различных регуляторов. Первый, это регуляторы PWM, самые распространённые. Их ставят на самолеты, вертолеты, судо и автомодели. Второй лагерь поменьше, это регуляторы для шины I2C, такие стоят на небезызвестном немецком Mikrokopter и российском Русскоптере. Третий лагерь еще поменьше, регуляторы UltraPWM, стоят на редких моделях коптеров, можно упомянуть Xaircraft.
 
Немного теории
Если говорить о стабильности полета то впереди планеты всей, пока, немецкий проект с регуляторами на шине I2C. Тут уместно задать вопрос – почему Mikrocopter так удивительно устойчиво летает и фантастически стабильно висит? Секрет в том, что используются регуляторы I2C, они получают команду от полетного контроллера и немедленно её выполняют. Скорость отклика порядка 10-20 мкс. Стандартные регуляторы PWM не могут такой скоростью отклика похвастать. Почему? Потому что изначально проектировались под самолеты и вертолеты. Иногда в больших самолетах-копиях устанавливают коробку передач, для понижения оборотов и получения большего момента на винте. На вертолетах обязательно стоит понижающий ряд, так как тоже очень важно получить большой момент на главном роторе. Поскольку, при резкой смене оборотов, такая конструкция может попросту не выдержать и сломаться, нашли простой выход —  внесли в программу управления регуляторов фильтр низкой частоты. Такой фильтр не позволяет очень резко менять частоту вращения, тем самым предохраняя шестерни от поломок. Вот это обстоятельство и не дает на коптерах использующих регуляторы PWM получить стабильность висения сравнимую с «немцем». Скорость отклика таких регуляторов порядка 130 мкс. Если встать на место полетного контроллера то механика процесса такова. Гироскопы видят горизонт и все хорошо, висим ровно.
 
Приходит внешнее возмущение, не важно кто послужил причиной пилот или ветер, гироскопы отмечают отклонение и дают команду соответствующему регулятору повысить обороты мотора чтобы скомпенсировать возмущение и выровнять платформу. Команда поступила надо выполнять, и регулятор PWM используя вшитую в него на производстве программу сглаживает резкий рывок выдавая на мотор воздействие растянутое во времени. Получается что ответная реакция недостаточна, и гироскопы видят прежнее отклонение, снова выдается корректирующая команда, и, наконец, выравниваемся практически рывками. При этом, чтобы не было осцилляций приходится скорость реакции «мозгов» занижать, задавливая ПИДы, подстраиваясь под медленную работу регуляторов PWM. В случае регуляторов на шине I2C это происходит быстро – видим отклонение и воздействуем до тех пор, пока не выровняемся – и из-за отсутствующего сглаживающего фильтра скорость такой коррекции максимально эффективна.
 
Попутно необходимо отметить, что иногда проскакивают выражения неофитов о том что, мол, скорость то регуляторов все равно 400 Гц, какая разница? Тут важно не путать две вещи – скорость реакции регулятора и скорость работы пары «плата управления — регулятор». Даже имея скорость работы пары «полетный контроллер — регулятор» 400 Гц с не перепрошитыми регуляторами мы получим вышеописанную недостаточно устойчивую, замедленную стабилизацию платформы. Перепрошитый регулятор PWM может удерживать платформу в устойчивом состоянии и при частоте работы «мозг – регулятор» 60-100 Гц.
 
Неправда ли, разница между 15 мкс и 130 мкс впечатляет — 10 раз! Вот и задумался однажды небезызвестный Simon Kirby aka Simonk, а как же убрать такой фильтр? Подумал хорошенько подперев кулачком голову, и пришла к нему мысль – перешивать! Регуляторы PWM сплошь и рядом тогда были на процессоре Atmega, поменять прошивку в нем, вообще то, не составляет труда, имея на вооружении программатор и подключившись к определенным выводам процессора. Осталось написать прошивку, что он и сделал. Опыт перепрошивки изложен в теме на форуме RC Groups, и мы пойдем по протоптанной тропинке.
 
С теорией разобрались, наступил черед практики.
 
Сразу хочу отметить несколько моментов:
Все что вы делаете – делаете на свой страх и риск!
Если после перепрошивки у вас сгорит регулятор – претензии только к вам!
Перепрошиваем только «Flash», не изменяем и не перепрошиваем «Fuse»!

Процесс перепрошивки необратим! Вернуть к заводской прошивке невозможно!
 
Подопытным у нас выступит регулятор Плюш 30А, который категорически не захотел работать с контроллером Naza. Хотя прекрасно работал с CopterControl`ом.

1.jpg

Необходимо понять что схемотехника регуляторов разная, соответственно и программы для процессоров тоже нужны разные. Среди нас не все учились на электронщиков, и понять что у нас «граната другой системы» весьма непросто. Чтобы не вдаваться в поиски разницы между регуляторами с P-канальными и N-канальными ключами последователи Simonk`а составили удобную таблицу для определения какому регулятору какая прошивка подойдет. Любители картинок обрадуются – в таблице есть ссылки на интересные фотографии. В таблице аккумулируется опыт большого количества людей повторивших опыт Simonk`а и перепрошивших свои регуляторы. Теперь возьмем наш регулятор и попробуем определить какой системы «наша граната».

Первоначальное направление поиска нам задает название регулятора – Turnigy Plush 30A.

Смотрим по таблице и находим соответствующую строку с указанием процессора Atmega.Таблица.

 

Если вы не нашли в таблице своего регулятора, или нашли похожий, но снимки не совпадают – вам прямая дорога в ветку форума RC Groups в поисках опыта перепрошивки такого же регулятора. Много народу там топчется и отзывов с фотографиями оставляют много. Ссылка.

 

Аккуратно вскрываем термоусадку, осторожно поддеваем алюминиевые пластинки с термопроводящей подложкой и смотрим на плату.

3.jpg
 
Первое что нужно узнать – какой процессор установлен в наших регуляторах. Если это Atmega – можно идти дальше. Если это другой процессор, типа Silabs – придется тормозить и откладывать регулятор до лучших времен. Процесс написания прошивок под Silabs продвигается весьма сложно, и тестирование этих прошивок не завершено. А если залить в процессор неподходящую прошивку то регулятор как минимум не запустится, а как максимум сгорит. В общем, выпустить волшебный дым из регуляторов – пара пустяков.
Осматриваем плату и видим что, производитель Плюшей как будто специально для нас сделал контактные площадки — какая замечательная предусмотрительность. Это очень радует, так как, нам не придется позванивать дорожки и искать соответствующие ножки процессора.

В случае с Плюшами, нет строки с 30А, но есть 25А со снимком платы – осматриваем плату в руках и снимок. Если нет отличий – значит это наша плата, и мы будем её перепрошивать. Парни которые перешивали их раньше, даже сделали отметки какая площадка какому выводу соответствует.
 
4.jpg

Если отличия есть, то пробовать не стоит, если у вас нет соответствующих знаний, так как последствия непредсказуемы. Как пример возьмем случай описанный Fifon`ом на форуме RC Groups. Как то отыскалась схема на регулятор Maytech 40А, проскакивали разговоры и утверждалось что HK Blue Series 40A, Maytech 40А и Mystery 40A идентичны по схемному решению, соответственно и прошивка для них одна. Fifon проверил сие допущение и на его регуляторе Mystery 40A сгорел один из элементов платы. Если внимательно сравнить приведенные на фото регуляторы, видно, что элементы немного другие и расположены иначе. Такой вот, печальный опыт…
5.jpg

В случае с Плюшами чуть проще, так как у Плюшей мощностью 18А, 20A, 25А, 30А идентичная плата с идентичными элементами, различается только количество FET ключей установленных на оборотной стороне. В таблице еще немало интересной информации, которую, кстати, можем использовать до перепрошивки определясь надо нам это или нет. Например в столбце Pads мы видим, есть ли на плате регулятора контактные пластины. Из столбца Ext.Osc. мы можем узнать присутствует ли на борту у регуляторов внешний кварц. Из столбца FET мы узнаем тип ключей на нашем регуляторе, это послужит еще одним фактором определения типа регулятора (для тех кто в курсе как это сделать). В столбце Note мы можем увидеть особенности регулятора, в том числе и такую как Non programmable version, что означает не программируемую версию. Правее таблицы есть ссылки на ресурсы форума RC Groups с описанием идентификации пинов «Атмеги 8» и ссылка на форум OpenPilot где на английском языке описан процесс перепрошивки и фотографиями P-канальных и N-канальных ключей.

 

Итак, определились с типом регулятора, сравнили фотографии, определили тип ключей, поняли что «я могу это сделать» и находим в строке название файла который соответствуем нашему регулятору, в данном случае это «TGY.hex». Теперь скачиваем архив с прошивками из репозитория Simonk`а, там она всегда свежая и проверенная, и распаковываем в отдельную папку. И запоминаем что нам нужен файл с прошивкой —  TGY.hex.
 
Ссылка на репозиторий Simonk`а
 
Берем программатор AVR USB, например, из магазина HobbyKing. В комплекте с программатором идет шлейф с удобной «косичкой» и разъемом, который можно использовать для подпайки к пластинам на регуляторе. В документации на этот программатор нашлась ссылка на драйвер к программатору под Windows и удобную программу перепрошивки с графическим интерфейсом – eXtreme Burner AVR.
 
6.jpg

Ссылка на документацию в PDF.
Ссылка на драйвер
Ссылка на программу
Раньше, настоящие гуру использовали терминальную версию AVRDUDE в которой процесс перепрошивки инициировался параметрами вводимыми в командной строке. Что то типа «avrdude -C avrdude.conf -p m8 -cdiecimila -P ft0 -U flash:w:bs.hex». Весьма нетривиальная штука, особенно если учесть что одна ошибка, и процессор не сможет прошиться. А если учесть что существует много разных версий программаторов, в том числе и на Ардуино, работая с которым команды будут иметь другой вид, то… Нет, мы выбираем GUI.

 

 

Площадки очень мелкие и подпаивать сложно. Для пайки возьмите без смывочный флюс и избегайте кислотных флюсов. Будьте внимательны и ничего не перепутайте. От программатора идут 6 проводов. Кроме питания +5В, обозначенного на программаторе как VCC и «земли» GND, есть еще сигнальные линии необходимые для общения программатора и процессора – MISO, MOSI, RST и SCK. Обратите внимание на провода регулятора – они не должны быть замкнуты! Проще всего к «косичке» с разъемом отходящей от программатора припаять цветные провода, которые легче идентифицировать. Запишите себе соответствие цвета и соответствующей сигнальной линии, сверяясь с фото регулятора.
7.jpg
 
Подпаявшись к площадкам на плате регулятора и запустив программу eXtreme Burner можем приступить к самой перепрошивке, все подготовительные операции мы осуществили. Обязательно установите в программе тип чипа с которым работаете!
 
8.jpg
 
В нашем случае это ATmega8. Все буквы которые вы увидите на своем процессоре после 8-ки несущественны.
Для начала проверим качество и правильность пайки к площадкам. То есть, считаем прошивку из процессора. Нажимаем в меню Read кнопку Flash с зеленой стрелкой.
9.jpg
 
Если мы сделали все правильно, то мы увидим процесс считывания и получим файл с содержимым типа «нечто». Не обольщайтесь, это не «родная» прошивка и мы не сможем её использовать чтобы вернуть регулятор к исходному состоянию. Производитель шифрует прошивку и при попытке чтения сливается всякий мусор, но никак не прошивка годная для работы регулятора. Поверьте, это так – уже проверяли.
 
10.png
 
Нам не нужно перешивать так называемые «фьюзы», или стартовые биты. В нашем случае они должны остаться неизменными!
 
Перепрошиваем только «Flash»!
Не читаем, не изменяем и не перепрошиваем «Fuse Bits/Setting»!
EEPROM нам тоже не нужен!

 
Это момент на который обязательно стоит обратить внимание!!!!
 
Указываем где у нас лежит файл с прошивкой. Помните куда распаковали скачаный архив из репозитория Simonk?
11.jpg
 
И нажимаем в меню Write Flash с красной стрелочкой…
 
 
12.jpg
 
 
 
 
Видим процесс стирания заводской прошивки, собственно перепрошивки, после него идет процесс верификации залитых данных и процесс закончен. Так много готовиться, разбираться, паять и кликать мышкой и так быстро все произошло. Даа… Есть такое icon_wink.gif
13.jpg
 
Теперь необходимо убедиться что мы всё сделали верно и наш регулятор теперь с новой программой, и он работает. Не спешите отпаивать провода от площадок, просто отсоедините шлейф от программатора. Подключите двигатель к регулятору, косичку провода PWM можно подключить к приемнику на канал «газа» или к сервотестеру. Газ в «ноль». Мы не станем сразу подключать к регулятору силовой аккумулятор. Потому что если мы где то не досмотрели и ошиблись, мощные токи пережгут регулятор. Чтобы этого избежать, приготовьте маломощный, порядка 1А, блок питания от 6 до 12В, или кассету с четырьмя батарейками.
Наступает самый интересный момент – первый пуск перешитого регулятора. Как только мы подадим питание на силовые входы регулятора с блока питания подключеный двигатель пропищит что то типа «тюлюлю………пиии». Если это произошло – регулятор мы прошили правильно! Теперь можно чуть добавить «газ» и увидеть что двигатель вращается. Не добавляйте много, достаточно убедиться что двигатель работает.
 
 
http://www.youtube.c...h?v=7wf9oPVRWLQ
 

Если после подачи питания двигатель не пропищал – отключайте блок питания и ищите где ошиблись. Если при подборе прошивки мы сделали все верно и убедились в полной идентичности ранее прошитого регулятора и вашего собственного – то причина не стартовавшего регулятора кроется в следующем: может быть подпаявшись к площадкам вы случайно замкнули контакты или вполне вероятно что где то висит «сопля».Тщательно проверьте соответствие сигналов выходящих из программатора и площадок на регуляторе. Нельзя исключать и самый крайний вариант. Все сигнальные дорожки подпаяны верно, но, при подключении блок питания отключается. Значит вы неверно определили вариант прошивки. Снова сверьтесь с таблицей и все перепроверьте.
 
Надеюсь что у вас все сложилось хорошо и теперь можно отключить питание и отпаять провода программатора от площадок регулятора. Можно приниматься за следующий. Когда закончите со всеми, верните обратно пластинки с контактной подложкой. Упакуйте ваши перешитые регуляторы в термоусадку, можно в прозрачную. Кстати, можно и наклейку снять со старой термоусадки и подложить внутрь на пластину. Будет понятно какой мощности регулятор, а отсутствие родной пленки напомнит вам что они у вас перешиты. Не забудьте что ваши новые регуляторы требуют настройки газа. Откалибруйте их с помощью вашей аппаратуры. Можно устанавливать на раму и подключать к двигателям. И не забудьте подарить другу плату программирования ваших регуляторов – перепрошивка не подразумевает никаких изменяемых параметров. Уже все настроено «как надо под коптер».
Приятных и увлекательных полетов!
 
P.S. С полетным контроллером Naza перепрошитые Плюши отлично работают! 
 
 
 
Источник: http://flydrones.ru/...atsiya-plush-a/


  • 0




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных




Яндекс.Метрика

Сайт работает на хостинге FASTVPS