Страница 1 из 1
Помер МК?
Добавлено: Вс фев 01, 2009 23:19:46
Димуля
Вечер добрый! Хочу спросить? если у меня PIND не отражает реального состояния выводов МК это что: помер МК или как?
ПС: порты настроены на вход, вроде всё как положено.
Добавлено: Пн фев 02, 2009 01:58:01
asteroid7
JTAG-ом проверяете? А если нет, то как?
На другом контроллере пробовали?
А что этот порт на вывод показывает?
Добавлено: Пн фев 02, 2009 20:16:10
Димуля
проверяю с помощью программы - демки - это стартовый набор.
Так вот у меня два набора , с ними работали другие люди, подаю сигнал на ноги портов, а на них совсем другие значения. Написал свою прогу - та же ерунда. в порте Д на пустых ногах - единицы, DDRD = 0x00,
далее, если я случайно разъединяю выводы МК и управляемой схемы под напряжением, велика вероятность что коммутационными токами сожгу вывод?
Добавлено: Пн фев 02, 2009 21:11:46
mackerel
Димуля писал(а):Написал свою прогу - та же ерунда. в порте Д на пустых ногах - единицы, DDRD = 0x00,
DDR - это, конечно, хорошо... А PORT в каком состоянии? Случайно, не 0xFF? Тогда это вход с подтяжкой - т.е. "1" для высокоомных входов (или для осциллографа).
Добавлено: Пн фев 02, 2009 21:19:57
Димуля
mackerel писал(а):
DDR - это, конечно, хорошо... А PORT в каком состоянии? Случайно, не 0xFF? Тогда это вход с подтяжкой - т.е. "1" для высокоомных входов (или для осциллографа).
Спасибо за мысль, завтра посмотрю... Если так, то пойду учить матчасть!
Очень бы хотелось, что бы так - оба комплекта тогда скорее всего целы и не надо перепаивать TQFP64
Добавлено: Пн фев 02, 2009 22:54:16
smac
mackerel писал(а):Димуля писал(а):Написал свою прогу - та же ерунда. в порте Д на пустых ногах - единицы, DDRD = 0x00,
DDR - это, конечно, хорошо... А PORT в каком состоянии? Случайно, не 0xFF? Тогда это вход с подтяжкой - т.е. "1" для высокоомных входов (или для осциллографа).
Даже когда и PORTD=0x00 и DDRD = 0x00, но к выводам контроллера ничего не подключено, то чтение PIND, может дать непредсказуемые результаты. Чтобы быть уверенным в состоянии выводов нужно их дополнительно подтянуть к земле или к + питания через резисторы (например 1 кОм), естественно для того чтобы значения считались правильно порт должен быть настроен как вход. Если порт будет настроен на выход, то независимо о того к чему вы подтянули выход при чтении PIND в нем окажутся те же значения что и в PORTD (естественно если резисторы к которыми вы подтянули выводы к + или земле не слишком низкоомные).
Добавлено: Пн фев 02, 2009 22:54:20
Димуля
блин, освежил про подтягивающие резисторы...
Не сходится, даже если бы PORTX был 0хFF то всё равно не то что-то происходит.
та нога сосотояние которой пытаюсь определить подсоединена к выводу, который при готовности в "0" падает, если бы был поключен подтягивающий - то всё-равно PIND.2 упал бы в ноль...
Добавлено: Пн фев 02, 2009 22:56:30
smac
Димуля писал(а):блин, освежил про подтягивающие резисторы...
Не сходится, даже если бы PORTX был 0хFF то всё равно не то что-то происходит.
та нога сосотояние которой пытаюсь определить подсоединена к выводу, который при готовности в "0" падает, если бы был поключен подтягивающий - то всё-равно PIND.2 упал бы в ноль...
А он действительно падает? Возможности проверить (осциллографом) нет? В общем возможно что и выгорели порты.
Добавлено: Вт фев 03, 2009 00:26:12
mackerel
Осциллограф - это самая лучшая проверка. Собственно, единственно реальная, на мой взгляд. А отсоединить вывод от остальной схемы можно? Если корпус такой, что вывод невозможно "задрать" - дорожку временно перерезать можно. Тогда просто запрограммировать его на выход и сформировать меандр. Осциллографом посмотреть, что там на самом деле. А вообще порты, конечно, выгореть могут, но это если уж очень не повезло. Через мои руки прошли, наверное, сотни МК, с выгоранием портов сталкивался от силы раз - два. Но, ещё раз повторюсь, это возможно.
Добавлено: Вт фев 03, 2009 11:14:34
Димуля
smac, mackerel, спасибо за участие к моей проблеме.
Поясню, МК подключен портом В к приёмопередатчику FRM12, через этот порт производится настройка приёмопередатчика, затем он (FRM12) на одну из СВОИХ ног выставляет сигнал готовности (запрос прерывания), который имеет НИЗКИЙ уровень, всё остальное время этот вывод в ВЫСОКОМ уровне, эта нога подключена к порту D.2 МК... в цикле ожидания низкого уровня на этой ноге (PORTD.2) происходит "зависание" т.е. низкий туда типа не приходит.... НО: я проверил логическим анализатором, всё нормально, видно: и как приходят команды настройки на FRM12 и как через 32 миллисекунды на управляющем выводе "ноль" появляется, всё чин-чинарём, но МК наглухо не видит этот "ноль"!!!!

