|
|
  |
Назначение ETH_MMCRFCECR |
|
|
|
Feb 6 2017, 13:38
|
Местный
  
Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041

|
Доброго времени суток!
Вопрос возможно идиотский, я не силен в сетевых делах. Поднял на моей железке (stm32f429 + ksz8721) tcp-стек (FreeRTOS+TCP) и запустил обычный пинг с большой длинной (1460). Обнаружил, что иногда ответ на ping просто не приходит (происходит ошибка таймаута, а в wireshark не видно никакого ответа, даже битого). Это происходит редко скажем на 1000 запросов один таймаут. Долго мучался искал ошибку в драйвере. Когда отчаялся подумал, может ошибка не софтовая, тогда вывел значения регистра ETH_MMCRFCECR (Ethernet MMC received frames with CRC error counter register) и выяснил, что его значение постепенно увеличивается. Вот только таймаутов больше, чем значение в этом регистре (например этот счетчик натикал 131, а таймаутов 160). Но этот счетчик стабильно увеличивается и, если это можно так назвать, "коррелирует" с количеством таймаутов. Сейчас моя железка соединена с ноутбуком "напрямую". На ноуте в wireshark'е я не вижу входящих фреймов с битым crc, но если я правильно понимаю это отрабатывается уровнем ниже, поэтому я и не увижу ничего.
Правильно ли я понимаю, что увеличивающийся ETH_MMCRFCECR сигнализирует о входящий фреймах с битым CRC, что косвенно указывает на аппаратный "недуг"?
|
|
|
|
|
Feb 6 2017, 20:37
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(yanvasiij @ Feb 6 2017, 21:24)  Кварц достаточно точный, марку смогу назвать только завтра, точнее это даже не кварц а мемс-генератор на 50 МГц (у нас RMII). Кстати, недавно по ошибке впаял MEMS вместо TCXO. Были чудеса. Но это был внешний PLL в качестве генератора тона. Надеюсь, MEMS годится для Ethernet PHY, но я бы погуглил. Цитата(yanvasiij @ Feb 6 2017, 21:24)  А по поводу тактирования физики: в случае с внешним кварцем разве есть тактирование от процессора? Или я чего то не понял? Можно тактировать МК от кварца и использовать его PLL для создания тактовой для Ethernet PHY. При таком варианте возможны проблемы.
|
|
|
|
|
Feb 7 2017, 16:11
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 6-01-09
Пользователь №: 42 957

|
Обычно в таких связках максимальная длина IP пакета по умолчанию 570 с чем то байт. Вы ничего не меняли в этих настройках ?
|
|
|
|
|
Feb 12 2017, 17:52
|
Местный
  
Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041

|
Цитата(Ноль с переносом @ Feb 7 2017, 21:11)  Обычно в таких связках максимальная длина IP пакета по умолчанию 570 с чем то байт. Вы ничего не меняли в этих настройках ? Я настроил максимальную длинну на 1460, я имею ввиду настройки DMA дескрипторов. Думаете в этом дело? Завтра попробую изменить. И еще, в попытке прояснить ситуацию сделал следующее на машине с linux запустил интенсивный пинг (моя плата соединена с ней прямым кабелем напрямую) и при помощи ПО ethtool (под win я не нашел ничего подобного) заглянул в статистику. Выяснил, что linux-машина тоже ловит пакеты с битым CRC. После этого взял другую борду (stm32f429 discovery) с другой физикой, поднял на ней простой проект, и запинговал аналогичным образом. Пакетов с битым CRC linux в этом случае не обнаружил. Очень похоже на что-то аппаратное, но не уверен.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|