Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/28: Рейтинг темы: голосов - 28, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
1

Atmega64 не хочет стабильно работать на 16Мгц

30.12.2016, 17:34. Просмотров 5407. Ответов 24
Метки нет (Все метки)

Доброго времени суток, и с Наступающим Новым годом, форумчане. Сложилась проблема у меня, и не понял когда началась.
Дело в том, что Atmega64 не хочет работать от кварца 16МГц, как не хочет, запускается, но например delay не работает, uart может отсылать всякую хрень вместо нужных данных.
Ставлю кварц на 12МГц - всё отлично, uart шлёт то что надо и delay выполнет правильную задержку. В чем может быть проблема?
Хотелось бы от знающих услышать варианты.
Что я пробовал вообще:
1) Поменял полностью кварц, и конденсаторы, дабы исключить брак в этой обвязке
2) Код 100% работоспособный, ибо на 12МГц он бы не работал тоже.
3) Все контакты отличные, питание стабильное от LMки, 4.99-5.00v.

Так же пробовал тактировать от внутреннего генератора, тоже работает.
У меня пока два варианта:
1) Бракованный МК
2) Подбирать значения частоты для работы delay и UART.
Прикладываю фьюзы, и кусочек программы. Работаю в Atmel Studyo 7.0



0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2016, 17:34
Ответы с готовыми решениями:

Будет ли работать ATmega64-16AU (8МГц внешн. кварц) от 3.3В?
Я программировал на ATmego328P, но нужно больше памяти. Купил ATmega64-16AU и в даташите вижу: ...

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

Интернет не хочет работать,все хорошо подключается а браузер открывать не хочет первую страницу отображает
ребят такой вопрос,установил винду 8,все норм только интернет не хочет работать,все хорошо...

Будет ли такая конфигурация стабильно работать?
Я захотел собрать себе комп. Будет ли такая конфигурация стабильно работать? Процессор:Intel...

24
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,753
30.12.2016, 20:04 2
Применять Delay это зло. Если не хватает нескольких NOP, надо переходить на асинхронную обработку.
Программа должна взводить флаг (и продолжать крутиться дальше), системный таймер по этому флагу отсчитывает требуемую задержку и выставляет флаг готовности. В основном цикле он обрабатывается, как то так...
Разновидность конечного автомата, т.н. флаговый автомат.
0
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
30.12.2016, 20:59 3
Цитата Сообщение от omokost
Применять Delay это зло. Если не хватает нескольких NOP, надо переходить на асинхронную обработку.
Программа должна взводить флаг (и продолжать крутиться дальше), системный таймер по этому флагу отсчитывает требуемую задержку и выставляет флаг готовности. В основном цикле он обрабатывается, как то так...
Разновидность конечного автомата, т.н. флаговый автомат.
Зло не зло, ну библиотека стандартная) Мне нет разницы как делать задержку, просто ограничить время между пакетами информации UART.
Тем не менее, но почему то UART тоже тупил на 16МГц?
0
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
30.12.2016, 22:02 4
Надо понять, на какой частоте работает генератор. Возможно, он срывается на высшую гармонику. Нужно смотреть осциллографом. Или подобрать конденсаторы на кварце.

Что значит "delay не работает"??? Не та задержка, или вообще не задерживает, или зависает при вызове? Из-за таких описаний даже не хочется помогать, типа сиди, тупи дальше.

PS. Напиши мигание светодиодом 1 Гц на 12 МГц, запусти. Затем поменяй кварц на 16 МГц. Если не мигает, то надо уменьшать конденсаторы. Если мигает 2.5 Гц или 3.75 Гц, то надо увеличить конденсаторы, а также соединить корпус кварца с общим. А если мигает, как и положено, 1.25 Гц, то тупит компилятор, когда ему вместо 12 даешь 16.
0
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
31.12.2016, 03:54 5
Цитата Сообщение от Phoemyx32
2) Код 100% работоспособный, ибо на 12МГц он бы не работал тоже.
По моему тут с процентами что-то не то.
0
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
31.12.2016, 06:05 6
Цитата Сообщение от yiv91
Надо понять, на какой частоте работает генератор. Возможно, он срывается на высшую гармонику. Нужно смотреть осциллографом. Или подобрать конденсаторы на кварце.

