Проект Мегапират на самик!

ssh1

Попробовал передернуть питание сразу после команды от наземки на рестарт.
Плюсы в ответ пошли в течении секунды - наземка все равно не видит бутлоадер.
Тут несколько гипотез:
1.Плюсы идут с большой паузой между ними(около 0.3-0.5 секунд).
2.Неправильная скорость порта, и там должны быть вовсе не плюсы.
Тут уже гадать можно долго, Олег как определяется бутлоадер?

BindEm

Чистый налёт на 4090 около 5-ти часов. Стоит с дня выпуска. Аномалий не замечено совсем никаких.

ssh1

Продолжаем исследования.
Оказывается при старте MPX кидает не плюсы в ком порт а пятибайтовые посылки:
0xCB,0x03,0x7D,0x00,0xB5
11 таких посылок, но проблема вся в том, что битовая скорость у них около 180450 бод.
Длина одного бита - 5.5417 микросекунд.
Походу гипотеза про уехавшую тактовую частоту подтверждается.

BindEm:

Чистый налёт на 4090 около 5-ти часов. Стоит с дня выпуска. Аномалий не замечено совсем никаких.

Получается криво залилась наверное.

ssh1

Вести с полей.
Получилось даже прошить еще раз.
Подменил скорость 57600 на 180450 на переходнике USB-UART
Наземка нашла бутлоадер, и залила прошивку.
После ребута - та же фигня, поведение абсолютно такое же, все тормозит как будто.
У кого нибудь есть предложения куда копать дальше?

alex-ber
ssh1:

Вести с полей.
Получилось даже прошить еще раз.
Подменил скорость 57600 на 180450 на переходнике USB-UART
Наземка нашла бутлоадер, и залила прошивку.
После ребута - та же фигня, поведение абсолютно такое же, все тормозит как будто.
У кого нибудь есть предложения куда копать дальше?

Смотреть скорость переходника после ребута…
Вполне может быть…

ssh1
alex-ber:

Смотреть скорость переходника после ребута…
Вполне может быть…

В смысле?
Еще раз.
Помимо всех глюков у бутлоадера уехала скорость с 57600 на 180450.
Вот мне и пришлось подстроится под эту скорость чтоб еще раз залить прошивку - прошивка залилась удачно, но ничего не изменилось.

alex-ber
ssh1:

В смысле?
Еще раз.
Помимо всех глюков у бутлоадера уехала скорость с 57600 на 180450.
Вот мне и пришлось подстроится под эту скорость чтоб еще раз залить прошивку - прошивка залилась удачно, но ничего не изменилось.

Вот после перепрошивки и ресета - проверь с какой скоростью твой переходник с наземкой общается…
У меня были (раньше) проблемы - переходник после отключения и повторного подключения переходил на скорость 9600 - тоже тормозил… (поставил принудительно скорость по умолчанию в Винде выше и тормоза ушли…).
Может и не это, но проверить ведь не трудно…
ПС переходник не родной… родной я на поле оставил…

ssh1

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

AlexSneg
ssh1:

Не могли слететь настройки тактовой частоты при перепрошивке?

Серег там нет никаких настроек. Скорее всего кварц не запускается. Если не запускается, и Олег использовал стандартную библиотеку настроек PLL, то скорее всего (при не найденом кварце) запускается от внутреннего генератора и все частоты по умолчанию низкие. Если есть осцил, то ткнись на кварц, посмотри есть ли генерация. Если нет осцилла, звякни мне, у меня есть приборы. Если чего, можем попробовать кварц сменить прям сразу. Хотя конечно именно повышение частоты на УАРТЕ, как бы противоречит теории запуска на низкой частоте.

ssh1

Олег, Игорь есть какие нибудь гипотезы? Планирую пока посмотреть кварц.

dundel1

Гипотез совсем немного. Гораздо больше вопросов.

  1. До перешивки на 4090 работало всё нормально, похожих странностей не было?
  2. Если перешиться обратно на ту версию, которая была, нормальное поведение восстанавливается, или остаётся этот “приобретённый” глюк?
  3. Во всех случаях проявления глюка плата запитывается откуда? Через основной разъём (Vbat), или через УСБ (регуль)?
    В зависимости от ответов на эти вопросы можно придумывать гипотезы и пути устранения.

Предварительно:
-если прошивка “обратно” помогает (глюк уходит) - ждать ответа Олега, я не подскажу.

  • –"-- не помогает :
    возможны варианты.
    Все алгоритмы расписывать долго и муторно, поэтому проще в зависимости от ответов более конкретные советы дать.
ssh1

Снял, долго и упорно мыл спиртом особенно место около кварца, теперь все нормально.
Видно совпало просто: отказ кварца с перепрошивкой.

