AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
05.01.2014, 20:45
|
#1
|
Временная регистрация
Регистрация: 08.12.2006
Сообщений: 84
Сказал спасибо: 5
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
xmega portR неужели спалил?
Такое дело...
Использую atXmega 256A3U
У этого микроконтроллера есть PortR из двух пинов 0 и 1, альтернативные функции которых XTAL2 и XTAL1 соответственно.
На обоих пинах у меня кнопки (подключенные через резисторы по 1кОм), замыкающие на землю. Подтяжка к верху используется внутренняя, активируется программно. Всё прекрасно работало. В один прекрасный момент, обнаружил что кнопка на пине 0 не работает. Смотрю пин, а он оказывается работает как выход и на выходе 0 (не "болтается в воздухе", а именно как выход 0).
Думал, что в программе чего-то наворотил, однако ничего такого не нашел, но на всякий случай прошил резервной копией прошивки в которой точно всё работало, однако ничего не изменилось.
Как мне кажется, это произошло после того, как я подключил к программе ASF, стал инициализировать библиотечными функциями источник тактового сигнала (используется внутренний) и "sleep manager". Повторюсь, что возврат к старой прошивке ничего не дал. С момента, как всё точно работало и до момента, как работать перестало в плату ничем не лазил, только программировал.
Есть какие-нибудь идеи? Может кто сталкивался с чем-то похожим? Что можно проверить/попробовать? Не верится, что мог спалить пин, смущает что он как выход работает.
|
|
|
|
05.01.2014, 21:32
|
#2
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,044
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
|
Re: xmega portR неужели спалил?
А просто тупо, в лоб, без всяких АСФ-ов, поморгать светиком на этом пине?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
05.01.2014, 21:48
|
#3
|
Временная регистрация
Регистрация: 08.12.2006
Сообщений: 84
Сказал спасибо: 5
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
Re: xmega portR неужели спалил?
Да пробовал конечно, убрал всё, выводил в порт только единицу, а на выходе всё равно 0.
|
|
|
|
05.01.2014, 22:10
|
#4
|
Временная регистрация
Регистрация: 08.12.2006
Сообщений: 84
Сказал спасибо: 5
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
Re: xmega portR неужели спалил?
Мистика какая-то.
Я сейчас из программы всё убрал, сделал только бесконечный цикл в котором инициализировал пин как выход и устанавливал в нем 1. И, о чудо, единица на выходе появилась. Стал подключать к проекту по очереди различные функции инициализации, всё работает. Вот уже залил проект целиком со всем функционалом, всё работает. Однако, через некоторое время (во время которого ничего не делал вообще), сработала функция, завязанная на эту кнопку, тыкаюсь в порт, а там опять ноль. При этом кнопку я уже отключил, на всякий случай. Отключил питание, включаю снова, работает. Вот уже прошло времени на много больше, чем после первого включения, по прежнему всё ок.
Наверное, плату чистить надо лучше...
|
|
|
|
05.01.2014, 22:14
|
#5
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,044
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
|
Re: xmega portR неужели спалил?
Сообщение от kaf-0
|
Наверное, плату чистить надо лучше...
|
Из-за нечистой платы направленность пина не поменяется, только из-за нечистой программы. Или пятен на солнце, марсе...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
05.01.2014, 22:25
|
#6
|
Временная регистрация
Регистрация: 08.12.2006
Сообщений: 84
Сказал спасибо: 5
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
Re: xmega portR неужели спалил?
Сообщение от akegor
|
Из-за нечистой платы направленность пина не поменяется, только из-за нечистой программы. Или пятен на солнце, марсе...
|
В исходной программе, пин был только подтянут к верху. Не чистая плата могла "опустить" его вниз.
В программе слово "PORTR" используется только в двух местах - в функции инициализации и в функции чтения состояния.
Хотелось бы докопаться до истины, но проблема пока не повторяется.
Действительно, причиной большинства подобных проблем оказывается "кривой" код, но сейчас я уверен на 98% что дело не в нем.
|
|
|
|
05.01.2014, 22:42
|
#7
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
|
Re: xmega portR неужели спалил?
Сообщение от kaf-0
|
Не чистая плата
|
некошерная... религия какая-то у вас. ищите в ПО упоминание на порт в/в и анализируйте. или в хексе-дизассемблере забейте поиск по адресу порта. далее вы знаете, что делать
Последний раз редактировалось jump; 05.01.2014 в 22:45.
|
|
|
|
06.01.2014, 21:12
|
#8
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: xmega portR неужели спалил?
Сообщение от kaf-0
|
В программе слово "PORTR" используется только в двух местах - в функции инициализации и в функции чтения состояния.
|
Могу ошибаться (с xMega никогда не работал). А разве в xMege для чтения состояния используется не PINR?
|
|
|
|
06.01.2014, 21:29
|
#9
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,044
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
|
Re: xmega portR неужели спалил?
Сообщение от kaf-0
|
слово "PORTR"
|
вход на выход не поменяет.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
06.01.2014, 22:27
|
#10
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: xmega portR неужели спалил?
Сообщение от akegor
|
вход на выход не поменяет.
|
Поэтому продолжаем считывать состояние порта, используя PORTR.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:01.
|
|