Врожденный дефект AT90S2313 ?...

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 15592
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Почитайте, что в моих заметках написано - поймете почему нельзя использовать программные счетчики на основе ячеек ОЗУ
("....Попробуйте например восстановить состояние счетчиков в программе на момент сброса - не тут то было....")
Да и альтернатива там достаточно четко изложена.
Правда надо не под ЯВУ, а под чистокровным ассемблером уметь работать.
8)
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18676
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

MaxDaniel писал(а):Попробуйте например восстановить состояние счетчиков в программе на момент сброса - не тут то было.
а в чем проблема? я в своих проектах частенько использую управление режимом при помощи единственной кнопки на сбросе: первый раз нажал - один режим, второй раз нажал - другой и т.д.
при сбросе ОЗУ (кроме области SFR) не изменяется никак.
BOB51 писал(а):надо не под ЯВУ, а под чистокровным ассемблером уметь работать
надо всего лишь знать и применять возможности ЯВУ в полной мере
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Сообщения: 5066
Зарегистрирован: Вс фев 15, 2009 01:04:58
Откуда: Kaluga

Сообщение Wladimir_TS »

[uquote="BOB51",url="/forum/viewtopic.php?p=3865063#p3865063"]Почитайте, что в моих заметках написано - поймете почему нельзя использовать программные счетчики на основе ячеек ОЗУ
("....Попробуйте например восстановить состояние счетчиков в программе на момент сброса - не тут то было....")
Да и альтернатива там достаточно четко изложена.
Правда надо не под ЯВУ, а под чистокровным ассемблером уметь работать.
8)[/uquote]

Как раз в ячейках то они не портятся при сбросах по входу сброса. Поставил тини 2313 - целевая программа не заработала (думал совместимость 100%)- разбираться сложно (не я писал и жарко +33 С) попробовал другую программу - выставляет 0,1 или 2 биты случайным образом (правда в программе WDT не задействован) - значит прилетает все-ж по питанию.
Друг Кота
Аватара пользователя
Сообщения: 15592
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Случайная иголка по питанию блокируется либо фильтром либо комбинацией флагов BOD/POR(сработкой BOD).
Ловушка сбоя ПЗУ и/или алгоритма - WDT.
Иголки по информационным входам - соизмеримостью длительности иголки и времени захвата данных портом (системная тактовая) плюс мажоритарный фильтр.
По крайней мере мы знаем что была ошибка и проводим перезапуск устройства...
Однако часто есть желание перезапуска с точки, на которой находилась программа перед сбоем (а не с точки "холодного старта").
Вот тут уже всплывает вопрос о достоверности данных в ОЗУ и РСФ...
Ёжли при помехе прошел случайный мусор в ОЗУ - там отловить практически невозможно.
Тем более, что тот мусор сохраниться и после перезапуска.
Именно регистры ОЗУ более чувствительны ко всякоиглам, чем регистры аппаратных модулей МК.
Касательно ЯВУ - там при всем желании стек, создаваемый компилятором не отключить.
А при "самых тяжких" случаях защиты МК превращается всего-то в примитивный программный автомат, считывающий последовательность из ПЗУ с учетом изменяемых параметров от/на выводы МК и применяя простейшие операции с хранением значения в акумуляторе не более 1-2 команд по времени существования данных. Это примерно как в старых автоматах на рассыпухе с применением ПЗУ.
8)
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

делал свои первые часы для автомобиля на тини2313 с дин. индикацией... в ОЗУ лежал только массив для знакогенератора а всё остальное влезло в регистры
при пере/запуске я проверял только исправность этой информации и допуск на хранимые величины (единицы минут < 10, десятки минут < 6 и.т.д) и если всё ок - продолжал программу, если нет —> переинициализация
сейчас точно не помню, вроде время не сбрасывалось и при 10с отсутствии питания (часы при этом останавливались, но данные сохранялись)
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15592
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Регистр-аккумуляторы также часть ОЗУ у АВРок.
Речь идет не о стандартной ситуации, а о случае проверки работоспособности устройства методом искрового разряда в шину питания во время работы устройства.
Включаем девайс, подносим кончик зажигалки к печатным проводникам (шинку GND или +питания или то и другое попеременно... можно и по другим лапкам пройтись для полного удовольствия), запускаем искру в дорожку и...
Смотрим - нет ли сбоев в работе, корректен ли перезапуск?
:twisted:
САДИЗЬМА однако...
:wink:
Реклама
Ответить

Вернуться в «AVR»