atmega 328 странно дохнет

Обсуждаем контроллеры компании Atmel.
Ответить
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

добрый день!

суть проблемы
коротко:
- прошивка портится/стирается (непонятным способом)

подробно:
- есть рабочий avr-проект, реализован на arduino-nano, работает уже пару лет (до этого arduino-nano работала еще пару лет в другом проект и какие либо проблемы не наблюдались.

- примерно полгода назад на рабочей "мандарине" сдох внутренний стабилизатор AMS1117, не стал ничего придумывать, выдернул стабилизатор с платы, "мандарину" отправил работать в стенд, а сюда установил из "новой партии с али"... и ...

после замены "манадрины" за последние пол года два раза происходил "полный капец" (subj)

первый раз - прошивка подохла сразу, без всяких придуриваний и судорог, прибор сразу перестал работать.

второй раз сначало "подохла" функция, которая обрабатывает внешнее прерывание, (ну вот просто не отрабатывалась и все тут :о), потом, пока "разбирался", в течении двух суток "бобик" вообще сдох

в обоих случаях помогала стандартная перепрошивка "мандарины", типа вдули мозги заново, она и очухалась :о)

до этого только слышал/читал, что бывают подобные "выкрутасы", думал что это "детские болезни авторов", но тут вон аж как, сначало "прерывание сдохло" а потом и "вообще все"...

ИТОГО:
- кто ни будь уже сталкивался с такими "выкрутасами ATMega 328P/TQFP32?
- как боролись? или забили и просто выбросили?
- какие будут мысли, высказывайтесь, не стесняйтесь

(топик создан, сколько, не для "поиска решения", а для сбора информации и самое - главное ваших мыслей/идей)

tag: avr, atmega 328, arduino nano

ссылка на продавана, возможно, сообществу пригодится

https://ru.aliexpress.com/item/Freeship ... 59521.html

Магазин:Thinary Electronic Official Store

https://www.aliexpress.com/store/109362 ... 5156O9Qttk

спасибо
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 143
Зарегистрирован: Вт июл 03, 2012 16:05:41

Сообщение Kit&Cat »

Скорее всего, заводской брак.
Сочувствую. Увы, в этом мире ничего идеального нет.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

> Сочувствую
да фигня это все, самое главное ПОНИМАНИЕ ситуации и ТОГО ЧТО ПРОИСХОДИТ :))
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

стереть чи полность паочередно записать 0 и 1 считат несколко раз в периодом в сутки двое-если все окей залеть дуиновый бутлодер наместо иеше проверте качество паянки сипа и кондероф бокипрровочных ну и стаб конечно проверить
а брак самого мк кронечно возможен
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

с разрешения ув. musor-a - перевод, более приближенный к кошачьему

стереть чип полность, поочередно записать 0 и 1, считать несколько раз с периодом в сутки двое.
если все окей, то прошить arduino-загрузчик.
и ещё, проверьте качество пайки чипа и блокировочных конденсаторов, ну и стабилизатор, конечно, проверить.
а брак самого контроллера, конечно, возможен


по поводу "тестовой" прошивки 0/1 - применительно только для явно битых контролеров, а тут вон - "полураспад" в течении полугода, причем, при перепрошивки - прибор опять работает на все 100%, значит баг явно плавающий (можно, конечно, погрузиться в структуры флеш-памяти, как держиться заряд, сохраняется независимо от питания, почему может происходить "потеря" итд... но, по моему это уже будет слишком... а може и нет, выслушать умные мысли ни когда не против :)) )

спасибо
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Сообщение AndTer »

Китайцы не брезгуют торговать леваком и отбраковкой.
Просто купить другой, а этот выкинуть.
Глупый не задает вопросы. Глупый и так все знает.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

ну эт ясень кот, можно еще добавить "проверенных продаванов"? есть такие? будет не плохо - вставляем ссылки, грант мерсис!
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Сообщение AndTer »

Я у этого давно заказываю, общительный и пока что всё работает.
https://wavgat.ru.aliexpress.com/store/1962508
Этот тож не подводил ещё:
https://ru.aliexpress.com/store/1504763
И ещё один, но тут непонятно. Мега с прошивкой не работала, открыл спор, прод долго бесился что всё новый и оригинальный, деньги вернули...
Но потом я понял что накосячил сам... Так что может и правда торгует оригиналом:
https://ru.aliexpress.com/store/808897
Глупый не задает вопросы. Глупый и так все знает.
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

спасибки за торганов
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

///////////////////////////////////////////////////////////////////////////////

выкусы из инета по данной и сопутствующей теме, надеюсь обществу пригодиться

///////////////////////////////////////////////////////////////////////////////

портится флеш

