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

smalltim
baychi:

Тимофей, скажи пожалуйста, когда ТМ общается с АП по SPI, кто из них CLK формирует? Если АП, то наша версия о перепрограммировании АП ответом ТМ не проходит, ИМХО…

АП мастер, он формирует CLK и в общении с ТМ, и в общении с памятью.

baychi
smalltim:

АП мастер, он формирует CLK

Тогда мы не там копаем. При RESET-е проца CLK SPI не будет формироваться и команды программирования пройти не смогут в принципе (там надо миниммум 3 байта послать)!
Или могут? CLK подвешен куданить, или в воздухе болтается?

Какие еще будут версии?
По параллельному интерфейсу не может что-нить сформироваться?
Бросок по питанию (хотя я смотрел это и не увидел на осцилле)?
Нестабильность кварца при вкл/откл питания: у тебя там кварц или генератор?

Вахтанг

Александр. SPI заведен на флешку и на ТМ, больше никуда.
Стоит кварц KX-9.

baychi
Вахтанг:

SPI заведен на флешку и на ТМ, больше никуда.

Он подвешен резисторами к +5 или GND?
Хотя бы CLK? Или висит в воздухе?

Ильвир
baychi:

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

У меня прошивка вообще не слетает. Не знаю почему, но факт. Как уже раньше говорили, что в тему пишут у кого проблемы с чем-то, а остальные молчат. Вот и решил написать. В электронике не силен, но хотел бы спросить, не влияет ли на это установленный у меня на входных каналах на питании кондер на 3300 Мкф?

P.S. Прошивка не слетела даже после купания в Волге в НН на фестивале.

baychi
Ильвир:

У меня прошивка вообще не слетает.

ОК. Давайте исходить из принципа “плохое не может произойти с хорошим человеком”. 😃
Конечно, никаких прошивок ни у кого кроме тех, у кого кривые руки, не слетает, и слетать не может. И вся паника по этому поводу, лишь нервы, которые надо лечить. Посему и относиться к нам, паникерам, надо, как к назойливам мухам, - лучше всего не замечать. Не отвечать. Не париться. Пройдет время и все пройдет, все забудется…
😃

Udjin

Если принимаются предложения еще, то прошу внести в таск-лист следующее:
Отображение на экране ОСД произвольного параметра, который описывается формулой, которую задает оператор.
Например:
Расход м/ач / на метр высоты.
Или
Расход м/ач на метр расстояния.
Или
Пройденное расстояние / метр высоты.

Ильвир
baychi:

Посему и относиться к нам, паникерам, надо, как к назойливам мухам,
😃

Ну Вы, Александр, на назойливую муху точно не похожи. Наоборот, желаю Вам терпения, при ответе на наши глупые вопросы!!!
Про кондер на входе так и не сказали 😃 Может это поможет, попробуте.

baychi
Ильвир:

Про кондер на входе так и не сказали Может это поможет, попробуте.

Кондер просто на входе - ничего не меняет. А вот кондер после входного диода АП, дал мне повышение живучести прошивки в несколько раз.
Но не на 100%. 😦

Pavel_K

Кстати о кондерах, где-то в даташитах на какую-то атмегу мне попадалась рекомендация ставить конденсатор на reset как можно меньшего номинала, т.к. слишком большой конденсатор может приводить к подобным проблемам с порчей eeprom. На reset АП большой конденсатор стоит (если стоит вообще)?

smalltim
baychi:

Какие еще будут версии?

BODы или аппаратный формирователь сброса надо ставить, больше вариантов нет.

baychi:

И вся паника по этому поводу, лишь нервы, которые надо лечить. Посему и относиться к нам, паникерам, надо, как к назойливам мухам, - лучше всего не замечать. Не отвечать. Не париться. Пройдет время и все пройдет, все забудется…

Бебебе 😃 Работаю я, просто на данный момент не отсвечиваю в форуме так часто, как обычно.
Александр, факты следующие:

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

