Smalltim OSD and autopilot (часть 2)

baychi
serj:

Вообще, хочется узнать, привела установка BOD на 4.5 вольта к изменению поведения или нет.

Не успел выяснить. Убил мегу именно в этом эксперименте. 😃 Затем еще одну. Как восстановлю, обязательно проверю…

baychi

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

serj:

установите BOD на 4.5 вольта и посмотрите фронт падения и нарастания питания. Он должен быть менее 1мс.

При текущей настройке 2.6 В, отрубание проца происходит через 4-5 мс, после провала вторичного питания (вложение MOSI_off_4). При 4.3 В за 1.5-1.7 мс (вложение SCK_OFF_43_2).

smalltim:

Нет, не верю. На пинах Меги стоят внутри диоды к VCC и к земле, давящие вход, если он выше VCC (+падение на диоде) и ниже 0. А в момент после выключения питания там нет таких токов, что могут что-то выжечь.

Тогда глянь третью картинку. Я подобное наблюдал неоднократно: ответ ТМ более чем на вотльт превышает допустимый уровень.

Syberian:

ЕДИНСТВЕННЫЙ выход из положения - это установка фузе бита BODEN и установка BODLEVEL на 4.5В. Программными средствами это сделать невозможно, только программатором.

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

PS: Так как на новом кристалле вызвать слет пршивки не удалось, остается 2 предположения (и я их уже не смогу проверить):

  1. Прошивка слетает, при низком напряжении 2.5-3.5 В, когда проц еще работает, но уже не адекватен. Борьба с этим - подключение внешнего программатора (что не так просто) и установка фьюзов BODLEVEL в 4.3 В.
  2. Превышение напряжения на линиях SPI от ТМ, когда питание АП уже провалено ниже порога BOD, что является следствием 2-х БП. Бороться с этим проще всего аппаратно: установив перемычку+5В к ТМ на АП, и отпаяв входной диод на плате ТМ.
    Как вараинт - предложить разработчику установить токоограничивающе резисторы (200-500 Ом) в линиях SPI.

ubd
  1. Прошивка слетает, при низком напряжении 2.5-3.5 В, когда проц еще работает, но уже не адекватен. Борьба с этим - подключение внешнего программатора (что не так просто) и установка фьюзов BODLEVEL в 4.3 В.

Давайте займёмся подключением внешнего программатора, да установим BODLIVEL.

baychi
ubd:

Давайте займёмся подключением внешнего программатора

Это не очень сложно.

  1. Брете любой SPI программатор для меги. Я использова USBasp программатор с сайта smalltim.
  2. Делаете переходник на 6-ть пинов: выводы SCK, MISO и MOSI есть на разъеме ТМ. +5В и GND есть на внешних выходах АП (напрмер GPS). И только сигнал Reset придеться подпаять - удобнее всего к кнопке RST.
  3. Берете программу, напрмер KHAZAMA и меняеете BODы.
Вахтанг

на разъеме ТМ присутствуют все выше перечисленные сигналы и напряжения. Ничего, никуда подпаивать не надо. Единственное надо будет перемкнуть диод VD2, т.к. он включен в обратной полярности (для программатора). Распиновка разъема видно в посте #6413, на предыдущей странице. Диод VD2 впаян в место R21. Т.е. на 4-й ноге +5В, но от ТМ в сторону АП. По этому диод надо перемкнуть. Это было сделано специально, чтоб ТМ не получал питание от АП. Хотя в некоторых АП может и R21 присутствовать, или отсутствовать, но посадочное место будет на плате. Смотря какая партия выпуска.

smalltim

Вахтанг, не путай людей 😃
Ресет, идущий на разъеме телеметрии - это ресет именно телеметрии. АП ресетит телеметрию тогда, когда ему нужно, например, прошить ее или слить логи из флеша.
Ресет самого АП берется с кнопки ресет, иначе, к сожалению, никак.

baychi
smalltim:

Вахтанг, не путай людей Ресет, идущий на разъеме телеметрии - это ресет именно телеметрии.

Вот-вот. Это сакральное знание, стоило мне одной меги, недели жизни и пары седых волос. 😃

SkyWorker
smalltim:

Понял. Если разрешить в КП ставить не до -15, а до -5 градусов, то поможет как промежуточный вариант?
А, может быть, даже 0, пусть снижается до целевой в горизонтальном планировании, если кому-то надо?

