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