Перейти к содержанию
    

SAME70Q21 rev.B - GMAC не работает на TX

Всем доброго времени суток!

Я вынужден просить у сообщества помощи, так как уже вторую неделю идет борьба, и прогресса в этой борьбе пока не видно.

Суть проблемы.

1.Есть отладка  ATSAME70-XPLD, процессор SAME70Q21 rev.A. Есть код, построенный на основе переработанного примера <Basic HTTP web server using the lwIP TCP/IP stack Raw API in standalone mode (i.e. without RTOS support). [lwIP TCP/IP Stack basic HTTP example using Raw API - SAME70-XPLD - ATSAME70Q21B]>. На отладочной плате мой код и Ethernet работает нормально, проблем нет.

2.Сделал свой модуль в формате ddr2-планки. На нем процессор тот же, но в bga-корпусе и ревизия B - SAME70Q21 rev.B. Запускаю постепенно свою плату. Программируется нормально, светодиодики моргают, но вот Ethernet - GMAC, упорно не работает на TX. На RX проблем нет, пакеты принимаются верно. Инициализация сети проходит, пишет, что 100МБит. Но TX-а нет, хоть убейся о стену. Проверено следующее:

- электрически подключено все правильно, контакт есть - припаялось нормально. Тестировал выводы проца определяя их как GPIO. Сигналы на PHY  - KSZ8081RNA проходят, и куда надо.

- KSZ8081RNA перепаял, результата нет

- MDIO работает, регистры KSZ8081RNA читаются и пишутся

- перевел KSZ8081RNA в аналоговый loopback - в вайршарке пакеты от компа стали дублироваться. Значит аналоговая часть - KSZ8081RNA и HALO-разъем работают нормально. На ATSAME70-XPLD этот тест ведет себя идентично.

- на KSZ8081RNA.TXEN всегда = 0, (через GPIO шевелился без проблем) поэтому стал смотреть процессор. Железо вроде в порядке.

- периферия подключена верно, регистры выбора периферии записаны верно. К тому же MDIO работает, значит хотя бы один выход GMAC на OUT настроился.

- защита записи в GPIO снята - PIO_WPMR = 0x50494F00, значения регистров управления периферией меняются как надо

- клок на GMAC выбран.

- сравнивал дампы памяти (области регистров GMAC) ATSAME70-XPLD и моей платы. Различий критичных не обнаружил.

- errat-у микрочипа читал, на эту тему там проблем не описано. Страшный документ - у них там косяк на косяке...

 

Еще раз повторю, что один и тот же код на ATSAME70-XPLD работает, а на моей плате нет.

ВОПРОС. Не сталкивался ли кто с похожей проблемой? Не в ревизии ли "B" процессора дело? Уже идет вторая неделя половых сношений, а результата все нет... Кто-нибудь работал с этим процессором ревизии "B", все ли было в порядке? На фото хорошо виден проц.

 

Буду признателен за любую помощь!

atsame70q21_module.JPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С этим МК не довелось работать, но есть идеи.

 

2 часа назад, SergeyPro сказал:

- MDIO работает, регистры KSZ8081RNA читаются и пишутся

Вы сами все регистры пишете? Обычно множество функций определяется внешней аппаратной обвязкой PHY. Есть уверенность, что в регистрах автосогласования и выбора режима дуплекса выставлены правильные значения?

 

2 часа назад, SergeyPro сказал:

- сравнивал дампы памяти (области регистров GMAC) ATSAME70-XPLD и моей платы. Различий критичных не обнаружил.

А откуда взялись некритичные отличия при одинаковом софте?

А если сравнить дампы всех регистров в PHY?

 

Вангую, что схема разводки PHY-уровня все-таки немного отличается от отладочной платы. И где-то из-за этого принудительно отключен режим выбора полного дуплекса. Кстати, что говорят параметры сетевой карты при подключении к двум девайсам? Скорость и режим дуплекса разные? Одинаковые?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

36 minutes ago, Arlleex said:

С этим МК не довелось работать, но есть идеи.

 

Вы сами все регистры пишете? Обычно множество функций определяется внешней аппаратной обвязкой PHY. Есть уверенность, что в регистрах автосогласования и выбора режима дуплекса выставлены правильные значения?

 

А откуда взялись некритичные отличия при одинаковом софте?

А если сравнить дампы всех регистров в PHY?

 

Вангую, что схема разводки PHY-уровня все-таки немного отличается от отладочной платы. И где-то из-за этого принудительно отключен режим выбора полного дуплекса. Кстати, что говорят параметры сетевой карты при подключении к двум девайсам? Скорость и режим дуплекса разные? Одинаковые?

Сетевуха компа определяет верно 100МБит. У меня от микропроцессора на TX тихо - KSZ8081RNA.TXEN всегда = 0. И бит завершения передачи не выставляется, что-то вроде повисшей DMA транзакции. Клок для GMAC включен. Такое ощущение, что где-то или клока нет, или Enable какого-то. Что-то нужно  еще включить... Но только где?

Изменено пользователем SergeyPro

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выяснил, что это 100% программная проблема. При заливке примера без использования lwip - "GMAC example for SAM" плата успешно пингуется. Разбираюсь с софтом.

 

 

image.png

Изменено пользователем SergeyPro

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...