Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: KSZ9021RNI сбрасывает линк
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
BSACPLD
Всем привет!

Подскажите в чём может быть проблема.
Раньше использовали 88E1111 и сними не было никаких проблем, за исключением того, что industrial есть только в BGA.
Решили попробовать KSZ9021 и всё перестало работать.
Как это выглядит:
1. Подаю сброс длительностью 20 мс.
2. Инициализирую следующим образом:
CODE

// soft-AVR для ПЛИС, sbr - установка бит, cbr - сброс бит
// PHY_ADDR1 - адрес PHY, PHY_ID = 0x0022
// rd_mdio_1 - чтение из MDIO, wr_mdio_1 - запись в MDIO

ldi temp, 0b00000011
out PHY_ADDR1, temp

ldi temp_2, 2
rcall rd_mdio_1
ldi temp, high(PHY_ID)
cpi temp_0, low(PHY_ID)
cpc temp_1, temp
breq phy_id_ok_1

ldi temp, 0b00000111
out PHY_ADDR1, temp

ldi temp_2, 2
rcall rd_mdio_1
ldi temp, high(PHY_ID)
cpi temp_0, low(PHY_ID)
cpc temp_1, temp
breq phy_id_ok_1

sbi PORTB, LED

phy_id_ok_1:
ldi temp_2, 0
rcall rd_mdio_1
sbr temp_0, low((1<<12) | (1<<8))
sbr temp_1, high((1<<12) | (1<<8))
cbr temp_0, low((1<<15) | (1<<14) | (1<<13) | (1<<11) | (1<<10) | (1<<9) | (1<<6))
cbr temp_1, high((1<<15) | (1<<14) | (1<<13) | (1<<11) | (1<<10) | (1<<9) | (1<<6))
ldi temp_2, 0
rcall wr_mdio_1

ldi temp_2, 4
rcall rd_mdio_1
sbr temp_0, low((1<<13) | (1<<10) | (1<<8) | (1<<6))
sbr temp_1, high((1<<13) | (1<<10) | (1<<8) | (1<<6))
cbr temp_0, low((1<<15) | (1<<11) | (1<<7) | (1<<5))
cbr temp_1, high((1<<15) | (1<<11) | (1<<7) | (1<<5))
ldi temp_2, 4
rcall wr_mdio_1

ldi temp_2, 5
rcall rd_mdio_1
sbr temp_0, low((1<<10))
sbr temp_1, high((1<<10))
cbr temp_0, low((1<<11))
cbr temp_1, high((1<<11))
ldi temp_2, 5
rcall wr_mdio_1

ldi temp_0, low((1<<9) | (1<<8))
ldi temp_1, high((1<<9) | (1<<8))
ldi temp_2, 9
rcall wr_mdio_1

ldi temp_2, 17
rcall rd_mdio_1
cbr temp_0, low((1<<8)| (1<<3))
cbr temp_1, high((1<<8)| (1<<3))
ldi temp_2, 17
rcall wr_mdio_1

ldi temp_2, 28
rcall rd_mdio_1
cbr temp_0, low((1<<7) | (1<<6) | (1<<0))
cbr temp_1, high((1<<7) | (1<<6) | (1<<0))
ldi temp_2, 28
rcall wr_mdio_1

ldi temp_2, 31
rcall rd_mdio_1
sbr temp_0, low((1<<1))
sbr temp_1, high((1<<1))
ldi temp_2, 31
rcall wr_mdio_1

ldi temp_0, low(0x8100)
ldi temp_1, high(0x8100)
ldi temp_2, 11
rcall wr_mdio_1

ldi temp_0, low((1<<8))
ldi temp_1, high((1<<8))
ldi temp_2, 12
rcall wr_mdio_1

ldi temp_0, low(0x8102)
ldi temp_1, high(0x8102)
ldi temp_2, 11
rcall wr_mdio_1

ldi temp_0, low((1<<15))
ldi temp_1, high((1<<15))
ldi temp_2, 12
rcall wr_mdio_1

ldi temp_0, low(0x8107)
ldi temp_1, high(0x8107)
ldi temp_2, 11
rcall wr_mdio_1

ldi temp_0, low((1<<15))
ldi temp_1, high((1<<15))
ldi temp_2, 12
rcall wr_mdio_1

ldi temp_2, 0
rcall rd_mdio_1
sbr temp_0, low((1<<15))
sbr temp_1, high((1<<15))
ldi temp_2, 0
rcall wr_mdio_1

rcall timer20ms

3. При подключении кабеля к хабу или компьютеру линк устанавливается на 1 секунду, а затем пропадает.
Процесс повторяется периодически.
Линк можно установить только если принудительно выставить 10 Мбит.
Если подключить к старой плате на 88EE1111, то начинает линковаться, но линк периодически пропадает примерно раз в 10 секунд.

