Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 14.06.2006, 13:36  
koko202
Частый гость
 
Регистрация: 24.03.2006
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
koko202 на пути к лучшему
По умолчанию ATMega128, MCUCSR

Brown-out включен, но он бит BORF не выставляет.
Режим совместимости с ATMega103 выключен.
На стек тоже не похоже, потому что программа по RESET
первым делом сохраняет в ОЗУ состояние регистра SP и
первые 6 ячеек стека. Там все корректно – SP = 10FF,
т.е. он пуст. По сохраненному стеку понятно, что
последний вызов был одной из функций которых и следовало вызывать в главном цикле.
Причем каждый раз разных функций, что говорит о том,
что сбой происходит в случайные моменты времени.
Кроме того, раз происходит сохранение этого всего,
значит точно был прыжок на метку 0000.
Реклама:
koko202 вне форума  
Непрочитано 14.06.2006, 14:03  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

короче... далеко удаленная отладка это не просто ...
avr123-nm-ru вне форума  
Непрочитано 14.06.2006, 15:15  
otrog
Частый гость
 
Регистрация: 21.04.2006
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
otrog на пути к лучшему
По умолчанию Re: ATMega128, MCUCSR

Сообщение от koko202
Кроме того, раз происходит сохранение этого всего,
значит точно был прыжок на метку 0000.
Значит остается программный глюк или прерывания бесятся.
Посмотрите, как в компиляторе затыкаются неиспользуемые прерывания:
1. jmp RESET
или
2. reti
Если первое, то попробуйте заменить на второе. По идее сбросы прекратятся. В этом случае - копать в сторону неиспользуемых прерываний.
otrog вне форума  
Непрочитано 14.06.2006, 19:12  
NemoCut32
Гражданин KAZUS.RU
 
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
NemoCut32 на пути к лучшему
По умолчанию

Я так понимаю, что работает несколько прерываний от таймеров и др. источников, вот такая ситуация обычно происходит при наложениии прерываний (суперпозиции), при этом PC MCU убегает в верхние адреса и "плавно добегает до "0000". Далее происходит описанная Вами ситуация - врядли это бросок напряжения BOD отработал бы.
Резюме - надо смотреть прерывания, не могут ли они в результате накладываться или при использовании исскуственной вложенности создавать замкнутый цикл, в результате чего портится возвратный стек или слетает адрес в PC.
NemoCut32 вне форума  
Непрочитано 15.06.2006, 13:07  
koko202
Частый гость
 
Регистрация: 24.03.2006
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
koko202 на пути к лучшему
По умолчанию ATMega128, MCUCSR

Спасибо otrog, я как раз забыл подсоединить модуль программы,
который все неиспользуемые прерывания перенаправляет
на заглушку инкрементирующую счетчик неожидаемых прерываний.
Также, по совету NemoCut32 я поставил ловушку в конец памяти,
чтоб быть уверенным,
что программа не убегает в верхние адреса.
К сожалению, ни то не другое не помогло – счетчик неожидаемых прерываний
остается нулевым, ловушка в конце памяти не срабатывает.
Я написал тестовую программу, в которой вообще запрещены прерывания,
(но ловушки на них стоят) и которая просто включает силовые тиристоры и уходит в бесконечный цикл (сторожевой таймер тоже отключен).
Результат тот же – сброс после выхода тиристоров на режим.
Видно все-таки помеха как-то хитро сбрасывает контроллер, да так что
в MCUCSR ничего не взводится.
koko202 вне форума  
Непрочитано 16.06.2006, 10:18  
otrog
Частый гость
 
Регистрация: 21.04.2006
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
otrog на пути к лучшему
По умолчанию Re: ATMega128, MCUCSR

Сообщение от koko202
включает силовые тиристоры и уходит в бесконечный цикл (сторожевой таймер тоже отключен).
Результат тот же – сброс после выхода тиристоров на режим.
С этого и стоило начинать . Нагрузка какая? Наверняка индуктивная? Как управляете тиристорами? Напрямую - без опторазвязки? Питание на схему идет от-туда же, откуда и на титисторы?
Если да, то копать в сторону разводки платы и фильтрации питания.
ПС здесь хорошие статьи есть:
http://elart.narod.ru/
ППС но поведение меги остается непонятным.
otrog вне форума  
Непрочитано 19.06.2006, 05:54  
koko202
Частый гость
 
Регистрация: 24.03.2006
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
koko202 на пути к лучшему
По умолчанию ATMega128, MCUCSR

Непосредственно тиристоры управляются микроконтроллером на ATMega8, с опторазвязками
и тд., вещь готовая, рабочая и на нее грешить нельзя. Задача ATMega128 (она собрана пока на отладочной плате) просто давать сигнал ATMega8 типа ”поехали”, а также аналогичные сигналы всем другим системам
(пока не включенным). Кроме того, ATMega128 следит за выходным током с шунта – там стоит усилитель INA129 в паре с ISO122P, так что развязка есть. Шунтов в конце концов будет 8, в разных частях устройства, но пока подключен только один, после тиристоров.

Сигнал, идущий от шунта, имеет выбросы. Поставленные RC - фильтры их не давят,
INA129 усиливает, и они попадают на АЦП микроконтроллера.
Амплитуду их оценить трудно – они слишком узкие, на осциллографе плохо видно
и они нестабильные – не засинхронизуешся.
ATMega128 тоже их измеряет и показывает как FF – то есть максимальные.
Неужели ATMega128 реагирует на эти выбросы?

И еще интересный момент: я убрал+5v с AREF и
выставил 2.56v от ИОНа – сбросы ATMega128 прекратились.
Правда может при этом я еще что-то сделал – провода например передвинул.
Выбросы остались вроде неизменными, но сбросов ATMega128 нет.

Сейчас должен разводить плату, но волнует странное поведение ATMega128.
koko202 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
atmega128 и PonyProg Doctor-Morro Микроконтроллеры, АЦП, память и т.д 0 23.05.2007 14:27
АЦП Atmega128 4ubaika Микроконтроллеры, АЦП, память и т.д 0 18.03.2007 14:50
Закорочение 2-х ножек Atmega128 4ubaika Микроконтроллеры, АЦП, память и т.д 3 07.03.2007 16:04
ATmega128 Lea Микроконтроллеры, АЦП, память и т.д 3 06.06.2006 18:50
Прерывания в ATmega128 Святослав Микроконтроллеры, АЦП, память и т.д 2 10.02.2006 16:28


Часовой пояс GMT +4, время: 05:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot