ПС: порты настроены на вход, вроде всё как положено.
Помер МК?
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
Вечер добрый! Хочу спросить? если у меня PIND не отражает реального состояния выводов МК это что: помер МК или как?
ПС: порты настроены на вход, вроде всё как положено.
ПС: порты настроены на вход, вроде всё как положено.
- Реклама
- Сообщения: 703
- Зарегистрирован: Вс янв 18, 2009 21:12:49
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
проверяю с помощью программы - демки - это стартовый набор.
Так вот у меня два набора , с ними работали другие люди, подаю сигнал на ноги портов, а на них совсем другие значения. Написал свою прогу - та же ерунда. в порте Д на пустых ногах - единицы, DDRD = 0x00,
далее, если я случайно разъединяю выводы МК и управляемой схемы под напряжением, велика вероятность что коммутационными токами сожгу вывод?
Так вот у меня два набора , с ними работали другие люди, подаю сигнал на ноги портов, а на них совсем другие значения. Написал свою прогу - та же ерунда. в порте Д на пустых ногах - единицы, DDRD = 0x00,
далее, если я случайно разъединяю выводы МК и управляемой схемы под напряжением, велика вероятность что коммутационными токами сожгу вывод?
- Сообщения: 70
- Зарегистрирован: Пт янв 30, 2009 18:02:40
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
Спасибо за мысль, завтра посмотрю... Если так, то пойду учить матчасть!mackerel писал(а): DDR - это, конечно, хорошо... А PORT в каком состоянии? Случайно, не 0xFF? Тогда это вход с подтяжкой - т.е. "1" для высокоомных входов (или для осциллографа).
Очень бы хотелось, что бы так - оба комплекта тогда скорее всего целы и не надо перепаивать TQFP64
- Реклама
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
Даже когда и PORTD=0x00 и DDRD = 0x00, но к выводам контроллера ничего не подключено, то чтение PIND, может дать непредсказуемые результаты. Чтобы быть уверенным в состоянии выводов нужно их дополнительно подтянуть к земле или к + питания через резисторы (например 1 кОм), естественно для того чтобы значения считались правильно порт должен быть настроен как вход. Если порт будет настроен на выход, то независимо о того к чему вы подтянули выход при чтении PIND в нем окажутся те же значения что и в PORTD (естественно если резисторы к которыми вы подтянули выводы к + или земле не слишком низкоомные).mackerel писал(а):DDR - это, конечно, хорошо... А PORT в каком состоянии? Случайно, не 0xFF? Тогда это вход с подтяжкой - т.е. "1" для высокоомных входов (или для осциллографа).Димуля писал(а):Написал свою прогу - та же ерунда. в порте Д на пустых ногах - единицы, DDRD = 0x00,
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
блин, освежил про подтягивающие резисторы...
Не сходится, даже если бы PORTX был 0хFF то всё равно не то что-то происходит.
та нога сосотояние которой пытаюсь определить подсоединена к выводу, который при готовности в "0" падает, если бы был поключен подтягивающий - то всё-равно PIND.2 упал бы в ноль...
Не сходится, даже если бы PORTX был 0хFF то всё равно не то что-то происходит.
та нога сосотояние которой пытаюсь определить подсоединена к выводу, который при готовности в "0" падает, если бы был поключен подтягивающий - то всё-равно PIND.2 упал бы в ноль...
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
А он действительно падает? Возможности проверить (осциллографом) нет? В общем возможно что и выгорели порты.Димуля писал(а):блин, освежил про подтягивающие резисторы...
Не сходится, даже если бы PORTX был 0хFF то всё равно не то что-то происходит.
та нога сосотояние которой пытаюсь определить подсоединена к выводу, который при готовности в "0" падает, если бы был поключен подтягивающий - то всё-равно PIND.2 упал бы в ноль...
- Сообщения: 70
- Зарегистрирован: Пт янв 30, 2009 18:02:40
Осциллограф - это самая лучшая проверка. Собственно, единственно реальная, на мой взгляд. А отсоединить вывод от остальной схемы можно? Если корпус такой, что вывод невозможно "задрать" - дорожку временно перерезать можно. Тогда просто запрограммировать его на выход и сформировать меандр. Осциллографом посмотреть, что там на самом деле. А вообще порты, конечно, выгореть могут, но это если уж очень не повезло. Через мои руки прошли, наверное, сотни МК, с выгоранием портов сталкивался от силы раз - два. Но, ещё раз повторюсь, это возможно.
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
smac, mackerel, спасибо за участие к моей проблеме.
Поясню, МК подключен портом В к приёмопередатчику FRM12, через этот порт производится настройка приёмопередатчика, затем он (FRM12) на одну из СВОИХ ног выставляет сигнал готовности (запрос прерывания), который имеет НИЗКИЙ уровень, всё остальное время этот вывод в ВЫСОКОМ уровне, эта нога подключена к порту D.2 МК... в цикле ожидания низкого уровня на этой ноге (PORTD.2) происходит "зависание" т.е. низкий туда типа не приходит.... НО: я проверил логическим анализатором, всё нормально, видно: и как приходят команды настройки на FRM12 и как через 32 миллисекунды на управляющем выводе "ноль" появляется, всё чин-чинарём, но МК наглухо не видит этот "ноль"!!!!
[/img]
Поясню, МК подключен портом В к приёмопередатчику FRM12, через этот порт производится настройка приёмопередатчика, затем он (FRM12) на одну из СВОИХ ног выставляет сигнал готовности (запрос прерывания), который имеет НИЗКИЙ уровень, всё остальное время этот вывод в ВЫСОКОМ уровне, эта нога подключена к порту D.2 МК... в цикле ожидания низкого уровня на этой ноге (PORTD.2) происходит "зависание" т.е. низкий туда типа не приходит.... НО: я проверил логическим анализатором, всё нормально, видно: и как приходят команды настройки на FRM12 и как через 32 миллисекунды на управляющем выводе "ноль" появляется, всё чин-чинарём, но МК наглухо не видит этот "ноль"!!!!
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
я помню преподаватель по УТС говорил, что свободно висящий вывод имеет наводку до логической единицы.smac писал(а): Даже когда и PORTD=0x00 и DDRD = 0x00, но к выводам контроллера ничего не подключено, то чтение PIND, может дать непредсказуемые результаты. Чтобы быть уверенным в состоянии выводов нужно их дополнительно подтянуть к земле или к + питания через резисторы (например 1 кОм), естественно для того чтобы значения считались правильно порт должен быть настроен как вход
- Сообщения: 70
- Зарегистрирован: Пт янв 30, 2009 18:02:40
ну, преподаватель оптимист... Свободно висящий вход иногда свободно принимает сигналы местных радиостанций (проверено лично - в своё время слушал "Маяк" (СВ-диапазон) на инверторе. Правда, с мерзким качеством и очень нестабильно).
А по теме: если проверяли логическим анализатором - да, дело, пожалуй, серьёзное. Возможно, действительно входной порт отдал богу душу.
Но я бы ещё раз проверил МК - нужно отрезать дорожку, сконфигурировать вывод как вход, подать что-то меняющееся извне, принятый уровень тут-же перенаправить на другой какой-нибудь порт, заведомо исправный. Ну, и осциллографом или зоологическим анализатором посмотреть. Кстати, источником тестового сигнала может тоже быть собственный исправный порт... Такая вот загогулина...
А по теме: если проверяли логическим анализатором - да, дело, пожалуй, серьёзное. Возможно, действительно входной порт отдал богу душу.
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
попробую, у меня в логическом анализаторе и логический генератор есть.mackerel писал(а):ну, преподаватель оптимист... Свободно висящий вход иногда свободно принимает сигналы местных радиостанций (проверено лично - в своё время слушал "Маяк" (СВ-диапазон) на инверторе. Правда, с мерзким качеством и очень нестабильно).
А по теме: если проверяли логическим анализатором - да, дело, пожалуй, серьёзное. Возможно, действительно входной порт отдал богу душу.Но я бы ещё раз проверил МК - нужно отрезать дорожку, сконфигурировать вывод как вход, подать что-то меняющееся извне, принятый уровень тут-же перенаправить на другой какой-нибудь порт, заведомо исправный. Ну, и осциллографом или зоологическим анализатором посмотреть. Кстати, источником тестового сигнала может тоже быть собственный исправный порт... Такая вот загогулина...
- Сообщения: 690
- Зарегистрирован: Вс мар 04, 2007 01:17:12
можно легко проверить и без анализатора. просто сделай этот пин входом с подтяжкой, а на другой пин можно этого же порта или другого (портС например) подай циклом (вспоминаем мигание светодиодом) лог. "1", затем лог "0" и т.д. ну и соедини физически проводком входной пин и выходной, заноси значения пинБ в переменную и выводи в терминал ее на ПК, там и увидишь, значение переменной будет циклично иметь два варианта. Можно без ПК, в зависимости от должного занчения переменной просто светодиодом мигать...
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
Погодите, не надо ИК станции. Попробуйте просто аккуратно "откусить" корпус МК от выводов, далее тонким паяльником выпаять выводы по одному (ну или по несколько если дорожки замкнуть не боитесь). Затем убираем лишний припой с контактных площадок и ставим новые меги.Димуля писал(а):Тёзка, а можно куда -нибудь ссылку про то - как это сделать, если есть такая?
ПС: Тёзка, это юмор был? про ИК станцию?!?!?! она стоит как машина советская!!!
Да, когда будете отпаивать старые выводы и припаивать новые МК не перегревайте контактные площадки, они отвалиться могут, особенно ести текстолит плохой.
На этом оффтоп заканчиваем. Паятель.
- Сообщения: 53
- Зарегистрирован: Сб ноя 29, 2008 21:07:04
Блин, я ни черта не понимаю!!!!!!!!!!!!
Написал прогу, которая устанавливает порт Б ны выход, порт Д на вход, подтягивающие выключаем на Д, соединил их (Б и Д) побитно между собой шлейфом;
в цикле: в порт Б записываем 0х00 и через 0.2 секунды ПОРТ Б = Порт Б +1, и так до бесконечности...
через порт С подключил ЛСД, на который вывожу (побитово) состояние битов от 7 до 0 порта Д, что вижу:
вижу как на экранчик выводится 00000001, затем 00000010 и т.д. до 11111111, у меня\ в порту Б и соответственно на входе в порт Д всё приходит нормально.
То есть, иными словами, с портом Д всё в порядке. Возвращаюсь к проекту: подключаю к порту Б РФ-чип, проводок с РФ чипа, по которому сигнал готовности приходит привожу на ПИНД.2 = но именно на этой ноге почему-то считывается постоянно "1"!!!!!! подключаю на любую другую ногу - есть "0", т.е готовность!!!
Что за ерунда?!
Написал прогу, которая устанавливает порт Б ны выход, порт Д на вход, подтягивающие выключаем на Д, соединил их (Б и Д) побитно между собой шлейфом;
в цикле: в порт Б записываем 0х00 и через 0.2 секунды ПОРТ Б = Порт Б +1, и так до бесконечности...
через порт С подключил ЛСД, на который вывожу (побитово) состояние битов от 7 до 0 порта Д, что вижу:
вижу как на экранчик выводится 00000001, затем 00000010 и т.д. до 11111111, у меня\ в порту Б и соответственно на входе в порт Д всё приходит нормально.
То есть, иными словами, с портом Д всё в порядке. Возвращаюсь к проекту: подключаю к порту Б РФ-чип, проводок с РФ чипа, по которому сигнал готовности приходит привожу на ПИНД.2 = но именно на этой ноге почему-то считывается постоянно "1"!!!!!! подключаю на любую другую ногу - есть "0", т.е готовность!!!
Что за ерунда?!
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
Код в студию.Димуля писал(а):Блин, я ни черта не понимаю!!!!!!!!!!!!
Написал прогу, которая устанавливает порт Б ны выход, порт Д на вход, подтягивающие выключаем на Д, соединил их (Б и Д) побитно между собой шлейфом;
в цикле: в порт Б записываем 0х00 и через 0.2 секунды ПОРТ Б = Порт Б +1, и так до бесконечности...
через порт С подключил ЛСД, на который вывожу (побитово) состояние битов от 7 до 0 порта Д, что вижу:
вижу как на экранчик выводится 00000001, затем 00000010 и т.д. до 11111111, у меня\ в порту Б и соответственно на входе в порт Д всё приходит нормально.
То есть, иными словами, с портом Д всё в порядке. Возвращаюсь к проекту: подключаю к порту Б РФ-чип, проводок с РФ чипа, по которому сигнал готовности приходит привожу на ПИНД.2 = но именно на этой ноге почему-то считывается постоянно "1"!!!!!! подключаю на любую другую ногу - есть "0", т.е готовность!!!
Что за ерунда?!