Схема включения приведена в 9021.pdf
Первый вариант как на схеме.
Во втором я отпаял резисторы 49,9 Ом.
Третий вариант я сделал как в KSZ9021RN Socket Board Schematic rev1.0.pdf
Ни в одном из вариантов не заработало.
Пробовал перепаивать чипы - не помогло.
На двух платах одно и тоже.
Питание проверил: пульсации < 50 мВ.
Подскажите где косяк, а то уже мозги закипают wacko.gif wacko.gif wacko.gif wacko.gif

P.S. На всякий случай приложил рабочую схему на 88E1111.
P.P.S Разводка рабочей и нерабочей платы почти одинаковая.
b32b
Цитата(BSACPLD @ May 29 2014, 01:47) *
3. При подключении кабеля к хабу или компьютеру линк устанавливается на 1 секунду, а затем пропадает.
Процесс повторяется периодически.
Линк можно установить только если принудительно выставить 10 Мбит.
Если подключить к старой плате на 88EE1111, то начинает линковаться, но линк периодически пропадает примерно раз в 10 секунд.

P.S. На всякий случай приложил рабочую схему на 88E1111.
P.P.S Разводка рабочей и нерабочей платы почти одинаковая.


Стоит посмотреть на разводку линий от чипа к трансформатору, у нас было подобное c DP83695. В случае устройство-комп линк "ретрейнился" иногда бесконечно, на 100Мбит работал как надо. Со свитчом работало лучше. Переразвели выходные цепи к трансформатору, убрали все лишнее рядом - работает как часы, и в несильно зашумленном помехами условиях держит 120 метров на кабеле категории 5-. Тогда как в старом варианте могло упасть и на метровом отрезке.

Поначалу тоже грешили на источники, по статистике становилось немного лучше, но не радикально. Замена кварца также помогала, иногда даже пролечивала.
BSACPLD
Скриншоты старой и новой платы приложил.
Не вижу ничего криминального - расстояние до трансформатора 5 мм.
Насчёт генератора - вполне возможно.
Вместо штатного ASFLMPC запаяли китайский неизвестного производства.
BSACPLD
b32b, спасибо за помощь.
Проблему решил.
Дело было в генераторе.
Пока повесил соплями самопальный генератор на 74AC и резонаторе.
Жду прихода ASFLMPC - по результатам отпишусь.
b32b
Хорошо что заработало sm.gif

Цитата(BSACPLD @ May 29 2014, 02:34) *
Скриншоты старой и новой платы приложил.
Не вижу ничего криминального - расстояние до трансформатора 5 мм.
Насчёт генератора - вполне возможно.
Вместо штатного ASFLMPC запаяли китайский неизвестного производства.


Меня вот смутило следующее:
на мой взгляд мала ширина трасс к трасформатору, и что резисторы подключены через переходные отверстия с обратной стороны платы, возможно есть нарушение импеданса,- резисторы в 49,9 (1%) для его согласования и нужны. Где-то читал что все компоненты (от чипа к RJ45, или того что его заменяет) желательно размещать с одной стороны. С другой стороны небольшое растояние до транса должно устранять проблемы, но лучше посчитать.