[/img]
Добавлено: Вт фев 03, 2009 12:24:36
Димуля
smac писал(а):
Даже когда и PORTD=0x00 и DDRD = 0x00, но к выводам контроллера ничего не подключено, то чтение PIND, может дать непредсказуемые результаты. Чтобы быть уверенным в состоянии выводов нужно их дополнительно подтянуть к земле или к + питания через резисторы (например 1 кОм), естественно для того чтобы значения считались правильно порт должен быть настроен как вход
я помню преподаватель по УТС говорил, что свободно висящий вывод имеет наводку до логической единицы.
Добавлено: Вт фев 03, 2009 12:44:08
mackerel
ну, преподаватель оптимист... Свободно висящий вход иногда свободно принимает сигналы местных радиостанций (проверено лично - в своё время слушал "Маяк" (СВ-диапазон) на инверторе. Правда, с мерзким качеством и очень нестабильно).
А по теме: если проверяли логическим анализатором - да, дело, пожалуй, серьёзное. Возможно, действительно входной порт отдал богу душу.

Но я бы ещё раз проверил МК - нужно отрезать дорожку, сконфигурировать вывод как вход, подать что-то меняющееся извне, принятый уровень тут-же перенаправить на другой какой-нибудь порт, заведомо исправный. Ну, и осциллографом или зоологическим анализатором посмотреть. Кстати, источником тестового сигнала может тоже быть собственный исправный порт... Такая вот загогулина...
Добавлено: Вт фев 03, 2009 13:15:59
Димуля
mackerel писал(а):ну, преподаватель оптимист... Свободно висящий вход иногда свободно принимает сигналы местных радиостанций (проверено лично - в своё время слушал "Маяк" (СВ-диапазон) на инверторе. Правда, с мерзким качеством и очень нестабильно).
А по теме: если проверяли логическим анализатором - да, дело, пожалуй, серьёзное. Возможно, действительно входной порт отдал богу душу.

