mega16 - шьется, но не работают порты

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 4
Зарегистрирован: Вс июн 22, 2008 02:33:45
Откуда: Старый Оскол

Сообщение Spirit »

Доброго всем времени суток.
Возникла такая проблема: преобрел новый МК ATMega16-16PU (из этой серии первый, раньше работал только с tiny2313 и mega48)
Запрограмировал. Запустил - никаких признаков жизни.
Урезал программу. С фьюзами помучился. То же самое.
Оставил только инициализацию порта и попытался хотябы помигать светодиодом - ни один порт не реагирует.

В конце концов оставил только инициализацию в разных состояниях.
Из нескольких десятков попыток пару-раз на портах появлялись прописаные уровни, но работоспособности так и не добился.

Пробовал кварцы на 8 и 14МГц. При обоих прошивается на ура.
Сигнатура в норме, ошибок при чтении и записи нету.
Но и признаков жизни - тоже.

Либо я туплю, либо МК труп!
Никто не сталкивался с такой проблемой?
Вложения
fuses.jpg
(19.51 КБ) 629 скачиваний
Нет у радиолюбителя более любимых и долговечных устройств, чем сотворенные на скорую руку и со словами "Пока так, а потом сделаю получше..."
Реклама
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Spirit писал(а):Доброго всем времени суток.
Возникла такая проблема: преобрел новый МК ATMega16-16PU (из этой серии первый, раньше работал только с tiny2313 и mega48)
Запрограмировал. Запустил - никаких признаков жизни.
Урезал программу. С фьюзами помучился. То же самое.
Оставил только инициализацию порта и попытался хотябы помигать светодиодом - ни один порт не реагирует.

В конце концов оставил только инициализацию в разных состояниях.
Из нескольких десятков попыток пару-раз на портах появлялись прописаные уровни, но работоспособности так и не добился.

Пробовал кварцы на 8 и 14МГц. При обоих прошивается на ура.
Сигнатура в норме, ошибок при чтении и записи нету.
Но и признаков жизни - тоже.

Либо я туплю, либо МК труп!
Никто не сталкивался с такой проблемой?
Проверьте питание и ресет, кстати программатро отключаете когда работоспособность проверяете?
Реклама
Родился
Сообщения: 4
Зарегистрирован: Вс июн 22, 2008 02:33:45
Откуда: Старый Оскол

Сообщение Spirit »

Всё это проверил в первую очередь. Никаких отклонений.
Программатор естественно отключал. По барабану.
Нет у радиолюбителя более любимых и долговечных устройств, чем сотворенные на скорую руку и со словами "Пока так, а потом сделаю получше..."
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Spirit писал(а):Всё это проверил в первую очередь. Никаких отклонений.
Программатор естественно отключал. По барабану.
Ну тогда схему, код и желательно разводку в студию (схему и разводку лучше выкладывать в граф. формате, а не в pcb / sch).
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 4
Зарегистрирован: Вс июн 22, 2008 02:33:45
Откуда: Старый Оскол

Сообщение Spirit »

Плата задумывалась как макетная, поэтому на ней только сам МК, кварц на 14.3МГц с конденсаторами, резистор на 10кОм между +5 и RESET, колодка для прграммирования, три кнопки (RESET, INT0, INT1), блокировочные конденсаторы по питанию и 8-и контактные разъемы на каждый порт (даже не впаяны).

Программа - код, сгенерированый в CVAvr. В мастере указаны только тип МК, частота кварца и настроены порты (PORTB - выход со всеми нулями по умолчанию, остальные - входы с подтягивающими резисторами)
В основном цикле для проверки:

Код: Выделить всё

PORTB.0=0xff;
delay_ms(500);
PORTB.0=0x00;
delay_ms(500);
Пробовал и с другими портами - все какбудто в состоянии Z.
Только при включеном фьюзе JTAGEN наблюдается наличие подтяжки на выводах JTAG.
Нет у радиолюбителя более любимых и долговечных устройств, чем сотворенные на скорую руку и со словами "Пока так, а потом сделаю получше..."
Реклама
Родился
Аватара пользователя
Сообщения: 10
Зарегистрирован: Пн мар 31, 2008 21:16:27
Откуда: Сочи

Сообщение ZZToP »

А порты настроены как выходы?

В инициализацию МК в ф-ции main() впишите

Код: Выделить всё

DDRB = 0x01;
И внутри цикла не

Код: Выделить всё

PORTB.0=0xff;
а

Код: Выделить всё

PORTB.0=1;
Вы ж один бИт порта выставляете, не байт! Т.е. один выход,а не весь порт.

Хотите весь порт, тогда в инициализации

Код: Выделить всё

DDRB = 0xFF;
и в цикле

Код: Выделить всё

PORTB = 0xFF;
delay_ms(500);
PORTB = 0x00;
delay_ms(500);
всё, что нельзя реализовать софтово, можно выполнить в железе
Контактная информация:
Реклама
Родился
Сообщения: 4
Зарегистрирован: Вс июн 22, 2008 02:33:45
Откуда: Старый Оскол

Сообщение Spirit »

Всем доброго времени суток.
Извините, что раньше не смог ответить - не было интернета.

Проблема решилась. Причиной всё же оказался неисправный микроконтроллер. Ни один порт не работал :shock:
Нет у радиолюбителя более любимых и долговечных устройств, чем сотворенные на скорую руку и со словами "Пока так, а потом сделаю получше..."
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»