Красный кстати должен мигать если все ок (который рядом с зеленым)?
Теперь очкую летать на всем этом, а если это неконтакт где-то, а не загрязнения на плате? Вдруг опять проявится но уже в полете…
Олег, есть предложение - реализовать переход на внутренний генератор в случае отказа внегшнего кварца, благо железо позволяет. Пусть он будет не точный, плавающий от температуры, но можно будет долететь до дома - а это важно. Плюс к этому оповестить на OSD типа OSC Failed

BindEm

Теперь и мой Скай контролируется пиратом 😉

P.S. ssh1, так до двойного резервирования всех компонентов системы скоро дойдем.

dundel1
ssh1:

Теперь очкую летать на всем этом, а если это неконтакт где-то, а не загрязнения на плате?

Вряд ли неконтакт.
Скорее, из-за паразитной ёмкости грязи ушла частота. Для самоуспокоения можно прогреть места пайки кварца и двух розоватых кондёрчиков рядом с ним.

ssh1
dundel1:

Скорее, из-за паразитной ёмкости грязи ушла частота.

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

dundel1
BindEm:

так до двойного резервирования всех компонентов системы скоро дойдем.

😃))))

ssh1
BindEm:

P.S. ssh1, так до двойного резервирования всех компонентов системы скоро дойдем.

А что в этом плохого если эти механизмы уже заложены производителем микроконтроллера. При том для этого не нужно никакого изменения железа. Мы все же летаем, и если это раз произошло на земле не вижу причин не ожидать такого в воздухе.
Вроде одни преимущества или есть и минусы?

Если подробнее, то я вот про что - easyelectronics.ru/arm-uchebnyj-kurs-taktovyj-gene…
----------------------------------------------
Стоит рассказать еще об одном блоке, который сам в генерации тактовых сигналов участия не принимает, но иногда может оказаться весьма полезным. На схеме он обозначен как CSS Из схемы видно, что на вход ему подается тактовая частота с HSE а выход из этого блока заведен на блок выбора источника системного тактового сигнала. Итак, что же это за блок какой-то защиты? Назначение этого блока — следить за тактовыми сигналами поступающими с HSE и если с ними случится какой-то косяк, например они пропадут (кварц там у нас отвалился или еще что произошло), то этот блок может вмешаться в ситуацию и тогда происходит следующее:
-Автоматически отключается HSE.
-Посылается событие на останов работы расширенных таймеров TIM1 и TIM8.
-Генерируется прерывание CSSI, которое внутри процессора заведено на немаскируемое прерывание NMI, т.е. пропустить его невозможно.
-Если в качестве источника системной частоты использовался HSE напрямую либо через PLL, то источник системной частоты автоматом переключается на HSI.
-Если PLL был активен и входом ему служил сигнал с HSE, то PLL отключается.

Таким образом, микроконтроллер сохранит свою работоспособность, пусть и на пониженной и менее стабильной частоте, и проинформирует выполняющуюся программу об этом. А теперь представьте, что бы было, если бы этот микроконтроллер стоял в какой-то критически важной системе и просто бы остановился при проблеме с кварцем.

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

AlexSneg
ssh1:

Теперь очкую летать на всем этом, а если это неконтакт где-то, а не загрязнения на плате?

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

ssh1

Игорь, а можешь подсказать тип и размер кварца которые ты ставил на свои платы?

dundel1

Размер 0532 (MJ). 8МГц. Тип сам не знаю,:) там, где беру, не указан.

Олег, к сожалению, пока не имеет доступа к инету, но продолжает плодотворно трудиться на благо МРХ.😃))
По мере возможности буду транслировать.

ssh1:

Олег, Игорь есть какие нибудь гипотезы? Планирую пока посмотреть кварц.

Олег:

После удара кварц приотошел, а когда промывал - притер обратно.
Надо его пропаять, должно наладиться.
Аппаратные косяки (отвалившийся кварц) я резервировать не могу.
Эмпирически есть вариант юзать встроенный РЦ-генератор, но у него

  1. непредсказуемая частота,
  2. она почти в два раза ниже, чем нужно, т.е. все сервы сразу же уйдут в ограничители,
  3. слетит основной цикл и все тайминги.
    Т.е. в полете все равно будет краш. Таким онанизмом я заниматься не буду. Мертвых припарками не лечат.

Ожидаются в ближайшее время обновления прошивки и наземки.
Олег:

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

ssh1

А какая сейчас тактовая частота используется на MPX.
PLL на внутреннем генераторе может дать 64МГц максимум как я понимаю, у нас больше сейчас?
P.S. Настраиваемые индикаторы на OSD это классно!

Походу насчет 64 с внутреннего я не прав, надо покурить даташит.

Покурив документацию, нашел - внутренний генератор =16 МГц, то есть вдвое быстрее нашего внешнего кварца.
Получается что мы можем запуститься на той же тактовой частоте (настроив PLL) и от внутреннего генератора, откуда понижение в 2 раза?
Соответственно все тайминги и сервы съедут не на много, из-за неточности самого генератора. Но можно будет продолжить полет!
Вроде ±4% от -10 градусов до +85 градусов.