мысли аналогичные ... да... похоже надо запасаться орехами, что бы грызть их долгими зимними вечерами ...
или уже все орехи понадкушены китаисами?
п.с. спасибо за мысли... но, если чего, высказываемся
...
///////////////////////////////////////////////////////////////////////////////
выкусы из инета по данной и сопутствующей теме, надеюсь обществу пригодиться///////////////////////////////////////////////////////////////////////////////
портится флеш флеш при пониженных напряжениях питания плохо прошивается, баг выражается в деградации ячеек со временем.
Включить в фузах встроенный супервизор
Супервизор стоит 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-kur...a-fuse-bit.htmlBODLEVEL и BODEN — это режим контроля за напряжением. Дело в том, что при определенном пороге напряжения, ниже критического уровня, контроллер может начать сильно глючить. Самопроизвольно может запортачить, например, EEPROM или еще что откосить. Ну, а ты как думал, не покорми тебя с пару недель — тоже глючить начнешь
Так вот, для решения этой проблемы есть у AVR встроенный супервизор питания. Он следит, чтобы напруга была не ниже адекватного уровня. И если напруги не хватает, то просто прижимает RESET и не дает контроллеру стартовать. Вот эти два фуза и рулят этой фичей. BODEN включает, а BODLEVEL позволяет выбрать критический уровень, один из двух. Какие? Не буду раскрывать, посмотри в даташите (раздел System Control and Reset).
///////////////////////////////////////////////////////////////////////////////
Сообщение отредактировал sunjob - Aug 31 2018, 04:17