Я никогда не имел дело с частями, являющимися дефектными проливами от DigiKey, но 3 новых Atmel ATmega164A, которые я получил, демонстрировали чрезвычайно странное поведение.
Я сузил его до некоторой степени, связанного с тактовой частотой, и оказалось, что результирующий тактовый сигнал от предположительно «откалиброванного на заводе» внутреннего генератора колебался между 650-700 кГц, а не на 1 МГц, как это должно быть. Я смог записать в калибровочный байт, чтобы получить это очень близко к 1 МГц (все еще с некоторым дрожанием), и большинство вещей работает, но UART просто не работают должным образом, они, кажется, выдают непрерывный поток коротких импульсов независимо от того, что вы просите их сделать.
Раньше я имел дело с маломощной версией этого микроконтроллера (164P) с нулевыми проблемами и решил сбросить ее на месте и проверить выход тактовой частоты на нем, и он имеет твердую частоту 1 МГц без дрожания. Я склоняюсь к выводу, что эти чипы 164A неисправны, но есть ли какие-либо другие тесты, которые я мог бы попытаться подтвердить, что?
Изменить: Просто думал, что я опишу процесс, с помощью которого я измеряю часы. Я включил разрядный предохранитель тактового выхода и измерил соответствующий вывод с помощью выборки логического анализатора с очень высокой скоростью. У меня есть программа, которая записывает данные в регистр калибровки, OSCCAL
и я смог пробовать и ошибаться до 1 МГц.
Редактирование # 2: После дальнейшего исследования, похоже, что микроконтроллер начинает работать после определенного размера программыпорог. Пустой проект с единственным исходным файлом, мигающим светодиодом, кажется нормальным, но компиляция и компоновка любых других моих файлов (например, библиотеки UART или чего-либо еще) без вызова функции для этих методов приводит к тому, что микроконтроллер ведет себя в описанное поведение выше. Подключения питания в порядке, и было выполнено правильное разделение. У меня нет времени на дальнейшую отладку в данный момент, поэтому вместо этого мы пошли на версию с низким энергопотреблением. Я не уверен, где именно может быть проблема: 1) 164A и 164P несовместимы с кодом 2) Процедура программирования для этих двух контроллеров различна. 3) Блоки неисправны. Я уверен в дизайне нашей платы и исключил бы проблемы с питанием. К сожалению, я не могу действительно выбрать правильный ответ, поэтому я оставлю этот вопрос как есть - может быть, я Я вернусь к проблеме снова в будущем. Спасибо всем, кто предоставил проницательные комментарии или ответы, они могут быть полезны для кого-то еще с проблемами ОК из коробки.