Странная проблема с портами мк AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 5
Зарегистрирован: Пн дек 23, 2013 16:49:05
Откуда: Краснодар

Сообщение Viktor_f »

Недавно возникла следующая проблема: при прошивке мк программой, работающей с портом (допустим мигает светодиодом) - ничего не работает, порт "застревает" на первом значении, записанном в него и на дальнейшие действия программы попросту не реагирует (будь то смена уровня на выходе или переключение разряда). От того, написана ли программа с использованием прерываний или без них, ничего не меняется. Причём та же программа без проблем работает на не "испорченном" мк того же типа, вставленном в ту же схему, прошитом тем же программатором.
Микроконтроллеры "портятся" таким образом внезапно (проблема может возникнуть после любой перепрошивки), после чего порты мк (все!) нормально не функционируют. Программатор же ошибок не находит, прошивая "испорченный" мк и дальше без претензий.
Программатор самодельный usbtiny; программа avrdude (пробовал в консольной замедлять скорость программирования - не помогло); пишу на ассемблере; изменение фузов не помогает.
Таким образом накрыты порты на двух attiny2313 и на одном atmega8515, аппаратные функции на них же (ШИМ например) работают как положено.

Хотел бы узнать можно ли вернуть эти мк к нормальной работе и в чём заключается причина данной проблемы. Заранее благодарен.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20104
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Чудеса! :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1438
Зарегистрирован: Вт окт 28, 2008 09:00:18
Откуда: Украина, Харьков

Сообщение Dr. Alex »

А ещё, благодаря телепатическим навыкам, я могу сказать какого цвета ваши трусы!!!!!!

Вы хотя-бы схему выложили устройства!
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 20104
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Dr. Alex писал(а):Вы хотя-бы схему выложили устройства!
И прошивку.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1438
Зарегистрирован: Вт окт 28, 2008 09:00:18
Откуда: Украина, Харьков

Сообщение Dr. Alex »

Верно!
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
Контактная информация:
Реклама
Родился
Сообщения: 5
Зарегистрирован: Пн дек 23, 2013 16:49:05
Откуда: Краснодар

Сообщение Viktor_f »

Вот схема и прошивки:
Вложения
mig.asm
(1.17 КБ) 169 скачиваний
code_run_2.asm
(1.53 КБ) 306 скачиваний
Реклама
Родился
Сообщения: 5
Зарегистрирован: Пн дек 23, 2013 16:49:05
Откуда: Краснодар

Сообщение Viktor_f »

В общем, схема - восемь светодиодов с резисторами по 330 Ом. Вернее - это часть схемы тестовой платы. Питание от БП компа.
Друг Кота
Аватара пользователя
Сообщения: 20104
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Viktor_f писал(а):Вот прошивки
Пиздец, ну и код. Но вроде работает — нога какая-то дрыгается. Может, у МК просто фьюзами меняется тактирование, и он работает, но оооочень медленно?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Родился
Сообщения: 5
Зарегистрирован: Пн дек 23, 2013 16:49:05
Откуда: Краснодар

Сообщение Viktor_f »

Насчёт фьюзов - исключено. Проверял долго и настойчиво и на разных мк.
Может ли программатор, поймав помеху сотворить такое с контроллером?
Насчёт кода согласен. Не знаю многого, да ещё экспериментировал с кодом.
Друг Кота
Аватара пользователя
Сообщения: 20104
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Может, у вас плата такая что МК тупо зависает?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Встал на лапы
Сообщения: 120
Зарегистрирован: Чт фев 16, 2012 15:22:06

Сообщение lawr »

Второй код - точно рабочий!
Чудес, увы, не бывает, а вот сопли или другая лажа - запросто.
Друг Кота
Аватара пользователя
Сообщения: 15752
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ошибочное мнение...
"Чудеса" вполне встечаются даже на достаточно проработанном уровне:
http://radiokot.ru/forum/viewtopic.php? ... 1%8B%D0%B9
8)
Хоша текст автора данной темы еще не глядел, но с"подарочком" от ATtiny2313 пришлось помурыжиться... :facepalm:
Родился
Сообщения: 5
Зарегистрирован: Пн дек 23, 2013 16:49:05
Откуда: Краснодар

Сообщение Viktor_f »

Gudd-Head писал(а):Может, у вас плата такая что МК тупо зависает?
Думаю, не в плате дело. Проверял на других и просто навесным - та же фигня.
Может программатор чудит? Всё таки самодельный.
Друг Кота
Аватара пользователя
Сообщения: 15752
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

фрагмент " mig.asm" работать не будет (как минимум нет включения/пуска таймера, не говоря о прочем...)
Для второго фрагмента частота переключений примерно 0,262144секунды на шаг, однако нет определения для верхушки стека (это при присутствии в исходнике подпрограммы и/или прерывания!!!) что также вызовет проблему, хоша... в 2313А по инициализации SPL=ramend...но в других такой роскоши может не быть... короткие переходы по условию действительны лишь на расстоянии +64/-63 команд(не байт!) 8)
Пердупреждение! Не применять метки созвучные зарезервированным именам и/или торговым маркам!
:)
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

BOB51 писал(а):в 2313А по инициализации SPL=ramend...
Никогда не порекомендую на это полагаться. Всегда надо инициализировать вручную. Во избежание, так сказать.
Тем более, я полагаю, автор не инициализировал SPL не потому, что читал в даташите, об инициализации SPL значением RAMEND, а потому, что не знал об этом. А прежде чем начать элегантно обходить базовые принципы, надо эти принципы выучить.
Ответить

Вернуться в «AVR»