флеш при пониженных напряжениях питания плохо прошивается, баг выражается в деградации ячеек со временем.

Включить в фузах встроенный супервизор

Супервизор стоит DS1833-5% + 2SС945 (инвертор), а флэш портится если во время операций с ней проседает напряжение питания

///////////////////////////////////////////////////////////////////////////////

Контроллер виснет при включении

http://kazus.ru/forums/showthread.php?t=102352

Иногда при подключении аккумулятора к устройству (на atmega - 8 ) оно зависает в самом начале и приходится "передёргивать" ещё раз батарею.
+
Семейный глюк ATMega.
При медленно нарастающем питании (может и еще из-за чего-то) может зависнуть намертво. Ресет не спасает. Так что и собака не спасет.
Только передергивание питания.
+
Помнится, отчетливо проявлялся (практически с вероятностью 100 %) при отрубании питания и быстром повторном врубании, когда на AVCC было подано напряжение через резистор в несколько десятков Ом и кондер-электролит.
Спасет внешняя собака, которая будет перезапускать питание. Или гарантированная скорость нарастания напряжение при подаче питания.
+
P.S. при таком подвисании мега ведет сябя, как будто находится в режиме ISP программирования. На команды ISP откликается, но не шьется.
Интересно, что в ATMega128 при таком подвисании нога PEN находится в активном низком состоянии. Подтянуть ее к VCC не получается - резисторы не помогают, а напрямую течет бешеный ток. Видимо какие-то cmos структуры защелкиваюся.
Вот как-то так (может еще чего упустил, лет 5 прошло с тех пор, как я этот вопрос изучал)

Поставьте внешний супервизор питания, который будет подавать питание на контроллер только после достижения нормального уровня и все решится. Два корпуса SOT-23 места много не займут.

Я сделал так - питание подается и снимается с периодом 0.5 - 1 сек, пока с ноги проца не пойдут импульсы (что свидетельствует о том, что процессор запустился).
Но требует одну ногу процессора и обвязку.

Видимо так и придётся, хотелось обойтись лёгкой кровью, силами самого контроллера.
У меня после 5-ти вольтового линейного преобразователя стоит керамика 0.1 мкф (она не в счёт) и тантал 470 мкф, стабилизатор на 250 мА, может многовата ёмкость, она медленно заряжается и оттуда проблема ?
-->
99.5% Если кроме меги ничего - уменьшите ёмкость до 4.7..22 мкФ и будет счастье. В любом случае - не более 33..47 мкФ. Стабилизатор должен больше отрабатывать за счёт обратной связи. А такие ёмкости - привет из 80-х, когда параметрические стабилизаторы с эмиттерным повторителем делали.
-->
Типичная ошибка начинающего радиолюбителя. До стабилизатора 47.0, после него 2000.0 При выключении вдобавок еще и обратный ток прикладывается

+

может быть стоит включить БОД на 4 вольта
->
а он не включен?
-->
я его никогда не включал вообще ....
Убийца! Себя! Головой! Апстену!
А потом начинается битва с зависаниями. После того, как сделано ВСЕ для завешивания.

+

Значит подвисает при запуске 99% от большой ёмкости конденсатора.
-->
Точнее - от недостаточной скорости нарастания подачи питания.

+

Проблема была решена фьюзами. На самое продолжительное Start-up time.

На 64 меге тоже были глюки. Именно в момент подачи питания. Детально не разбирался, по старой памяти фьюзами выставил максимальное время старта, а также задействовал BOD. Глюки если и остались, то стали крайне редкими

+

SKOPT включен?
-->
Должен быть запрограммирован ("0") для максимального усиления генератора. см. стр27 ДШ.
Если BOD отключен, SUT1...0 должны содержать 0b11 , если включен, то 0b01.
BODLEVEL лучше сбросить - запрограммировать.
Таким образом младший FUSE должен содержать значение 0b00011111 для включенного BOD и 0b11111111 для выключенного.
Старший в обоих случаях 0bххх0хххх.
Хотя у меня на 12МГц на USB (питание 5в) неплохо работает с BOD=2,5в без CKOPT.

+

Курите доки. Например, для ATmega32, примечания к "Table 5. Start-up Times for the Crystal Oscillator Clock Selection"). Там написано мелким шрифтом, что некоторые варианты настроек не обеспечивают стабильную частоту генератора во время запуска ИМС.
Время выхода кварцевого генератора на рабочий режим (примерно) прямо пропорционально добротности резонатора и обратно - частоте.

///////////////////////////////////////////////////////////////////////////////

DiHALT / AVR. Учебный Курс. Конфигурация FUSE бит

http://easyelectronics.ru/avr-uchebnyj- ... e-bit.html

