реклама на сайте
подробности

 
 
> Зависание ksz8721 при старте, Кажется определяет неверный адрес PHY
yanvasiij
сообщение Feb 5 2015, 06:03
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Доброго времени суток!

Процессор 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). Выяснить это удалось добавив в драйвер цикл, в котором он в случае неответа перебирает эти адреса.


В чем дело?!

Спасибо!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01321 секунд с 7
ELECTRONIX ©2004-2016