Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дерганье ногой AT91SAM9XE512 по Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
wayfarer_lex
Доброго времени суток форумчане!
Имеется следующая проблема. Разрабатываю stand-alone приложение под процессор AT91SAM9XE512, компилятор и IDE - IAR Embedded Workbench версия 6.21.1.2846.
Реализовал свой стек протоколов TCP/IP + целевое приложение, имеющийся uIP не устраивал по производительности.
Но наткнулся на следующую проблему. При принятии входящего пакета мне необходимо сформировать отрицательный строб пином.
В процессе отладки наткнулся на то, что строб формируется "через раз". Запись в регистр PIO происходит успешно и вычитываю я корректное значение регистров статуса, но физически строб отсутствует в 10% случаев (выход пина смотрю осциллографом).
Разворотил весь проект, минимизировал всю задействованную перефирию, картина осталась неизменная... Формирование строба я перенес непосредственно в обработчик прерывания EMAC.

Прилагаю архив с минимизированным проектом, который демонстрирует бяку, под IAR.
Поскольку все протоколы стека TCP/IP я срезал, для проверки генерации строба по сети я использовал следующий способ:
1. на клиентском компьютере заношу в ARP-таблицу статическую запись соответствующую плате(консольная команда под Win):
arp -s 192.168.2.136 00-45-56-78-9a-bc
2. далее для формирования одиночного строба использую команду ping. Со стороны платы - упрощенный приемник ICMP пакетов (echo-request), который по пришествии пакета формирует строб на нужном пине. Команда:
ping 192.168.2.136 -n 1 -w 5

Поставив щуп осциллографа на пин наблюдаю описанную выше картину... в чудеса не верю, по крайней мере в этом контексте))

Прошу помощи, может быть кто-то сталкивался с подобной бякой.
kovigor
Цитата(wayfarer_lex @ May 21 2012, 22:28) *
Поставив щуп осциллографа на пин наблюдаю описанную выше картину... в чудеса не верю, по крайней мере в этом контексте))

Прошу помощи, может быть кто-то сталкивался с подобной бякой.


Надеюсь, осциллограф включен в ждущий режим ? И еще. У этого МК некоторые пины имеют особенности в виде пониженного до 1.8В питания, и, возможно, ОК. Это не ваш случай ? Есть еще совсем простые причины - подгоревшая ножка, обрыв или трещинка в печатном проводнике, незапаянный земляной или питающий вывод, ножка не настроена на работу в роли GPIO. А если использовать другую ножку, тоже так будет ?
wayfarer_lex
Мдя.... я балбес... дело было именно в режиме осциллографа... Как стыдно.... blush.gif прошу прощения за беспокойство и спасибо за совет!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.