Всё говорит о том, что проц АП начинает лажать с выполнением команд прошивки и гонит пургу в тот момент, когда выключается питание, и напряжения со стабилизатора еще достаточно, чтоб он жил (2.5…4.5В), но недостаточно, чтоб он жил устойчиво (>=4.5В на 16МГц).

На промежуточном варианте нового АП (АП + ТМ, еще на Атмегах), стоит аппаратный формирователь сброса. Очень хочу, чтобы ты попробовал его, готов отдать тебе в руки.
А про “еще на Атмегах” я не оговорился. На днях приходит с завода опытная партия нового железа. Если всё ок, то к следующему сезону, надеюсь, уже будем летать на АРМах. А слеты прошивки забудем, да, как страшный сон.

IgorTim
smalltim:

Если всё ок, то к следующему сезону, надеюсь, уже будем летать на АРМах

Замечательная новость.

Вахтанг
baychi:

Он подвешен резисторами к +5 или GND?
Хотя бы CLK? Или висит в воздухе?

Нет, не подвешен.
вот его схема включения:
XS1 разъем телеметрии.

Сброс устроен так:

baychi
smalltim:

BODы

BODы вроде можно менять программно. По крайней мере читать их можно и писать тоже. Даже если и не запомнятся во постоянной памяти, порог отключения должен измениться. Попробую вечерком проверить.

smalltim:

Всё говорит о том, что проц АП начинает лажать с выполнением команд прошивки и гонит пургу в тот момент, когда выключается питание, и напряжения со стабилизатора еще достаточно, чтоб он жил (2.5…4.5В), но недостаточно, чтоб он жил устойчиво (>=4.5В на 16МГц).

Проверю это, а так-же версию с помехами на неподвешенном CLК SPI после отключения.

Вахтанг:

Сброс устроен так:

Тоже версия. Могу только сказать, что от ручного нажатия на RESET прошивка никогда не слетает.
Также мне не удалось ее сбить при отключении питания с нажатым RESET-ом, но здесь очень много попыток не делал.

smalltim:

к следующему сезону, надеюсь, уже будем летать на АРМах. А слеты прошивки забудем, да, как страшный сон.

Это конешно хорошо, но и на том что есть хотелось бы летать без сюрпризов. 😃

baychi
baychi:

Попробую вечерком проверить.

Глюк победил меня. Похоже ему удалось убить начальный загрузчик. Как USB устройство плата распознается, но перешиваться больше не может. 😦

Тимофей, если подключить аппаратный програматор через SPI, есть шинс перешить мегу? Или без bootloadera тока замена меги пройдет?

serj

Попробую порассуждать насчет слета прошивок. Что вообще “слет”? не сходится контрольная сумма прошивки и программа не включается? если не ставить бит защиты и слить дамп флеша- что именно испорчено? выполняются команды стирания страницы или отдельных ячеек? Тимофей написал что отключение записи логов влияет положительно… Логи пишутся во внутренний флеш?
По напряжению питания- насколько я помню авр-ы 2-х летней давности- если проц- на 16 Мгц- он отлично работает до 3-х вольт.
А вот ниже начинаются косяки- связанные с некорректным декодированием кода команд. Но это в основном приводило к порче eeprom. Не исключено, что могут неверно декодироваться команды и вызывать инструкции типа spm или что-то вроде. Выскажу предположение о порче отдельных ячеек, ибо на стирание страницы скорее всего не хватит времени… Основная причина - длительное время фронта падения напряжения питания. Надо, чтобы оно падало быстро, причем между 3 и 1.5 вольтами. И большой конденсатор на сбросе также может способствовать, ибо если мне не изменяет склероз, порог аппатного сброса около 2.2 вольт, и напряжение на ноге сброса падает явно медленнее чем напряжение питания проца.

baychi
serj:

Что вообще “слет”? не сходится контрольная сумма прошивки и программа не включается?

Да, либо полная неработоспособность, либо диагностика по несовпадению КС.

serj:

Логи пишутся во внутренний флеш?

Нет, во внешний.

