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

Eth Switch KSZ8895FQX не загружается с EEPROM

Добрый день! Просьба помочь в такой ситуации:

Разведена и изготовлена печатная плата, имеющая на борту Eth Switch KSZ8895FQX, ревизия A4. Надо сделать три медных и два оптических порта. Чтобы порт 3 стал оптическим, надо определенным образом настроить регистры свитча. Именно эти настройки можно сделать только через внешний интерфейс. Простейший вариант - загрузить по I2C из EEPROM. Если свитч "видит" м/сх памяти, он загружает регистры из этой памяти, если не видит - работает по внутренним настройкам. EEPROM используем 24LC02B .

 

В итоге, если EEPROM отсутствует, свитч прекрасно работает по внутренним настройкам, но один оптический порт (порт 3) у нас отпадает. Остальные три медных (порт 1, 2, 5) и один оптический (порт 4) работают.Если EEPROM установлена, загрузка начинается через раз, после чего обрывается примерно на полпути. После битья в бубен выяснилось, что если в ячейку EEPROM 0x7B записать 80, загрузка идет стабильно каждый раз и проходит предположительно (судя по продолжительности и тактовой частоте) до конца. Правда, работать свитч вообще не начинает. Про эту ячейку нашли из информации только вот это: 0x79-0x7B Reserved (Factory Testing Registers). Содержимое нигде не указано. Но ведь мы должны туда записать что-то конкретное, раз эта информация влияет на поведение устройства. Может, у ког-то просто есть возможность сгенерить правильный файл для загрузки. Есть софт, поставляемый с Evaluation Board, но платы у нас нет, а без платы он нужный файл не генерирует. Или, может есть файл для просто близкого варианта, чтобы почитать эти "неиспользуемые" области.

В общем, тупичок. В поддержку Micrel, теперь это у Microchip с этим есть смысл соваться?

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


Ссылка на сообщение
Поделиться на другие сайты
В итоге, если EEPROM отсутствует, свитч прекрасно работает по внутренним настройкам, но один оптический порт (порт 3) у нас отпадает. Остальные три медных (порт 1, 2, 5) и один оптический (порт 4) работают.Если EEPROM установлена, загрузка начинается через раз, после чего обрывается примерно на полпути. После битья в бубен выяснилось, что если в ячейку EEPROM 0x7B записать 80, загрузка идет стабильно каждый раз и проходит предположительно (судя по продолжительности и тактовой частоте) до конца. Правда, работать свитч вообще не начинает. Про эту ячейку нашли из информации только вот это: 0x79-0x7B Reserved (Factory Testing Registers). Содержимое нигде не указано. Но ведь мы должны туда записать что-то конкретное, раз эта информация влияет на поведение устройства. Может, у ког-то просто есть возможность сгенерить правильный файл для загрузки. Есть софт, поставляемый с Evaluation Board, но платы у нас нет, а без платы он нужный файл не генерирует. Или, может есть файл для просто близкого варианта, чтобы почитать эти "неиспользуемые" области.

В общем, тупичок. В поддержку Micrel, теперь это у Microchip с этим есть смысл соваться?

Errata тщательно изучили? Там помнится было что-то на предмет загрузки из EEPROM забажено

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

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


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

Errata изучили. Там действительно была проблема с загрузкой по I2C, но приведено простое решение и оно уже заложено в datasheets на микросхему.

 

"END USER IMPLICATIONS

When using I2C mode, the device will fail to read the EEPROM contents after a reset.

Work Around

Writing 0x0 to register 1 bits 7:4 (chip ID) in EEPROM will correct this issue.

PLAN

This errata is not planed to be corrected in a future revision"

 

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


Ссылка на сообщение
Поделиться на другие сайты
Errata изучили. Там действительно была проблема с загрузкой по I2C, но приведено простое решение и оно уже заложено в datasheets на микросхему.

Тады ой, я пользовал только медь и загрузка настроек у меня с процессора идет.

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

В плате ничего особенного нет, обычный переходник USB-I2C на базе FT2232C. Воткните в USB любую платку на чипе FTDI FT2232C - может ему похорошеет?

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

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


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

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

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


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

Тоже вариант

Попутно вопрос - при работе по SPI какие максимальные длины кабеля получалось использовать в случае плоского кабеля?

Больше 15см никогда не использовал, так что ничего внятного сказать не могу.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация