Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Зависание ksz8721 при старте
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
yanvasiij
Доброго времени суток!

Процессор LPC1788, схема подключения такая .

В качестве драйвера PHY использую стандартный кейловский (тот, что везде валяется). Столкнулся с такой проблемой: иногда при старте программы (чаще всего если быстро передернуть питание, при обычно долгом передергивании или нормальном ресете все проходит нормально) микросхема не проходит инициализацию, не отвечает на чтение регистра U16 read_PHY (U32 PhyReg). А там, в кейловсом драйвере долгое ожидание ответа от микросхемы (точнее они ждут готовности ресета, но в моем случае зависает из-за того, что микросхема не отвечает):
Код
  /* Wait for hardware reset to end. */
  for (tout = 0; tout < 0x100000; tout++) {
    regv = read_PHY (PHY_REG_BCR);
    if (!(regv & 0x8000)) {
      /* Reset complete */
      break;
    }
  }

Долго пытался выяснить в чем дело, удалось узнать лишь то, что в момент старта микросхема ИНОГДА неверно определяет адрес PHYAD (задается ногами PHYAD0-PHYAD4). Выяснить это удалось добавив в драйвер цикл, в котором он в случае неответа перебирает эти адреса.


В чем дело?!

Спасибо!
ZASADA
после включения питания делаем нормальный сброс нужной длительности согласно документации. ничего не зависает.
sadat
На схеме не видно, чем сброс KSZ выполняется - отдельной ногой мк либо сообщен со сбросом мк?
esaulenka
Видно. Резистором R17 ;-)
Uuftc
Цитата(ZASADA @ Feb 5 2015, 09:23) *
после включения питания делаем нормальный сброс нужной длительности согласно документации. ничего не зависает.

Присоединяюсь.
ksz дюже капризные до ресета.
у меня наводка на подтянутый ресет приводила к коматозу phy
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.