Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: KS8851SNL - странности при приеме
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
b32b
чип, работает на прием со страанностями, точнее совсем неправильно работает - прерывания генерятся, отсчитывается положенное число байт из пакета, но они не читаются из QMU RX FIFO буфера - одни 0х00. И вот что странно
регистр теста BIST выдает 0x1001,- тест буфера TX выполнен успешно, в очереди RX зарегистрирована одна ошибка, и тест похоже не завершен поскольку нет ни подтверждения ошибки теста ни его успешного выполнения.

При всем при этом RXFHSR = 0x8101 - Valid Frame и Frame CRC Error.
Само количество байт в пакете считывается верно, для тестового фрейма.
И не работает автоинкремент при считывании - если фреймы не дропать, очередь забивается, и все останавливается sm.gif

Вот такая штука, вроде все перепробовали - питание 3.3В заводили внешнее (только что с LDO), конденсаторы также меняли.

Может кто сталкивался с подобным? думал 1Gbit/s сделать сложно, ан нет 100 не проще оказалось sm.gif
dimka76
Посмотрите приложенные файлы.
В них пошагавая инструкция по работе с микросхемой и пример кода программы.
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
b32b
Цитата(dimka76 @ May 29 2014, 08:27) *
Посмотрите приложенные файлы.
В них пошагавая инструкция по работе с микросхемой и пример кода программы.
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла


Спасибо, эти файлы у нас уже есть, просмотрели еще раз, вобщем грешим на саму партию чипов. Хотя и для ревизии A3T это выглядит странно.
Запитали от внешнего питания,- и 3.3В и 1.8В. Но RX QMU по прежнему выдает одну ошибку, с не завершенностью теста:
CODE
/*
* Memory BIST Info Register (MBIR).
*/
#define MEMORY_BIST_INFO_REG 0x24 // Memory BIST Info Register (MBIR).
#define TX_MEM_BIST_FINIS 0x1000 // TXMBF TX Memory BIST (Built In Self Test) Finish.
#define TX_MEM_BIST_FAIL 0x0800 // TXMBFA TX Memory BIST Fail.
#define TX_MEM_BIST_FAIL_CNT 0x0700 // TXMBFC TX Memory BIST Fail Count Mask.
#define RX_MEM_BIST_FINISH 0x0010 // RXMBF RX Memory BIST Finish.
#define RX_MEM_BIST_FAIL 0x0008 // RXMBFA RX Memory BIST Fail.
#define RX_MEM_BIST_FAIL_CNT 0x0007 // RXMBFC RX Memory BIST Fail Count Mask.

значение при первом же прочтении регистра 0x1001

Сейчас поменяем кварц, на 3й.
И уже заказали мелкую партию чипов у другого поставщика.
b32b
"О май гад!"
BIST = 0x1010 ...
логический &&
вместо нормального бинарного "&"
iosifk
Цитата(b32b @ May 30 2014, 14:36) *
И уже заказали мелкую партию чипов у другого поставщика.

А у кого брали?
b32b
Цитата(iosifk @ May 30 2014, 16:08) *
А у кого брали?


Чипы похоже в норме - MAC фильтр работает как надо, и по адресу и по мультикасту,- видимо ошибку в коде не вижу.
Сейчас буду рыть sm.gif

Чипы покупали год назад в числе прочего, точно не уверен, кажется это был маузер.

PS. Все читается и из памяти, всем спасибо за помощь. Осталось выяснить почему иногда байты не те, чаще всего получаю флаг
RXFT. (Receive Frame Type (is Ethernet type frame > 1500 bytes), и это на 60 байтовом пакете - убрал его контроль, вышел на новый уровень непонимания sm.gif
dimka76
Цитата(b32b @ May 31 2014, 01:48) *
Осталось выяснить почему иногда байты не те, чаще всего получаю флаг
RXFT. (Receive Frame Type (is Ethernet type frame > 1500 bytes), и это на 60 байтовом пакете - убрал его контроль, вышел на новый уровень непонимания sm.gif


Я тоже об это споткнулся.
Здесь контролируется поле EtherType в MAC-header. А оно может восприниматься по-разному: либо как EtherType в сетях Ethernet II, либо как length в сетях IEEE 802.3.
Для всяких там ARP и IP протоколов используется как раз EtherType, которое вснгда больше 0x0800, вот он и ругается флагом RXFT.
BSACPLD
В приложенных файлах инструкция версии 1.4.
Там есть ошибка, только какая я уже не помню.
Возьмите инструкцию версии 1.3 - там однозначно всё правильно.
Ещё также прилагаю свой код для чтения 8851.
b32b
Всем спасибо, все работает, извините, что не отвечал долго

Цитата(dimka76 @ Jun 8 2014, 13:41) *
Я тоже об это споткнулся.
Здесь контролируется поле EtherType в MAC-header. А оно может восприниматься по-разному: либо как EtherType в сетях Ethernet II, либо как length в сетях IEEE 802.3.
Для всяких там ARP и IP протоколов используется как раз EtherType, которое вснгда больше 0x0800, вот он и ругается флагом RXFT.


Это, похоже на микрел,- легкие неточности в документации fman.gif

Цитата(BSACPLD @ Jun 8 2014, 19:47) *
В приложенных файлах инструкция версии 1.4.
Там есть ошибка, только какая я уже не помню.
Возьмите инструкцию версии 1.3 - там однозначно всё правильно.
Ещё также прилагаю свой код для чтения 8851.


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

ЗЫ собственно чип нормальный, только качество описания хромает, и иногда на обе левые ноги sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.