serj:

По напряжению питания- насколько я помню авр-ы 2-х летней давности- если проц- на 16 Мгц- он отлично работает до 3-х вольт.

Порог внутреннего RESETа деволтный, 2.4 В.

serj:

это в основном приводило к порче eeprom.

Eeprom мы не используем.

serj:

Выскажу предположение о порче отдельных ячеек, ибо на стирание страницы скорее всего не хватит времени…

Да, но что-бы это понять, нужна поодержка Тимофея (я не могу добавить команды чтения памяти, так как КП их не поодерживает) или внешний программатор.

serj:

Основная причина - длительное время фронта падения напряжения питания.

Возможно. Там десятки миллисекунд…

serj:

порог аппатного сброса около 2.2 вольт, и напряжение на ноге сброса падает явно медленнее чем напряжение питания проца.

Вроде внутренний RESET завязан тока с напряжением питания. Напряжение на ножки RESET значения не имеет.

Creator991

Уффф! даже не знаю счего и начать! Сегодня 7 октября на аэродроме в п.Логиново Свердловская область, проходил грандиозный фестиваль, Октобер Флай Фест 2012. Были показательные полеты настоящих самолетов, легкой авиации и вертолетов, а также много модельной техники летало. Меня с ФПВ моделями ждали люди и не мало, поделиться опытом, посмотреть живьем на апаратуру от Smalltim, Expert, Slon. (все это есть у меня). Решил начать полеты с SkyWalkera т.к. проверенный апарат (на борту стоит АП от Смалтима и Слон) поднял все гуд но через минут 5 почемуто стала глючить видио (подозрение на не согласованность видео приемника от вовы с видео передатчиком от лавмейт). Решил не эксперементировать, люди стоят смотрят, посадил. Собрал второй носитель, Кулярис, подключил аппаратуру, начинаю проверять, а АП спутники не видит. Ведь только что летал на скае, 12шт видел, а на Кулярисе 0. Короче танцевал с бубном минут 20, ни чего не помогло. Люди стоят, смотрят, сочуствуют. Решил пойти проверенным путем, перепрошит АП. И, о чудо, после перепрошивки платы АП спутники волшебным способом появились! Не знаю на сколько АП от смалтима упал в глазах у коллег на поле, но думаю они задумаются перед покупкой сиго чуда. Я уже устал бодаться с АП. Деньги потрачены и кроме проблем (только на этой плате, вторая работает нормально, тьфу 3 раза) я ни чего не получил и начались эти слеты практически сразу после покупки АП, я в этой теме писал, как у меня скай рухнул и в последствии оказалось, что это слет. Это единственный случай слета прошивки в небе

Syberian

serj, вы близки к точному описанию трабла, но я дополню. Сам сталкивался.
Если напряжение питания спускается ниже порога устойчивой работы внутренней шины проца, программный счетчик дает сбои. В результате проц рандомно скачет по всей программе и выполняет произвольные куски.
Если в памяти есть процедура записи еепром или флеш - рано или поздно она будет выполнена и все засрет.

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

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

И этта… На АРМе вас может поджидать точно такой же анус. Имейте в виду.

5 коп от канкурента. Спасипо за унимание.

baychi
Syberian:

Если в памяти есть процедура записи еепром или флеш - рано или поздно она будет выполнена и все засрет.

Явно ее там нет. Если только в библиотеках каких… Ну и в бутлоадере понятное дело.

Syberian:

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

Это абсолютно точно? Можно не проверять?
Биты BOD доступны из кода по чтению и записи, без программирования. Непонятно только, что будет если их там изменить, изменится ли порог до отключения питания или нет?
К сожалению, я не успел это проверить. 😦

Syberian

Это не проверено, а выстрадано. Что значит не успел? Бут заср…? Чип эразе, выставить фузы, перешить бут, залить софт штатно через кп, или как там у вас.
Атмегу нельзя сделать программируемой одноразово, и при этом оставить возможность обновления поршивки, так что излечимо все.