Jump to content
    

KSZ9031RNX, странное поведение rx_ctl

Всем привет!

1GbE PHY KSZ9031RNX, подключен к Zynq-7000 PL посредством RGMII (там другого варианта и нет), приходит фрейм, при этом на rx_ctl во время поступления фрейма торчит лог. 1 -- такой красивый прямоугольный импульс получается. Т.к. там DDR интерфейс, то на этом сигнале попеременно должны присутствовать rxdv (по фронту) и rxer (по спаду). Т.е. если ошибок нет, то там должен быть меандр, а не импульс. При этом смотрю содержимое фрейма (захватываю ILA), всё приходит корректно, ошибок нет.

Вопрос: это аномальное поведение данного PHY или так и должно быть, а я просто чего-то не понимаю?

И попутно ещё вопрос: в доке на эту микросхему сказано, что по пути Tx она никаких сдвигов между данными клоком не делает, что это ответственность MAC -- добавить сдвиг порядка 2 нс или реализовать эту задержку на печатной плате. Есть ещё вариант внутри PHY подкорректировать до 1.38 нс, но я не стал этого делать, оно вполне несложно реализуется в FPGA. И вот не работает передача: тайминги вроде верные -- смотрю на пинах PHY, сдвиг клока ровно четверть периода, а на хосте не ловится. Включал loopback по линии, это работает, т.е. с кабелем и физикой всё в порядке.

Возникает подозрение, нет ли тут какой-нить особенности или бага (хотя ерату просмотрел внимательно на два раза, ничего на эту тему не увидел)? Может кто-нибудь сталкивался?

Share this post


Link to post
Share on other sites

По линии RX_CTL по второму фронту передается не чистый RX_ER, а RX_DV xor RX_ER. Поэтому при отсутствии ошибок будет большой прямоугольник. К TX_ER это тоже относится. Если Вы передаете на TX_CTL меандр, то это воспринимается физикой как ошибка и она не будет ничего передавать.

Share this post


Link to post
Share on other sites

10 часов назад, Alex11 сказал:

По линии RX_CTL по второму фронту передается не чистый RX_ER, а RX_DV xor RX_ER. Поэтому при отсутствии ошибок будет большой прямоугольник. К TX_ER это тоже относится. Если Вы передаете на TX_CTL меандр, то это воспринимается физикой как ошибка и она не будет ничего передавать.

Вот спасибо вам! Поправил, сразу взлетело. А где это описано? Это требование спеки на RGMII или это особенность данного PHY? Я внимательно читал доки и сопутствующие материалы, нигде ничего подобного не попалось, везде рисуют одинаково:

image.thumb.png.bfaafa468803ad3b24eebc893966c348.png

безо всяких xor. И в доке на сам PHY, и в интернетах не попадается. Если гуглить целенаправленно, то можно найти об этом упоминания (https://en.wikipedia.org/wiki/Media-independent_interface), хотя ссылка сама по себе не особо релевантная для RGMII (там обо всех MII), но и только. Пытался найти саму оригинальную спеку, но ничего не попадается -- всякий левый шлак.

Правда, в одном месте было txerr = txen xor txer. Возможно, поэтому на картинке так -- картинку таскают, а сопутствующий текст, видимо, нет.

Share this post


Link to post
Share on other sites

5 часов назад, dxp сказал:

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

https://web.archive.org/web/20110609013812/http://www.hp.com/rnd/pdfs/RGMIIv2_0_final_hp.pdf

RGMIIv2_0_final_hp.pdf

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...