Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не заводится Mega48-20
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
smk
Суть проблемы. В заводской поставке контроллер программатор увидел и запрограммировал. Больше МК не откликается. Частоту программатора менял. Фузы запрограммированы только CKSEL3 и SUT0. Кварц 8 МГц, Питание 4,95 В. На XTAL1 1,5 В постоянно, на XTAL2 +питание постоянно. Что это может быть и что нужно чтоб завести МК? Может у кого что похожее было? Спасибо.

Конденсаторы 22 пФ 0603 есть, монтаж правильный, все помыто. Ктонибудь пробовал подключать внешнее тактирование не выпаивая кварца?
smac
Цитата(smk @ Feb 10 2010, 10:56) *
Суть проблемы. В заводской поставке контроллер программатор увидел и запрограммировал. Больше МК не откликается. Частоту программатора менял. Фузы запрограммированы только CKSEL3 и SUT0. Кварц 8 МГц, Питание 4,95 В. На XTAL1 1,5 В постоянно, на XTAL2 +питание постоянно. Что это может быть и что нужно чтоб завести МК? Может у кого что похожее было? Спасибо.

Конденсаторы 22 пФ 0603 есть, монтаж правильный, все помыто. Ктонибудь пробовал подключать внешнее тактирование не выпаивая кварца?

Согласно даташиту, в заводской поставке CKSEL3 запрограммирован, т. е. наверное вы перевели его в незапрограммированное (1 - unprogrammed) состояние. Если это так, то нужно подключить к выводам XTAL1 и XTAL2 резонатор 0,9-4 МГц согласно даташиту.
smk
Цитата
Согласно даташиту, в заводской поставке CKSEL3 запрограммирован, т. е. наверное вы перевели его в незапрограммированное


Наврядли. Программировала фузы студия (см. файл fuse.h). Я указал только CKSEL3 и SUT0. Остальное по умолчанию.
smk
Проблему вроде-бы решил. Суть была в том, фузами был выставлен внешний кварц 8.0 - ... МГц. Не заводился. Я не выпаивая кварца затактировал внешним 1 МГц. Контроллер ожил. Фузы прочитались и были верно установленными (low=0xE7 H=0xDF EXT=0xFF). Далее я переставил фузы так чтоб был внешний кварц 3.0 - 8.0 МГц (low=0xFD). МК завелся, проблема решилась. Таким образом обращаю внимание тех, кто использует кварцы 8.0 МГц - фузы выставлять как для 3.0 - 8.0 МГц. Может кому поможет еще.
defunct
Цитата(smk @ Feb 10 2010, 12:56) *
Программировала фузы студия (см. файл fuse.h). Я указал только CKSEL3 и SUT0. Остальное по умолчанию.

Какой еще fuse.h о чем Вы?
Лучше бы назвали программатор каким шили.

Цитата
Таким образом обращаю внимание тех, кто использует кварцы 8.0 МГц - фузы выставлять как для 3.0 - 8.0 МГц. Может кому поможет еще.

И я тоже хочу обратить внимание на такой вопрос:

Какой смысл использовать кварцы "меньше равно 8Mhz" с AVR вообще?! Или ставить кварц на макс. возможную частоту, или же внутренний RC. А низкочастотые кварцы - это от лукавого т.к. и по производительности режет, и что парадоксально - и по потреблению проиграет (с использованием режима сна).

Для частот <=8Mhz практически каждая AVR'ка имеет внутренний RC осциллятор. Тактировать МК от внутреннего генератора - надежнее, дешевле, и быстрее, потребление меньше.
smk
Цитата
и по потреблению проиграет (с использованием режима сна).

Мой случай как раз без сна и с требованиями к стабильности работы таймеров. Особой производительности не надо, а вот повторяемость (в смысле точности работы таймеров) нужна.

Шил программатором от PROTTOSSа с альтернативной прошивкой.
Код
FUSES =
    {
        .low = (FUSE_CKSEL1),
        .high = HFUSE_DEFAULT,
        .extended = EFUSE_DEFAULT,
    };
LOCKBITS = (LB_MODE_1);

Вот такая конструкция обеспечивает прошивку фузов при программировании.
fuse.h и lock.h подключены в io.h .
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.