BODLEVEL и BODEN — это режим контроля за напряжением. Дело в том, что при определенном пороге напряжения, ниже критического уровня, контроллер может начать сильно глючить. Самопроизвольно может запортачить, например, EEPROM или еще что откосить. Ну, а ты как думал, не покорми тебя с пару недель — тоже глючить начнешь :)

Так вот, для решения этой проблемы есть у AVR встроенный супервизор питания. Он следит, чтобы напруга была не ниже адекватного уровня. И если напруги не хватает, то просто прижимает RESET и не дает контроллеру стартовать. Вот эти два фуза и рулят этой фичей. BODEN включает, а BODLEVEL позволяет выбрать критический уровень, один из двух. Какие? Не буду раскрывать, посмотри в даташите (раздел System Control and Reset).

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

Сообщение BOB51 »

ГЫММ...
Пи работе с "мелколапыми" да под ассемблером никогда с подобным не встречался...
Даже проверка искрой от электрозажигалки газовой в шины питания программу только перезапускает, но не уничтожает/сбивает.
:roll:
Относительно мег да ардуинки - при начальном этапе никаких проблем не отмечено.
Правда ограничиваюсь собственными прожками написанными в рамках оговоренного референсом IDE
(https://www.arduino.cc/reference/en/) и не использую уже задействованные в ардуино-нано выводы для иного применения.
Добавочно - контроль безопасности обвязки (всего изделия) на время активного состояния бутлоадера.
Т.е. блокировка любых разночтений, которые могут вызвать активацию самопрограммирования/стандартной процедуры перепрошивки на 2 секунды после подачи питания как на стандартный Rx/Tx так и на spi линии.
:write: :solder:
По "особенностям" - у ардуино-нано уже как минимум два варианта бутоладера - при обновлении оболочки (1.8.5) появилась еще одна строчка
"atmega328p old bootloader" - собсвенно мои стары платки на ней и работают.
:beer:
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

Т.е. блокировка любых разночтений, которые могут вызвать активацию самопрограммирования/стандартной процедуры перепрошивки на 2 секунды после подачи питания как на стандартный Rx/Tx так и на spi линии.
отлична мысль, надо в узелки большими буквами записать, постоянно вылетает из головы...
но в данном случае маловероятно, если прошивка начинается то "нулевого/стартового адреса прошивки", ан-нет, у нас прибор во втором случае стартовал нормально, подохла только одна функция
(но мысль правильная, муррр)
два варианта бутоладера
да у меня все по старинку, бутлодеры тоже старые, бед с ними инкогда не знал (а для прошивки не использую arduino-ide)

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

Сообщение BOB51 »

Я насчет обновления плат (менеджером плат) у моей 1.8.5
эта "нюансина" выскочила, когда обновил версию для
"Arduino AVR boards by arduino" до 1.6.21
Да и в настройках компилятора
в графке "сообщения компилятора" обычно устанавливаю пташку на ВСЕ, дабы мелких проблем избегать.
Правда те "варминги" можно только прокруткой с простым просмотром в нижней полоске IDE наблюдать.
Зато хоть какая подсказка про возможные неявные ошибки при компиляции.
При прошивке у меня работа только через штатный загрузчик IDE...
Самоделки программаторы - то удел аварийного варианта (снос бутлоадера) или собственных базовых конструкций - но то уже не адуринки.
8)
Кстати... при активации самопрограммирования никому не ведомо что и куда закинет - у больших АВРок запись не обязательно с нулевого адреса идет - зависит от того, что в управляющих регистрах "намусорилось".
:dont_know:
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

у больших АВРок запись не обязательно с нулевого адреса идет - зависит от того, что в управляющих регистрах "намусорилось".
первый раз слышу что "как-то блочно/непоследовательно" идет заливка с помощью загрузчика, сам загрузчик-то, по идее, получает "обычный поток"... подробнее в трех словах, можно пруфы, линки или выкусы, все пригодится, можно в личку скинуть... :о)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Друг Кота
Аватара пользователя
Сообщения: 15607
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Я только могу предполагать по максимально возможным вариантам.
Любой бутлоадер для АВРки строится на основе команд LPM и соответственно с их особенностями.
Другое дело активация аппаратного режима "по производителю"/даташиту - там защита гораздо выше, хотя также не исключено "стечение обстоятельств".
С АВРкиными вариантами теми LPM пока не пользовался.
Единственно где вариант бутлоадера сделан был (проект с открытым исходником и схемотехникой) - https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
но там несколько другой МК и загрузка идет непосредственно во внешнюю память программ/данных, выполненную на основе ОЗУ 64к*8бит.
Хотя особо разница только в самом процессе - у моей версии запись в ОЗУ без дополнительных наворотов, обусловленных аппаратными особенностями АВРок. Собственно у АВР дополнительно будут добавлены и служебные регистры и некоторые специфичные ограничения областей памяти.
8)

