LINUX.ORG.RU

stm32f407 ethernet

 ,


0

1

Добрый день!

Столкнулся с проблемой. Не работает MAC DMA. Включен в RCC ETHMACRXEN, ETHMACTXEN, ETHMACEN.

Но на любые действия, которые касаются MAC DMA, реакции ноль. Запись битов ETH_DMAOMR_FTF (очистить FIFO) и ETH_DMABMR_SR (перезапуск) не завершается, так и висят 1 в данных битах. Отправка пакетов тем более не работает, бит OWN в дескрипторе также висит вечно.

Пробую функции из opencm3, собственно с них и начал. Когда не получилось, начал руками проверять

При этом чтение регистров PHY происходит без проблем.

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от Dark_SavanT

Да.

И регистры PHY, доступ к которым через MAC, доступны.

    // Select RMII
    SYSCFG_PMC |= (1 << 23);

    // Init and reset ETH MAC
    RCC_AHB1ENR |= 1 << 25;
    RCC_AHB1ENR |= 1 << 26;
    RCC_AHB1ENR |= 1 << 27;
    delay(10000);

    RCC_AHB1RSTR |= 1 << 25;
    delay(10000);

    RCC_AHB1RSTR &= ~(1 << 25);
    delay(10000);
cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Нашел ошибку. Оказывается регистр SYSCFG, хранящий в себе бит выбора RMII/MII имеет свое отдельное тактирование

cvs-255 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.