Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Fusebit CKOPT
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
AndreyVN
Всем привет!

Сбоит Atmega16 16AU с кварцем 16Mhz. Питание +5.0 V.

Программу урезал до минимума - иницилизация LCD и все.
Иногда программа стартует, то есть и софт и железо исправны, в большинстве случаев - экран мертвый.

Естественно, при таких симптомах первые подозрения на тактирование и сброс.

Стал разбираться - ячейка CKOPT управляет усилителем в цепи кварцевого генератора,
стояла CKOPT=1, то есть, без усилителя (меньше помех, меньше ток потребления).

Документация явно требует для кварца 16 МHz включить буферный усилитель.
Цитата
For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and
16 MHz with CKOPT programmed.

Вроде, все понятно, только включение усилителя в цепи кварца (CKOPT=0) ситуацию не изменило.
Помотрел старые проекты - Atmega 16 16 МHz уже пару лет прекрасно работает в режиме CKOPT=1.

Не хочется выкусывть 44-ногий чип, посоветуйте, что еще попробовать?
zombi
Я бы глянул еще на CKSEL и SUT!
AndreyVN
Цитата(zombi @ Dec 5 2010, 13:37) *
Я бы глянул еще на CKSEL и SUT!


Да, это тоже из управления тактированием, но здесь меньше сомнений:
CKSEL0=1
CKSEL1=1
CKSEL2=1
CKSEL3=1
SUT0=1
SUT1=1
Кварцевый резонатор, большое время нарастания питания (64 мкс).
Палыч
Цитата(AndreyVN @ Dec 5 2010, 14:49) *
SUT0=1
SUT1=1
Может быть, поэтому и сбоит, что SUT=11 - зарезервировано. Максимальное значение - оно же заводская установка: SUT=10
нечитатель
Цитата(AndreyVN @ Dec 5 2010, 11:44) *
иницилизация LCD и все.
Иногда программа стартует, то есть и софт и железо исправны, в большинстве случаев - экран мертвый.
Сомнительный как-то выбор способа узнать "запустился ли дисплей MCU". Простой светодиодик не модно, ну...
... все задержки во всех дисплейных процедурах увеличить (в 100 раз, временно) хотя б?
Цитата
первые подозрения на тактирование и сброс.
Но никак не на дисплей же и не на процедуры работы с ним, логично.
Цитата
выкусывть 44-ногий чип
Нувыблинваще.
Цитата
что еще попробовать?
Проверить ещё раз ёмкости конденсаторов около кварца и разводку платы на всякий случай.
AndreyVN
Цитата(нечитатель @ Dec 5 2010, 17:34) *
Сомнительный как-то выбор способа узнать "запустился ли дисплей MCU". Простой светодиодик не модно, ну...
... все задержки во всех дисплейных процедурах увеличить (в 100 раз, временно) хотя б?Но никак не на дисплей же и не на процедуры работы с ним, логично.
Нувыблинваще.
Проверить ещё раз ёмкости конденсаторов около кварца и разводку платы на всякий случай.


Этот дисплей с мегой уже в нескольких конструкциях опробован, поэтому задержки и программа иницилизации сомнений не вызывают.

А в целом, Вы оказались правы, проблема была на стороне LCD.
В чем именно разбираться не стал, откусил и привинтил новый.
А отловил именно как Вы и советовали, программным генератором на одной из ног меги.

Насчет ячейки CKOPT .
Забавно, CKOPT=1 мега кушает 61 mA, работает устойчиво на 16MHz.
CKOPT=0 мега кушает 61 mA, работает устойчиво на 16MHz. sm.gif







Цитата(Палыч @ Dec 5 2010, 17:16) *
Может быть, поэтому и сбоит, что SUT=11 - зарезервировано. Максимальное значение - оно же заводская установка: SUT=10


Не, если верить А.В.Евстигнеев Микроконтроллеры семейств Tiny и Mega фирмы Atmel., М.:Додека, 2006, стр 224,
то SUT =11 это кварцевый резонатор, 64 мкс задержка до сброса. В фирменном мануале не искал, но до сих пор
расхождений не было, хорошая книга.
314
При unprogrammed CKOPT амплитуда колебаний на генераторе 0.2В, при programmed CKOPT - 1.5В. Вот и вся разница.
zombi
Цитата(AndreyVN @ Dec 5 2010, 19:39) *
Не, если верить А.В.Евстигнеев

Книги книгами а Datasheet всетаки первоисточник!

P.S. Кстати глянул DS : SUT=11 - зарезервировано только для Low-frequency Crystal Oscillator
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.