Что значит "delay не работает"??? Не та задержка, или вообще не задерживает, или зависает при вызове? Из-за таких описаний даже не хочется помогать, типа сиди, тупи дальше.

PS. Напиши мигание светодиодом 1 Гц на 12 МГц, запусти. Затем поменяй кварц на 16 МГц. Если не мигает, то надо уменьшать конденсаторы. Если мигает 2.5 Гц или 3.75 Гц, то надо увеличить конденсаторы, а также соединить корпус кварца с общим. А если мигает, как и положено, 1.25 Гц, то тупит компилятор, когда ему вместо 12 даешь 16.
Не задерживает, байты в юарт лезут как без задержек...
Плюс ко всему, как писал не то, что нужно приходит. Отсылаю например 255 в десятичном виде, прилетают не понятные числа то 130, 170 например.
Хотя однажды пошло то, что надо, не меняя ничего.
Я уже грешу на брак контроллера.
Осцилограв срывает вообще генерацию, только прикасаюсь к любой ноге кварца, мк зависает.
Пробовал через мегаомное сопротивление, то же самое.
Не хочу "забить", хочу разобраться и понять причину.
Ну по даташиту даны параметры конденсаторов и кварцев, неужели разработчики не расчитывают это?
Жду открытия нигазинов после праздников, куплю новую.атмегу и проведу эксперимент на брак.
Пока замены нет.
Если, что то не написал, прошу прощения, стараюсь полную инфу изложить.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 551
31.12.2016, 06:31 7
Цитата Сообщение от Kitvym
Цитата Сообщение от Phoemyx32
2) Код 100% работоспособный, ибо на 12МГц он бы не работал тоже.
По моему тут с процентами что-то не то.ДА
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
31.12.2016, 07:21 8
Вот интересно , он же всё описал ,
uart может отсылать всякую хрень вместо нужных данных
. И при чём здесь уважаемые коллеги кварц и емкости?
Особенно понравилось , что он попробовал. Я тоже в коде сомневаюсь.
0
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
31.12.2016, 13:53 9
Используй скорость 19200 и будет тебе счастье в новом году. Либо кварц на 18.432 МГц.
Генерация на кварце не должна срываться от дополнительных 5 пф, измеряй через такую емкость. Если срывается, уменьшай емкости на кварце до 10 пф или еще меньше.
Еще раз проверь фуз CKOPT, должен быть 0.
-