Но я бы ещё раз проверил МК - нужно отрезать дорожку, сконфигурировать вывод как вход, подать что-то меняющееся извне, принятый уровень тут-же перенаправить на другой какой-нибудь порт, заведомо исправный. Ну, и осциллографом или зоологическим анализатором посмотреть. Кстати, источником тестового сигнала может тоже быть собственный исправный порт... Такая вот загогулина...
попробую, у меня в логическом анализаторе и логический генератор есть.
Добавлено: Вт фев 03, 2009 15:51:32
Alexeus
можно легко проверить и без анализатора. просто сделай этот пин входом с подтяжкой, а на другой пин можно этого же порта или другого (портС например) подай циклом (вспоминаем мигание светодиодом) лог. "1", затем лог "0" и т.д. ну и соедини физически проводком входной пин и выходной, заноси значения пинБ в переменную и выводи в терминал ее на ПК, там и увидишь, значение переменной будет циклично иметь два варианта. Можно без ПК, в зависимости от должного занчения переменной просто светодиодом мигать...
Добавлено: Чт фев 05, 2009 19:05:09
Димуля
Всем большое спасибо за участие1
Вердикт - Жжёные порты на МК, причём на обоих....
как теперь менять атмеги64 в TQFP на тартовых наборах?!!!....
Добавлено: Чт фев 05, 2009 19:20:06
МитяРа
Менять - инфракрасным феном...
Добавлено: Чт фев 05, 2009 19:30:18
Димуля
Тёзка, а можно куда -нибудь ссылку про то - как это сделать, если есть такая?
ПС: Тёзка, это юмор был? про ИК станцию?!?!?! она стоит как машина советская!!!
Добавлено: Чт фев 05, 2009 21:31:23
smac
Димуля писал(а):Тёзка, а можно куда -нибудь ссылку про то - как это сделать, если есть такая?
ПС: Тёзка, это юмор был? про ИК станцию?!?!?! она стоит как машина советская!!!
Погодите, не надо ИК станции. Попробуйте просто аккуратно "откусить" корпус МК от выводов, далее тонким паяльником выпаять выводы по одному (ну или по несколько если дорожки замкнуть не боитесь). Затем убираем лишний припой с контактных площадок и ставим новые меги.
Да, когда будете отпаивать старые выводы и припаивать новые МК не перегревайте контактные площадки, они отвалиться могут, особенно ести текстолит плохой.
На этом оффтоп заканчиваем. Паятель.
Добавлено: Пт фев 06, 2009 18:43:10
Димуля
Блин, я ни черта не понимаю!!!!!!!!!!!!
Написал прогу, которая устанавливает порт Б ны выход, порт Д на вход, подтягивающие выключаем на Д, соединил их (Б и Д) побитно между собой шлейфом;
в цикле: в порт Б записываем 0х00 и через 0.2 секунды ПОРТ Б = Порт Б +1, и так до бесконечности...
через порт С подключил ЛСД, на который вывожу (побитово) состояние битов от 7 до 0 порта Д, что вижу:
вижу как на экранчик выводится 00000001, затем 00000010 и т.д. до 11111111, у меня\ в порту Б и соответственно на входе в порт Д всё приходит нормально.
То есть, иными словами, с портом Д всё в порядке. Возвращаюсь к проекту: подключаю к порту Б РФ-чип, проводок с РФ чипа, по которому сигнал готовности приходит привожу на ПИНД.2 = но именно на этой ноге почему-то считывается постоянно "1"!!!!!! подключаю на любую другую ногу - есть "0", т.е готовность!!!
Что за ерунда?!
Добавлено: Сб фев 07, 2009 12:17:26
smac
Димуля писал(а):Блин, я ни черта не понимаю!!!!!!!!!!!!
Написал прогу, которая устанавливает порт Б ны выход, порт Д на вход, подтягивающие выключаем на Д, соединил их (Б и Д) побитно между собой шлейфом;
в цикле: в порт Б записываем 0х00 и через 0.2 секунды ПОРТ Б = Порт Б +1, и так до бесконечности...
через порт С подключил ЛСД, на который вывожу (побитово) состояние битов от 7 до 0 порта Д, что вижу:
вижу как на экранчик выводится 00000001, затем 00000010 и т.д. до 11111111, у меня\ в порту Б и соответственно на входе в порт Д всё приходит нормально.
То есть, иными словами, с портом Д всё в порядке. Возвращаюсь к проекту: подключаю к порту Б РФ-чип, проводок с РФ чипа, по которому сигнал готовности приходит привожу на ПИНД.2 = но именно на этой ноге почему-то считывается постоянно "1"!!!!!! подключаю на любую другую ногу - есть "0", т.е готовность!!!
Что за ерунда?!
Код в студию.