И второе - под трансами нельзя располагать никаких трасс - даже земля на выходной части должна быть отрезана. Частично это нужно для изоляции выхода от схемы, и лучшей помехоустойчивости (Наверное вы знаете, но напомню - эзернет на выходе это аналоговая электроника , если что-то нарушается АЦП&DSP в RX может и не отстроиться.

PS Еще вот такой нюанс, возможно он также важен - иногда Micrel упоминают, что кварцы должны быть 3,3В толерансе.
DmitryM
Цитата(b32b @ May 30 2014, 02:47) *
PS Еще вот такой нюанс, возможно он также важен - иногда Micrel упоминают, что кварцы должны быть 3,3В толерансе.


кварцы??? или генератор?
b32b
Цитата(DmitryM @ May 30 2014, 09:00) *
кварцы??? или генератор?

да точно, моя ошибка, 3,3В когда генератор sm.gif
BSACPLD
Цитата(b32b @ May 30 2014, 03:47) *
Меня вот смутило следующее:
на мой взгляд мала ширина трасс к трасформатору, и что резисторы подключены через переходные отверстия с обратной стороны платы, возможно есть нарушение импеданса,- резисторы в 49,9 (1%) для его согласования и нужны. Где-то читал что все компоненты (от чипа к RJ45, или того что его заменяет) желательно размещать с одной стороны. С другой стороны небольшое растояние до транса должно устранять проблемы, но лучше посчитать.

Как оказалось, резисторы не нужны - в 9021 они уже встроены.
Также выяснилось, что средняя точка трансформатора в отличии от большинства стандартных PHY должна подключаться не к питанию, а к земле через конденсатор (как на схеме Micrel'овского кита).
Насчёт ширины трасс - Diff Z0 для 0,15/0,15 равно 105 Ом.
Я думаю, это не сильное рассогласование.

Цитата(b32b @ May 30 2014, 03:47) *
И второе - под трансами нельзя располагать никаких трасс - даже земля на выходной части должна быть отрезана. Частично это нужно для изоляции выхода от схемы, и лучшей помехоустойчивости (Наверное вы знаете, но напомню - эзернет на выходе это аналоговая электроника , если что-то нарушается АЦП&DSP в RX может и не отстроиться.

Красные дорожки отделены от трансформатора слоем земли.
Скорее всего сильных помех от них не должно быть.
Расстояние до развязанных дорожек и КП > 1,8 мм (вроде бы защитное расстояние для 2 кВ равно 1,6 мм).
Особо высоковольтная изоляция конкретно здесь не нужна - данный интерфейс исключительно внутриблочный.

Цитата(b32b @ May 30 2014, 03:47) *
PS Еще вот такой нюанс, возможно он также важен - иногда Micrel упоминают, что кварцы должны быть 3,3В толерансе.

Генератор был 3,3В HCMOS, вот только дрожание фронта было визуально видно на осциллографе.
Как только поставил нормальный генератор дрожание исчезло.

P.S. Раньше нарывался на плохие резонаторы в корпусе 0705 (вообще не запускались).
Теперь, похоже, нарвался на генераторы.
Буду теперь заставлять снабженцев покупать исключительно у БМГ ПЛЮС и Пьезотрона (не сочтите за рекламу).
b32b
джиттер... визуально, все объясняет, он должен быть просто огромным.
BSACPLD
Цитата(b32b @ May 31 2014, 03:55) *
джиттер... визуально, все объясняет, он должен быть просто огромным.

Собственно говоря сами осциллограммы...
Я сам прифигел когда это увидел cranky.gif
BSACPLD
Чтобы не создавать отдельную тему спрошу здесь.

При установлении линка светодиоды, как положено, отображают скорость.
При приёме/передаче пакетов, судя по даташиту светодиоды должны мигать, но по факту они горят непрерывно.
Это баг или есть какие-то особенности их включения?
Схема прилагается.
prig
Цитата(BSACPLD @ Jun 6 2014, 10:58) *
...
Это баг или есть какие-то особенности их включения?
...

Если какие-либо особенности явно не описаны в документации, можно смело считать багом.
В доке об этом ни слова. Если пакеты проходят, а светодиоды не моргают, это явно аномальное поведение.

Микрелу ещё один минус.
BSACPLD
Цитата(prig @ Jun 6 2014, 16:13) *
Если какие-либо особенности явно не описаны в документации, можно смело считать багом.
В доке об этом ни слова. Если пакеты проходят, а светодиоды не моргают, это явно аномальное поведение.

Микрелу ещё один минус.

Пакеты проходят нормально.
Похоже, что действительно баг.
Интересно, у новых 9031 всё точно также?
Надо будет купить попробовать... Они вроде бы pin-to-pin.

P.S.
Нашёл ещё один глюк. При передаче In-Band status за один такт до выставления RX_DV вместо статусной информации выдаётся 0xFF.
BSACPLD
Привезли ASFLMPC.
Всё работает нормально.
В общем, я на собственном опыте убедился, что нужно внимательно относиться к выбору генераторов. sm.gif
b32b
Это точно,- причина проблем №2, после контактов sm.gif
flamigo
Добрый день. Использую микросхему KSZ9021. По MII устанавливается режим 100Mb-full duplex (загораются соответствующие светодиоды ). Как я понял, сигналы RX_CLK и TX_CLK формирует сама микросхема. RX_CLK присутствует - 25 МГц, сигнал аналогичный, подаваемому на вход XI(см. рисунок). TX_CLK отсутствует. Подскажите пожалуйста, в чем может быть проблема.
radius
Добрый день! Кто использует KSZ9021RL посмотрите пожалуйста длительность импульса LINK (сетевой кабель отключен) обычно он 100 нс. У меня импульс 500 нс. И какая частота идет по RX_CLK? У меня 6,5 МГц, вроде бы должна быть 25 МГц. Микросхема не связывается ни с одним устройством. Если ставлю заглушку, то микросхема по прежнему продолжает выдавать сигнал LINK.
radius
Цитата(radius @ Mar 17 2015, 17:25) *
Добрый день! Кто использует KSZ9021RL посмотрите пожалуйста длительность импульса LINK (сетевой кабель отключен) обычно он 100 нс. У меня импульс 500 нс. И какая частота идет по RX_CLK? У меня 6,5 МГц, вроде бы должна быть 25 МГц. Микросхема не связывается ни с одним устройством. Если ставлю заглушку, то микросхема по прежнему продолжает выдавать сигнал LINK.

Проблема решена. Монтажник перепутал и вместо 4,99 кОм запаял 49,9 кОм.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.