<Изображение удалено>
0
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
31.12.2016, 14:29 10
[QUOTE="YTYOUT"]Вот интересно , он же всё описал ,[QUOTE="Цитата:[/QUOTE]
uart может отсылать всякую хрень вместо нужных данных
. И при чём здесь уважаемые коллеги кварц и емкости?
Особенно понравилось , что он попробовал. Я тоже в коде сомневаюсь.

Какие сомнения в коде? Он упрощен до "не могу".
Точно этот же код отлично работает на 12 МГц, просто меняю в шапке эти частоты, компилю, шью и вуаля.
Но как только ставишь 16, то все...
0
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
31.12.2016, 14:32 11
Цитата Сообщение от yiv91
Используй скорость 19200 и будет тебе счастье в новом году. Либо кварц на 18.432 МГц.
Генерация на кварце не должна срываться от дополнительных 5 пф, измеряй через такую емкость. Если срывается, уменьшай емкости на кварце до 10 пф или еще меньше.
Еще раз проверь фуз CKOPT, должен быть 0.
-
В данный момент скорость стоит 9600. CKOPT точно в нуле, я даже вам скрин скинул прочитанных фьюзов.
Я в общем понял вас, поиграюсь с емкостью. И со светодиодом идея отличная, спасибо.
0
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
31.12.2016, 18:51 12
Цитата Сообщение от yiv91
Используй скорость 19200 и будет тебе счастье в новом году. Либо кварц на 18.432 МГц.
Генерация на кварце не должна срываться от дополнительных 5 пф, измеряй через такую емкость. Если срывается, уменьшай емкости на кварце до 10 пф или еще меньше.
Еще раз проверь фуз CKOPT, должен быть 0.
-
В общем поэксперементировал со светодиодом. Выкладываю фото осцилографа.
На 12 МГц и обвязке в 22пФ как видно всё чётко, 1сек горит, 1 сек нет.
Как только ставлю 16МГц то всё, уровень стоит и всё, логическая единица. Будто задержка не выставлена вообще.
Менял емкости от 16 до 40пф, ничего. Меняется только свечение (напряжение) на светодиоде, только не понимаю почему.
На 12МГц светодиод мигает, в пол накала. На 16МГц горит постоянно в полный накал.
Я вообще в полном заблуждении. Срочно нужно купить новый камень.



0
Стинислив Евгеньевич
31.12.2016, 19:27 13
Кварц 16мгц точно рабочий ? Если сильно роняли на твердую поверхность, например на стол, он мог убиться.
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
31.12.2016, 22:16 14
Цитата Сообщение от Phoemyx32
Менял емкости от 16 до 40пф, ничего. Меняется только свечение (напряжение) на светодиоде, только не понимаю почему.
На 12МГц светодиод мигает, в пол накала. На 16МГц горит постоянно в полный накал.
Похоже, в этом месте проблема. Как это может логический уровень быть не +5в и не 0?
Как будто все время долбит прерывание, которое выдает в порт уровень.
Или сопля на дорожках перемыкает XTAL с выводом порта. Или порты между собой.
Кстати, где настройки портов?
0
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
31.12.2016, 22:35 15
Цитата Сообщение от yiv91
Цитата Сообщение от Phoemyx32
Менял емкости от 16 до 40пф, ничего. Меняется только свечение (напряжение) на светодиоде, только не понимаю почему.
На 12МГц светодиод мигает, в пол накала. На 16МГц горит постоянно в полный накал.
Похоже, в этом месте проблема. Как это может логический уровень быть не +5в и не 0?
Как будто все время долбит прерывание, которое выдает в порт уровень.
Или сопля на дорожках перемыкает XTAL с выводом порта. Или порты между собой.
Кстати, где настройки портов?
Эммм, в коде со светодиодом порт нужный на вывод настраивал.
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
31.12.2016, 23:53 16
Точно этот же код отлично работает на 12 МГц, просто меняю в шапке эти частоты, компилю, шью и вуаля.
Это хорошо. Поставьте в delays например 100 , 200 . В коде мигания светодиодиком.
0
0 / 0 / 0
Регистрация: 02.08.2016
Сообщений: 55
01.01.2017, 01:40 17
Да, прошерстил еще раз даташит, производитель не указывает конкретных параметров керамики, от 12 до 22 пФ.
Печатные платы есть не паянные, нулевые с завода, на крайний случай попробую распаять новую, и уже будет точно понятна причина.
Пока попробую емкость еще уменьшить, проверю все дорожки на замыкание, ну и на крайняк сменю камень.
Спасибо за помощь, отпишусь о результатах.

0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 222
01.01.2017, 06:17 18
Я бы не торопился менять камень. Вполне возможно, кварц уже не рабочий; был убит CKOPT=0. Совет, уберите CKOPT, уберите конденсаторы обвязки, корпус кварца соедините с 22 лапой.
0
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
01.01.2017, 11:25 19
Цитата Сообщение от okt
Вполне возможно, кварц уже не рабочий; был убит CKOPT=0.
Вы хотите сказать, что кварц может разрушиться при стандартном включении и питании от 5В?
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
01.01.2017, 14:08 20
Он хочет сказать , что кварц изначально говно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.01.2017, 14:08

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Будет ли такая конфигурация стабильно работать?
Решил я прикупить новый комп. Будет ли такая конфигурация стабильно работать? Процессор:Intel...

Подскажите пожалуйста, будет ли система стабильно работать?)
Подскажите, я вот насобирал комп, и всё-таки надо проверится, норм будет ли он работать, или за...

Все ли совместимо в данной сборке? Стабильно работать будет?
Здравствуйте, подскажите пожалуйста все ли совместимо в данной сборке? Стабильно работать будет?...

Интернет перестает работать стабильно при нескольких устройствах
Добрый день. Мой ноутбук подключен к интернету через wifi и когда только я пользуюсь интернетом,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.