Купил атмеги, пришли 8а, думал поменяю быстро на плате и делов всего. Уже 3 день пошел как ковыряюсь.
Есть две одинаковые платы, на одной atmega8l на другой atmega8A. Прошивки одинаковые и рабочие(таймер мигает светодиодом раз в 1с и опрос входов, и ацп). Еще есть светодиод в main, после инициализации всего он загорается и тухнет, далее программа переходит в while.
Atmega8a очень странно себя ведет, после прошивки она запускается и все работает как нужно пока подключен программатор. Если я отключаю программатор, отключаю питание, заново подаю питание, то контроллер зависает, светодиод в main загорится и тухнет, то есть входа, выхода, перефирия настраивается и все. И так без остановки. Такое ощущение как будто что-то перезагружает его, watchdog не используется. Если в это время я физически перезагружу, замкнув reset, то программа стартует как надо и работает нормально до следующего отключения питания.
Добавлено after 23 minutes 49 seconds: Фьюзы. Кварц 16МГц
На плате еще есть esp266. Я просто уже весь мозг себе сломал и начал выпаивать детали с платы. вдруг что дает помехи. Когда выпаял стабилизатор на 3.3В питающий wifi модуль то мк начал стартовать. Припаял внешний dc-dc на питание еспшки, все так-же не стартует. Далее перерезал rx и tx, чудо заработало. Припаял rx - работает, припаял tx - не работает. tx мне не нужен на плате, но почему не работает? До этого усе работало как надо.
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Диапазон питания для атмеги8А 5-2,7 вольт... Правда насчет кварца 16МГц и пониженном напряжении... мега328 такое вполне выдерживает - можно попробовать кормить от 3 вольт или ставить преобразователь уровня ежли не получится работать от 3 вольт... В данном случае явное зависание программы при начале работы - неверно считаны данные от низковольтной части схемы.
BOB51, Увы, не все меги старого поколения могут завестись на 16 МГц при пониженном питании. Именно старт HSE может не проходить. 328 - она уже более нового поколения, picopower, все дела.. Все мои ардуинки с 16 МГц кварцем даже при 3.0 вольтах заводились. А вот атмега128 на большой макетке на 3.3 вольта завелась только с 12 мгц кварцем, с 16 мгц не стартовала. А если питание подавать порядка 3.6-3.7 вольта - то стартовала и с 16 мгц кварцем и потом работала при понижении питания где то до 3.1 вольта. С 12 МГц кварцем - отрубалась ниже 3 вольт (уже не помню при скольки)
Может тут еще влияло, что это была макетка - такой "паук" из дорожек с разведенными питанием, фильтрующими еммкостями, заготовкой под кварц, но там достаточно длинные проводники....
8L вроде как низковольтная. У старой 8 аналоговое и цифровое питание внутри соединено, может у платы забыли одно из питаний развести и поэтому 8A берёт питание где попадя.
очень похожее поведение я наблюдал во времена знакомства с AVR, и причина была в неправильной установке фьюза CKOPT - этот фьюз отвечает за режим работы тактовго генератора с внешним кварцем. если он не правильно задан, то кварц может возбуждаться не на основной гармонике, или вообще не возбуждаться, или возбуждаться случайно... что в итоге приводит к тому, что программа то работает, то нет. то работает при касании вывода МК пальцем до выключения питания...
к сожалению, о том, как именно CKOPT влияет на генератор написано в каких-то апнотах, а не в обычных даташитах (там лишь перечислено, как обычно надо их ставить, но не объяснено, почему).
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
как именно CKOPT влияет на генератор написано в каких-то апнотах, а не в обычных даташитах
заинтересовало..
Нашёл "AVR042: AVR Hardware Design Considerations"
из 5.2
Цитата:
By programming the CKOPT Fuse(1), the user can enable internal capacitors on XTAL1 and XTAL2. The value of the internal capacitor is typical 20pF, but can vary. External capacitors are not required when using a 32.768kHz crystal that does not require more load.
Цитата:
Программируя предохранитель CKOPT (1), пользователь может включить внутренние конденсаторы на XTAL1 и XTAL2. Значение внутреннего конденсатора обычно составляет 20 пФ, но может меняться. Внешние конденсаторы не требуются при использовании кристалла 32,768 кГц, которому не требуется большая нагрузка.
вот-вот. еще и коэффициент усиления генератора меняется, т.е. он может быть более помехочувствительным или менее... так что лучше этот фьюз включать (но это не точно)
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Я бы ещё по питанию все дроссели убрал, проверял специально раньше, выяснилось что это полная фигня, особенно после дросселя конденсатор очень маленький 0.1uF, его точно не достаточно, лучше дроссель убрать.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения