Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Зависание АТмега128
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Lukyanov
Контроллер АТ128 запитан от +5 В. Используется внешний тактовый сигнал 10 МГц. Если долго не включался прибор, он зависает. Программа исполняться не начинает - на всех портах серый уровень. Проверял все ноги питания - все хорошо, тактовые импульсы доходят, амплитуда нормальная, на сбросе +5 В. Все ноги, отвечающие за SPI отключены. После снятия питания и повторного включения начинает работать нормально. Затем глюк может очень долго не проявляться. Что за фигня - ума не приложу... Если кто-нибудь сталкивался с подобным или есть какие-то идеи подскажите, пожалуйста...
vesago
Допустим код не кривой. Индуктивные нагрузки имеются? Сброс корректный - кондер + резак? Бод включен на 4.3В?
korobov_michael
Цитата(Lukyanov @ Aug 6 2007, 15:48) *
Контроллер АТ128 запитан от +5 В. Используется внешний тактовый сигнал 10 МГц. Если долго не включался прибор, он зависает. Программа исполняться не начинает - на всех портах серый уровень. Проверял все ноги питания - все хорошо, тактовые импульсы доходят, амплитуда нормальная, на сбросе +5 В. Все ноги, отвечающие за SPI отключены. После снятия питания и повторного включения начинает работать нормально. Затем глюк может очень долго не проявляться. Что за фигня - ума не приложу... Если кто-нибудь сталкивался с подобным или есть какие-то идеи подскажите, пожалуйста...

Детализируй, плиз:
1. Какие фьюзы прошиты для девайсины?
2. Какой именно прибор долго не включался - источник тактового сигнала или сама АТ128?
3. Какая цепь стоит на ресете - RC или что-то посерьезнее?
4. Не управляешь ли ты движками или чем-то индуктивным?
GDI
А на сколько быстро нарастает внешний тактовый сигнал? У меги при внешнем тактовом задержки установлены минимальные.
_Sam_
А м.б. генератор внешнего тактового сигнала не всегда запускается.
muravei
И не слишком ли большой конденсатор на 5в ?
Если питание медленно нарастает, то легко может зависнуть.
defunct
Цитата(muravei @ Aug 6 2007, 19:11) *
Если питание медленно нарастает, то легко может зависнуть.

С включенным BOD'ом это врятли.
muravei
Цитата(defunct @ Aug 6 2007, 21:01) *
С включенным BOD'ом это врятли.

Как - то была тема не то что ВОДом - ресетом не запускалось , только питанием.
Судя по всему, при слишком медленном питании , что-то внутре так раскорячивается и защелкивается...
smile.gif
sadat
"Собачка" включена? В таких ситуациях должна помогать....
Да, и если, скажем, питание от трансформатора, который рядышком на плате, то в один из моментов включения попадаете на "полную" фазу - импульс помехи может наводиться на линию от осциллятора до лапки мк - и "гробить" мк, вводя его в ступор.
Если есть возможность и желание - выложите часть платы для анализа - постараюсь помочь.
Lukyanov
1) Трансформатор далеко стоит в отдельном блоке питания. Он здесь не при чем.
2) Источник тактовых импульсов запускается всегда. Поступают с выхода микросхемы серии 1554.
3) Watchdog timer? Стоит попробовать. Может поможет. Но виснет так глухо, что никакой сброс не помогает.
4) Про цепь сброса - RC цепь. Второй источник сброса - кнопка. Объединены на 1554.

BOD это порог включения, задаваемый FUSEs? Да 4.3 В.
korobov_michael
И все-таки было бы неплохо увидеть схему и кусок программы, отвечающей за инициализацию. А если покажешь еще и фьюзы, будет совсем хорошо
muravei
Цитата(Lukyanov @ Aug 7 2007, 08:42) *
3) Watchdog timer? Стоит попробовать. Может поможет. Но виснет так глухо, что никакой сброс не помогает.

