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

Cyclone V SoC & EMAC

Всем привет

 

собрал систему по AN706 (EMAC1 - выведен на FPGA)

 

после включения платы (собственной разработки), вся периферия UART (тоже через FPGA), SPI работают на ура...

но вот EMAC не запускается, запускает если только при включении платы я удерживаю сброс в течении 1-3 сек на nRST FPGA (нажатием кнопки сброс)

 

понятно, что есть решение: подключить к пину кондер...

 

но мне просто интересно почему такая фигня происходит?

 

может кто сталкивался или знает где про почитать

 

да и еще... загрузка раздельная FPGA и HPS (оба QSPI)

 

Заранее благодарен

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


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

но вот EMAC не запускается, запускает если только при включении платы я удерживаю сброс в течении 1-3 сек на nRST FPGA (нажатием кнопки сброс)

Предположение: у многих PHY есть требование на длительность сигнала ресет. Такая задержка есть во всех примерах с использованием ядра TSE.

Ваш nRST FPGA напрямую подключен к пину PHY reset?

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


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

Предположение: у многих PHY есть требование на длительность сигнала ресет.

Потому что во время ресета трансивер определяет и запоминает как включены светодиоды (к плюсу или к земле) и пр. И для этого ему нужно время, чтобы защелкнуть состояние, когда все другие процессы установятся....

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


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

Всем привет

 

собрал систему по AN706 (EMAC1 - выведен на FPGA)

 

после включения платы (собственной разработки), вся периферия UART (тоже через FPGA), SPI работают на ура...

но вот EMAC не запускается, запускает если только при включении платы я удерживаю сброс в течении 1-3 сек на nRST FPGA (нажатием кнопки сброс)

 

понятно, что есть решение: подключить к пину кондер...

 

но мне просто интересно почему такая фигня происходит?

 

может кто сталкивался или знает где про почитать

 

да и еще... загрузка раздельная FPGA и HPS (оба QSPI)

 

Заранее благодарен

 

 

нашел баг у Альтеры в spl_bsp

 

в файле system_manager.c

функция void sysmgr_pinmux_init(void)

 

if (is_fpgamgr_fpga_ready()) {

/* enable the required signals only */

writel(reg_value, SYSMGR_FPGAINTF_MODULE);

}

 

исправил на

 

while (!is_fpgamgr_fpga_ready()) {

}

 

writel(reg_value, SYSMGR_FPGAINTF_MODULE);

 

и все заработало

 

они просто проверяли на состояние fpga, а не ждали его

 

может конечно я не разобрался в чем то, но заработало

 

 

 

 

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...