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

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 градусов.

LaPart
AlexSneg:

Бракованные кварцы вовсе не экзотика.

Хех, про какой брак речь? МПХ-овские детальки и плата (у меня, например) уже выдержали немерянные удары и вибрации, но продолжают трудиться. Хоть приемку ставь. Кварцы и так не особо любят удары и вибрации, даже мойку УЗ не всегда переживают.
На днях закупил деталек для ремонта блока питания - наборы мосфетов n- и p- в одном корпусе. Как начали пыхать, решил проверить каждую оставшуюся детальку до применения, пока еще типа живые…
Из восьми нашел 3(!!!) набора n- и n-, вместо того, что надо. Маркировка у всех одинаковая, а фактически разные микрухи.
И возможно еще повезло, глаз да глаз нужен теперь, раньше таких безобразий в таких количествах не было.
Пардон за офф, накипело:) А может кто и повнимательнее приглядится, удачи всем…

MrHot

Подскажите пожалуйста - как откомпилировать MegaPiratePlaneB1.zip ?

Чтобы избежать половины помидоров - скажу сразу, что другие проекты (например классический MegaPirate) у меня компилятся вообще без вопросов и там не возникает проблем.

Поставил самую последнюю среду Arduino.
Скачал и распаковал MegaPiratePlaneB1.zip и нажал на “проверить”.
как делал - всё на видео…

youtu.be/BX1YfdBDX5o

Вылезли несколько ошибок. Половину из них составляли ошибки банального изменения имён *.h файлов. Читая help-ы из зарубежных форумов я сократил количество ошибок до :

In file included from MegaPiratePlane.pde:31:
C:\Arduino\SRC\libraries\FastSerial/FastSerial.h:116: error: conflicting return type specified for 'virtual void FastSerial::write(uint8_t)'
C:\Arduino\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'

И тут я встал. Я всё понимаю, проект переполз на новый проц и всё такое… Может, я беру не тот проект для компиляции ?
Цель: поставить на самолёт плату Мегапирата с Кинга

Заранее спасибо.

DVE
MrHot:

Поставил самую последнюю среду Arduino.

Мне попадались проекты, которые компилялись только со старыми версиями, попробуйте разные начиная с 1.0 😃

Папку с библиотеками копировали тоже?

MrHot
DVE:

… попробуйте разные начиная с 1.0

Попробую

DVE:

Папку с библиотеками копировали тоже?

Да, это видно на видео.
Я так понимаю, что идёт речь о папке libraries которая включена в архив с исходниками MegaPiratePlaneB1.zip ?

Кроме MegaPiratePlaneB1 есть ещё и MegaPirateB8.zip и MegaPiratePlane2.24. Я тут тоже не пойму - что использовать ?..

Напишите хотябы диапазон страниц: сколько десятков страниц этой темы необходимо прочитать чтобы разрешить задачу… Я серьёзно… Я не могу понять - в какой момент соскочили с процов Mega пересели на другие процы.

dundel1
MrHot:

в какой момент соскочили с процов Mega

Вот в этот rcopen.com/forum/f90/topic243418/1741
А с начала темы и до этого момента всё про МегаПирата на Атмеге.

MrHot:

речь о папке libraries

Да, её нужно скопировать вместо родной аналогичной ардуиновской (которую предварительно надо стереть или переименовать, чтобы не мешала).
И ещё, чтобы избежать лишних ошибок при компиляции, используйте Ардуину 0.0.22.
MegaPiratePlaneB1 делался под ней.
В8, 2.24 более поздние версии с доработками. В этой теме до перехода на STM они все обсуждались.

DVE
MrHot:

Кроме MegaPiratePlaneB1 есть ещё и MegaPirateB8.zip и MegaPiratePlane2.24. Я тут тоже не пойму - что использовать ?.

Подробнее не знаю, я использовал квадрокоптерную прошивку, не самолетную. Насчет проца не понял, в APM 2.5 он и не менялся.

MrHot

2dundel1
Большое спасибо за номер версии Ардуины и за приём с библиотеками.
Попробую компильнуть по вашим советам.

проверил.
MegaPiratePlaneB1 компилится без ошибок на дуине 0.0.22 (детские болячки разработчиков дуины… блин…)
Стандартные библиотеки не трогал. Вернее пробовал их замещать теми что из проекта - но ничего доброго не получил.

dundel1

Замещение библиотек - требование разработчика (Олега Донцова). Поскольку они им изменены.
Об этом написано в release_notes.txt

INSTALLATION

*** TOTALLY erase your arduino IDE libraries folder prior copying the libraries
*** Select your plane type (wing or classic) and servo reverse i…

и неоднократно упоминалось в этой теме (до перехода на СТМ).

MrHot

Понял…
Ушел в лес читать ReadMe и тему…

P.S.
Хорошо что хоть что-то компилится вообще 😃