Да и вот ешшо весьма интересные даташиты в СУНДУКЕ КОТА
https://sunduk.radiokot.ru/loadfile/?load_id=1533993836
https://sunduk.radiokot.ru/loadfile/?load_id=1533993213
Возможно чего-то такого попалось...
Похоже и организация памяти у них несколько иная - линейный массив адресов, начиная с регистрового файла с продолжением отражающим флеш ПЗУ в области адресов ОЗУ с 0х4000
(доступ к ПЗУ как к памяти данных командами LD, LDD, LDS) вчитываться надо или в инглиш версии или в иероглифы... Да сам сайтик производителя поглянуть - ШО ЗА ДИКОВИНКИ???
:roll:
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

даташиты посмотрел одним глазком, там LGT_xxx контроллеры, я так понимаю, что LGT8FxxxP - аналоги ATmega 88/168/328...

все 260 страниц пока не "осилил", ну на будущее пригодится почитать, хотя, обычно родного даташита вполне хватает.

ладушки, мне вот все равно пока не понятно (ну, блин, мур, не понятно и все тут :)) )
я думал (могу же я ошибаться?!) что:
- загрузчик получает прошивку последовательно с нулевого адреса и до конца, и соотв. далее распологает "этот поток" последовательно с "определенного" адреса (переходы, адреса, итд - все, естественно, высчитывается не бутлодером, а во время сборки, у загрузчика одна задача - залить в "мозг" то, что ему в "уши" заливают)

если предположить, что проиходят косяки с "попыткой записи" и во время этих попыток "портиться прошивка", то портиться она начиная с "нулевого адреса прошивки" (не памяти, а именно прошивки), т.е. после "порчи" контроллер просто не стартует (ок, имеем один такой случай)

но у "нас" имеется другой случай, когда "испорчено" было не начало, а "где-то далее" (в обработке прерывания, может вектор обнулился или что еще сопутствующее, что привело к неработоспособности "функции прерывания")

вот этот момент не дает мне покоя, никая Валери/Янка не помагает сразумить...

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

Сообщение BOB51 »

Бутлоадер кушает какой-то массив данных согласно протокола принятого как в самом бутлоадере, так и в той прожке в ПК, которая занимается пересылкой собственно intel.hex файла прошивки.
Там может быть любой собственный протокол...
:roll:
Вымогатель припоя
Аватара пользователя
Сообщения: 621
Зарегистрирован: Ср дек 08, 2010 19:03:17

Сообщение sunjob »

ну дык, кто бы спорил... :))

из того, что я оч.давно где-то читал (жаль не законспектил с линками) - ну дак вот, в "манадарине" последовательность загрузки бутлодера:
- заливается прошивка
- проверка контрольной суммы
- прошивка фьюзов и "пр.регистров"
- проверка контрольной суммы

как то так (поправьте, если что не так)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Опытный кот
Аватара пользователя
Сообщения: 844
Зарегистрирован: Пт авг 31, 2018 21:53:52
Откуда: ул. Островидова, общага напротив

Сообщение webtime »

С Atmega328 (DIP28) и ардуино не работал.

Из скетча ардуино получил файлы:

Изображение

Использование ардуино в проекте не предвидится.
Скажите, пожалуйста, прошивать, как обычно с Atmega8, файл sketch_HOT_AIR__1_.ino.ino.hex, или надо прошивать и sketch_HOT_AIR__1_.ino.ino.with_bootloader.hex ?

Спасибо.
Варкалось. Хливкие шорьки
Пырялись по нове,
И хрюкотали зелюки,
Как мюмзики в мове.

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

Сообщение BOB51 »

Тот файл, что без бутлоадера.
Однако я б не рекомендовал использовать ардуино IDE для проектов не основанных на базе
платок ардуино.
Причина - неопитмальное использование ресурсов МК в случае, если проект использует только "чистый МК" в произвольном схемотехническом решении.
В случае "полной самоделки" используем или ассемблер или "чистый Си".
В случае, если используем ардуино IDE - лучше применения платки в сборе как автономного элемента при схемотехнике, соответствующей характеристикам внешней обвязки ДАННОГО ЭЛЕМЕНТА (а не применяемой в составе платки атмеги или еще какого МК в непосредственном виде).
:beer:

Иначе напоминает примерно следующее (весьма грубое приближение, но по смыслу...):
а сделаю ка я самоделку на основе пентиума 4-го...
Вот напишу программку, переведу ее в конкретный код и суну в ПЗУ.
Но самоделка далеко не персональный компьютер.
8)
Ответить

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