И , скорее всего, не поможет!
Так какой электоролит по 5 в после стабилизатора?
Lukyanov
По поводу электролита. Это 470 мкФ. Общий ток потребления по +5 В порядка 1 А. Время нарастания питания меньше секунды.
Rst7
Цитата(muravei @ Aug 6 2007, 20:44) *
Как - то была тема не то что ВОДом - ресетом не запускалось , только питанием.
Судя по всему, при слишком медленном питании , что-то внутре так раскорячивается и защелкивается...
smile.gif


Было. Но с Tiny26 при внешнем RC-генераторе. При внутреннем - все пучком... С M128 никогда таких проблем не было...
muravei
Цитата(Lukyanov @ Aug 7 2007, 09:47) *
По поводу электролита. Это 470 мкФ. Общий ток потребления по +5 В порядка 1 А. Время нарастания питания меньше секунды.

А попробуйте 47-100мк
GDI
Если не помогает никакой ресет, то может переменные попробовать проинициализировать при объявлении или до главного цикла. Ресет запускает программу с функции майн и никто не гарантирует что в переменных будут "нули" при первом запуске, а уж при последующих запусках память сохраняет свои предыдущие значения, если ее принудительно не проинициализировать.
WHALE
Вообще-то ресет запускает контроллер со старт-апа,где инициализируются глобальные переменные,
вектора прерываний и т.д.
prottoss
А менять камень пробовали?
fmdost
Где-то читал что если оставить выводы ISP неподтянутыми внешними резисторами то с ненулевой вероятностью возможно вхождение в режим программирования итд. Как у тебя там подключена ножка сброс? Если используеш внутренний то обязательно на + через резистор ~1к или меньше, если конечно программатор потянет.
arttab
чтоб приколов с ISP не было нужно поставить внешнию подтяжку на SLK. Этого достаточно.
Lukyanov
На счет ISP подумал в первую очередь. smile.gif SCK подтянут через резистор 10 кОм на +5 В.
Контроллер менять бесполезно, т.к. плат две и на обеих одно и тоже.
muravei
Цитата(Lukyanov @ Aug 8 2007, 08:50) *
Контроллер менять бесполезно, т.к. плат две и на обеих одно и тоже.

А коденсатор уменьшали? У меня после стабилизатора электролитов вообще нет (что тоже нехорошо ) , но все работает без проблем.
_Sam_
М.б. частота вашего генератора плавает при включении питания?

Цитата
When applying an external clock, it is required to avoid sudden changes in the applied
clock frequency to ensure stable operation of the MCU. A variation in frequency of more
than 2% from one clock cycle to the next can lead to unpredictable behavior. It is
required to ensure that the MCU is kept in Reset during such changes in the clock
frequency.
vesago
Я бы для начала затактировал от бортового осцилятора дабы отсеить подозрение на некорректное внешнее тактирование.
Lukyanov
Частота тактового генератора стабильна 10 МГц.
Использование внутреннего генератора не очень корректно
_Sam_
А в момент включения питания?
Rst должен удерживаться в 0, пока не запуститься и/или не стабилизируется генератор. Вы уверены что это условие выполняется?

Цитата
Использование внутреннего генератора не очень корректно

Вам же не предлагают отказаться от использования внешнего генератора совсем. Вам предлагают на время тестирования переключиться на внутренний генератор. Если с внутренним генератором эти "глюки" будут повторяться, значит проблема в другом, может в питании, может в программе, может ещё в чём то.
Lukyanov
Спасибо всем, кто ответил! Помогло увеличение постоянной времени RC-цепи при сбросе по питанию. Просто долго не мог проверить, не подпускали к плате. smile.gif
Rst7
Цитата(Lukyanov @ Aug 21 2007, 10:32) *
Спасибо всем, кто ответил! Помогло увеличение постоянной времени RC-цепи при сбросе по питанию. Просто долго не мог проверить, не подпускали к плате. smile.gif


Фигня какая-то. Если у вас получилось такое решение проблемы, то BOD должен был вылечить ее на корню, вы ее даже не заметили бы. Что-то мне подсказывает, что BOD все-таки не включен. А ну-ка точный список фузов в студию (если шьете авреалом, то прямо лог)...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.