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

STM32F767 не работает Ethernet

Доброго времени суток. Вспоминаю как работал с STM32F407 и прям умиление берёт. 😀 Настолько камень предсказуемый, чётко и устойчиво работающий. Периферия вполне себе.. Ну и устройство на нём получилось супер.
Теперь перехожу на 767. Косяков прям куча. И что напрягает, как то не спешат они их устранять. Косяк с выводом частоты часового кварца. Пишут неустранимый.
На QSPI косячёк один описан, по второму я знатно потоптался, пока сообразил.
Теперь Ethernet.
Собрал - не работает.
Взял Demo board 769I-DISCO скомпилил их проект - те же косяки. Даже ping не проходит.
 

Есть у кого-нибудь рабочий пример с LwIP на 76х камень?

PS: Можно на DISCO или EVAL

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


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

Ну, как обычно - отключайте D-кэш и будет вам подобно F407.

Либо пишите свой драйвер Ethernet с обработкой областей кеширования.

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


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

Так у них там ...
#pragma location=0x2007C000
ETH_DMADescTypeDef  DMARxDscrTab[ETH_RX_DESC_CNT]; /* Ethernet Rx DMA Descriptors */
#pragma location=0x2007C0A0
ETH_DMADescTypeDef  DMATxDscrTab[ETH_TX_DESC_CNT]; /* Ethernet Tx DMA Descriptors */

Ну и, соответственно 

 

 /* Configure the MPU as Device for Ethernet Descriptors in the SRAM2 */
  MPU_InitStruct.Enable = MPU_REGION_ENABLE;
  MPU_InitStruct.BaseAddress = 0x2007C000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_1KB;
  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
  MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
  MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
  MPU_InitStruct.Number = MPU_REGION_NUMBER2;
  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
  MPU_InitStruct.SubRegionDisable = 0x00;
  MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;



То есть тут вроде бы  не должно было быть подвдха

Изменено пользователем haker_fox
Для оформления кода есть кнопка <>.

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


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

Взял плату STM32F769-DISCO. Взял CubeF7 v1.17.1 от 14.07.23 Написано - обновили примеры для этой платы.
Скомпилировал пример \STM32F769I-Discovery\Applications\LwIP\LwIP_HTTP_Server_Netconn_RTOS.
Всё тоже, что и у меня. LINK появляется. PING не проходит. Напрочь.
Попробовал на форуме задать вопрос. Ну я на ST зарегистрирован - не пускают.

Неужели эти свои 5 примеров проверить сложно было?

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


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

On 12/13/2023 at 4:44 PM, SapegoAL said:

Взял плату STM32F769-DISCO. Взял CubeF7 v1.17.1 от 14.07.23 Написано - обновили примеры для этой платы.
Скомпилировал пример \STM32F769I-Discovery\Applications\LwIP\LwIP_HTTP_Server_Netconn_RTOS.
Всё тоже, что и у меня. LINK появляется. PING не проходит. Напрочь.
Попробовал на форуме задать вопрос. Ну я на ST зарегистрирован - не пускают.

Неужели эти свои 5 примеров проверить сложно было?

файл ethernetif.c, функция static void low_level_init(struct netif *netif)

Проверьте строку 

netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP;

 

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


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

dimka76, спасибо за подсказку.
Да. Ping проходит теперь. Это действительно IGMP.
Ещё раз спасибо.
Времени по всему нет. Хочу к февралю на испытания, а там ещё процентов 30 написано. К июлю отгружать... ))

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


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

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

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

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

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

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

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

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

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

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