Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: HELP MEGA8!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Sergio66
Пормогите разобраться с Мегой8. Есть макет устройства на Мега8. Выполнен на монтажке, но разводка сделана проводами. не могу добиться корректной работы камня. Работает на 8 Мгц от внутреннего генератора (пробовал и от кварца - эффект тот же). Запускается камень с 4 -5 раза (выключаю питание).
Код простейший -

DDRB|= (1<<PB1);
for(;;)
{

PORTB^=(1<<PB1);
Delay(250);
}

Ингода моргает диод, иногда просто зажигается и не гаснет, т.е. полное ощущение, что просле выполнения PORTB^=(1<<PB1); происхордит сброс.

Этот кусок кода был введен для проверки, на самом деле, в программе идет обмен по TWI. Если программу модифицировать так:

DDRB|= (1<<PB1);
PORTB^=(1<<PB1);
{
Блок обмена TWI (режим SLAVE)
(MASTER (на Мега32) в это время работает и пытается продолбиться)
}
то диод даже не загорается.
т.е. кажется, что контроллер не выходит из режима RESET
Физически RESET подтянут через 10К и на массу через 0,1 Мкф
Режим BOD ENABLE включен.
Настолько не приложу ума, что еще можно сделать, что даже Datasheet весь прочитал!
Stranix
Очень похоже на проблеммы с питанием. Глюкодавы напаяны? Если нет, напаяй прямо на лапы, может помочь.
Sergio66
Цитата(Stranix @ Jun 17 2005, 12:19)
Очень похоже на проблеммы с питанием. Глюкодавы напаяны? Если нет, напаяй прямо на лапы, может помочь.
*

Что есть "глюкодавы"? Если это емкости по питанию, то они стоят 220 Мкф + керамика 1,5 Мкф
yung
Кондер 30-100 пФ рядом с ресетом, второй конец на общий. Если на проводах, то запросто может быть. И резистор от ресета на питание.
Sergio66
Цитата(yung @ Jun 17 2005, 13:19)
Кондер 30-100 пФ рядом с ресетом, второй конец на общий. Если на проводах, то запросто может быть. И резистор от ресета на питание.
*


Неееетттт! Молчит как сыч!
andk
WDT выключен?
Igor26
Цитата(yung @ Jun 17 2005, 13:19)
Кондер 30-100 пФ рядом с ресетом, второй конец на общий. Если на проводах, то запросто может быть. И резистор от ресета на питание.
*


...и электролит с керамикой по питанию. Был точно такой же случай.
Потом всё стало прекрасно и удивительно.
yung
И вот еще что. Как запрограммирован фьюз RSTDISBL? Насколько я понял, если его запрограммировать, то кристалл по SPI шиться не будет. Может в кристалле и прошивки нет?
sseett
Электроит надо выкинуть, керамики после стабилизатора, вполне достаточно (можно навесить прямо на корпус 100-470nF). Ну и желательно проконтролировать питаху (во время работы) на предмет провалов.
Удачи!
indela
электролит - точно выкинуть надо. и обязательно brownout reset включить, и reset длинным проводом нельзя вести, без резистора и кондера точно работать на монтажке не будет или будет но сильно глючить
Sergio66
Все это уже проделали. Brownout включен, RSTDISBL - в "1", т.е. не запрограммирован. Уже и на DIP корпусе пробывали - такая же хрень...
Появился еще один интересный симптом:
пишем:

DDRB|=(1<< PB1);
for(;;)
{
PORTB|=(1<<PB1);
while(1);
}
запускается так же через пень - колоду, но если запустился, то диод горит ярко.
модифицируем код:

long int pause;
DDRB|=(1<< PB1);
for(;;)
{
PORTB|=(1<<PB1);
pause = 0xffffff;
while(pause--);
}

запускается так же, но диод светится в четверть накала.
Вот такая вот фигня...
yung
Перезапускается камень. Так долго можно рассуждать. Архивируй и цепляй ВЕСЬ проект. Тогда может что и найдем. У самого глаз замыливается, когда долго мучаешься, бывает со стороны виднее.
Sergio66
Эврикой это не назовешь, но, кажется я понял в чем дело! Спасибо Н. Королеву (Аргуссофт), он надоумил... Оказывается, IARовский проект - вот в чем дело. Когда весь этот же код я оформил на асме в AVRStudio, все прекрасно заработало, и камень запускается, и все работает, как нужно...
Именно в этом и дело. Что именно, я пока не разобрался. Сейчас запущу новую тему по этому поводу... Может кто чего и знает...
yung
Николай свое дело знает, не в первый раз убеждаюсь. Ура!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.