То, что в режиме “сразу занимать целевую высоту” допустимый угол по тангажу надо сделать доступным до 0 - это совершенно точно.
Но все же, по поводу режима “лететь по прямой”: Режим очень хорош тем, что отлетая на большие расстояния от базы, при автовозврате, ты будешь уверен, что самолет будет идти на высоте, сопоставимой с высотой, с которой ты летел. А это значит, что видео картинка будет хорошей, связь устойчивой и на пути обратно самолет не столкнется с высоким наземным препятствием.
Но вот если АВ включится на низкой высоте и большом отдалении- то опасность столкновения очень большая.
Все таки хотелось бы, что бы в этом режиме самолет в первую очередь выходил на базовую высоту, если в момент включения АВ она была ниже.
Ну или иметь такую опцию, которую при желании можно включить или выключить.
Например, опция в автономном режиме: ВСЕГДА ЗАНИМАТЬ ЦЕЛЕВУЮ ВЫСОТУ, ЕСЛИ ВЫСОТА ПРИ ВКЛЮЧЕНИИ АВ НИЖЕ ЦЕЛЕВОЙ.

Eugen_G

Страшный пушной зверь не спит:(. Сначала все выглядело как простой слет прошивки. Подключил комп, нажал кнопочки - КП отказывается шить АП. На АП горит один желтый диод, комп видит устройство АТ90USB128, КП пишет ошибка соединения, драйвер DFU не установлен, плата не подключена или неисправна. На экране - ожидание данных от ап. Нажимание кнопок не помогает, поставил флип и старую кп - тоже без толку. На другом компе пробовал- не помогает. Проц вроде живой - комп ведь видит его. Нужно искать внешний программатор?

baychi
Eugen_G:

Проц вроде живой - комп ведь видит его. Нужно искать внешний программатор?

Да. Похоже слетел загрузчик. Только внешний программатор поможет. Или замена Меги.
Если восстановите эту, попробуйте запитать обе платы от стабилизатора АП, как я описывал выше.

Eugen_G
baychi:

вторую убитую мегу удалось оживить с помощью внешнего тактового генератора и SPI программатора

Генератор тоже нужен? На какую частоту?

baychi
Eugen_G:

Генератор тоже нужен?

Вам пока не нужен. У меня слетели фьюзы и просто кварц уже не работал. А у Вас, коль как DFU устройство видно, значит кварц в порядке.
После подключения программатора, первым делом проверьте фьюзы, возможно загрузчик жив, просто ему заблокирован доступ.
Если придется перешивать загрузчик, он есть здесь: www.atmel.com/dyn/…/128X-usb-boot-1-0-1.zip

Eugen_G
baychi:

первым делом проверьте фьюзы

Как они должны быть установлены?

baychi
Eugen_G:

Как они должны быть установлены?

Я ставил дефолтные из даташита www.atmel.com/Images/doc7593.pdf (страница 359 и ниже). Только BODLEVEL в итоге поменял на 4.3 В.

Ясон

У меня вопрос к разработчикам по поводу панели управления. Планируется ли введение кэширования гугловских данных для назначения ППМ при полете по точкам? Потому как далеко не всегда в местах полетов есть сотовая связь, а если и есть то не всегда того оператора чью симку используешь. Было бы неплохо один раз скачать карты нужного места и больше к этой теме не возвращаться. Опять же скорость, когда сигнал сотовиков колеблется от его отсутствия до очень хренового.

leliksan
Ясон:

Планируется ли введение кэширования

Я уже задавал подобные вопросы. Ответ -нет. Лицензирование и всё такое…Можете поискать в этой ветке.
З.Ы. правда лазейка есть, никто не запрещает импортировать координаты из софта который кешировать умеет, но это отдельная песня (например мобильный яндекс, софт оффициальный и кеш у него есть).

AlexSneg
leliksan:

Ответ -нет. Лицензирование и всё такое

www.openstreetmap.org/copyright
Вполне легально. Есть официальная тулза для выгрузки куска карты и встраивания куда либо. Я пробовал, все работает.

SkyWorker

Сегодня убедился в опасности режима в автономном полете “лететь по прямой”.
На высоте 250 метров и отдалении 4км был включен АВ.
Самолет взял курс на базу с плавным снижением. Самолет летел по ветру на 1-2А.
Скорость 50-55км/ч. Дойдя до 100 метров снижение продолжилось вплоть до 15 метров, а до базы еще больше 1км.
Не стал дальше искушать судьбы и перешел на ручное.
Как я понял, произошло следующее:
Самолет приоритетно удерживал скорость, а так как летел по ветру, обороты сбавлял до 1-2А.
А набрать высоту, сами понимаете, на такой мощности невозможно.
Опасная недоработка алгоритма! Смаллтимовцы, примите меры. Видео будет чуть позже.

baychi
SkyWorker:

Самолет приоритетно удерживал скорость, а так как летел по ветру, обороты сбавлял до 1-2А.

По GPS? Баро разве нет? Если нет - режим удержания скорости ставить нельзя! Это не проблемма АП, а проблема пилота. 😃

SkyWorker
baychi:

По GPS? Баро разве нет? Если нет - режим удержания скорости ставить нельзя! Это не проблемма АП, а проблема пилота.

Баро конечно есть.

baychi
SkyWorker:

Баро конечно есть.

Тогда почему при полете по ветру упали обороты двигателя? Ведь бароскорость от ветра не зависит.
Какой режим контроля скорости стоял и на какую величину?