|
stm32f4 ethernet потеря пакетов |
|
|
|
 |
Ответов
|
May 18 2016, 20:32
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105

|
Цитата(scifi @ May 18 2016, 20:37)  Дуплекс надо проверить для начала. В функции ETH_MACDMA_Config заданы вот такие параметры... Возможно я сейчас задам очень глупый вопрос, но не пинайте начинающего  Значения ETH_Speed_100M, ETH_Mode_FullDuplex и т.д. должны быть стандартными для stm32F4 или же они берутся из даташита на физику ? Или же нужно прописывать непосредственно в физику настройки через ETH_WritePHYRegister ? CODE #define ETH_AutoNegotiation_Disable ((uint32_t)0x00000000) #define ETH_Speed_100M ((uint32_t)0x00004000) #define ETH_Mode_FullDuplex ((uint32_t)0x00000800)
static void ETH_MACDMA_Config(void) { ETH_InitTypeDef ETH_InitStructure; /* Reset ETHERNET on AHB Bus */ ETH_DeInit();
/* Software reset */ ETH_SoftwareReset();
/* Wait for software reset */ while (ETH_GetSoftwareResetStatus() == SET);
/* ETHERNET Configuration --------------------------------------------------*/ /* Call ETH_StructInit if you don't like to configure all ETH_InitStructure parameter */ ETH_StructInit(Ð_InitStructure);
/* Fill ETH_InitStructure parametrs */ /*------------------------ MAC -----------------------------------*/ //ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable; ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable; ETH_InitStructure.ETH_Speed = ETH_Speed_100M; ETH_InitStructure.ETH_Mode = ETH_Mode_FullDuplex;
ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable; ETH_InitStructure.ETH_RetryTransmission = ETH_RetryTransmission_Enable; ETH_InitStructure.ETH_AutomaticPadCRCStrip = ETH_AutomaticPadCRCStrip_Disable; ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable; ETH_InitStructure.ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Enable; ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable; ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_None; ETH_InitStructure.ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect; #ifdef CHECKSUM_BY_HARDWARE ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Enable; #endif
/*------------------------ DMA -----------------------------------*/ /* When we use the Checksum offload feature, we need to enable the Store and Forward mode: the store and forward guarantee that a whole frame is stored in the FIFO, so the MAC can insert/verify the checksum, if the checksum is OK the DMA can handle the frame otherwise the frame is dropped */ ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable; ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable; ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable; ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable; ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable; ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable; ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable; ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable; ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat; ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat; ETH_InitStructure.ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_2_1;
/* Configure Ethernet */ EthInitStatus = ETH_Init(Ð_InitStructure, DP83848_PHY_ADDRESS); /* Enable the Ethernet Rx Interrupt */ //ETH_DMAITConfig(ETH_DMA_IT_NIS | ETH_DMA_IT_R, ENABLE); }
Цитата(kolobok0 @ May 18 2016, 20:48)  пакеты - это имеется ввиду IP пакеты? Нет, у меня не на транспортном уровне все, а на канальном, т.е. ethernet пакет + vlan tag + специализированный протокол.
Сообщение отредактировал Fobes - May 18 2016, 21:08
|
|
|
|
|
May 19 2016, 06:53
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Fobes @ May 18 2016, 23:32)  В функции ETH_MACDMA_Config заданы вот такие параметры... Возможно я сейчас задам очень глупый вопрос, но не пинайте начинающего  Значения ETH_Speed_100M, ETH_Mode_FullDuplex и т.д. должны быть стандартными для stm32F4 или же они берутся из даташита на физику ? Или же нужно прописывать непосредственно в физику настройки через ETH_WritePHYRegister ? Не знаю я, что такое ETH_MACDMA_Config. У себя опрашиваю PHY. Когда он сообщает, что соединился, спрашиваю у него скорость и дуплекс, потом конфигурирую MAC. После разрыва соединения начинаю всё это снова. А что там наговнокодили индусы из ST - мне не ведомо.
|
|
|
|
|
May 19 2016, 09:17
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105

|
Цитата(scifi @ May 19 2016, 07:53)  Не знаю я, что такое ETH_MACDMA_Config. У себя опрашиваю PHY. Когда он сообщает, что соединился, спрашиваю у него скорость и дуплекс, потом конфигурирую MAC. После разрыва соединения начинаю всё это снова. А что там наговнокодили индусы из ST - мне не ведомо. Вы не dp83848 используете ? не покажете кусок кода где phy конфигурируете ?
|
|
|
|
Сообщений в этой теме
Fobes stm32f4 ethernet потеря пакетов May 18 2016, 19:17 scifi Дуплекс надо проверить для начала. May 18 2016, 19:37 Fobes Цитата(scifi @ May 18 2016, 19:37) Дуплек... May 19 2016, 20:13  scifi Цитата(Fobes @ May 19 2016, 23:13) отправ... May 20 2016, 08:27  alexp74 Цитата(Fobes @ May 18 2016, 23:32) В функ... May 19 2016, 05:54 desh Цитата(Fobes @ May 18 2016, 22:17) физика... May 19 2016, 05:36 Aner QUOTE (desh @ May 19 2016, 09:36) Некотор... May 19 2016, 09:43  scifi Цитата(Aner @ May 19 2016, 12:43) Да я то... May 19 2016, 10:13  AleksBak Цитата(Aner @ May 19 2016, 13:43) ...Но я... May 19 2016, 12:08 desh Цитата(Aner @ May 19 2016, 12:43) в F1 та... May 19 2016, 10:36 Aner QUOTE (desh @ May 19 2016, 14:36) Вы увер... May 19 2016, 10:49 desh Цитата(Aner)для F2 семейства по джиттеру этого PLL... May 19 2016, 13:21 Aner QUOTE (desh @ May 19 2016, 17:21) Что то ... May 19 2016, 13:40 AleksBak Это не кварц. Это генератор. Вы должны использова... May 20 2016, 07:57 Огурцов dp83848 не работает на 100мбит на длинных проводах... May 21 2016, 08:49 Aner QUOTE (Огурцов @ May 21 2016, 12:49) dp83... May 21 2016, 21:19  Огурцов Цитата(Aner @ May 21 2016, 21:19) Вероятн... May 21 2016, 22:09 Fobes Цитата(AleksBak @ May 20 2016, 07:57) Это... May 21 2016, 12:33 Fobes Цитата(Fobes @ May 21 2016, 13:33)
Мож... May 22 2016, 09:28  Огурцов Цитата(Fobes @ May 22 2016, 09:28) Может ... May 22 2016, 12:02 scifi Цитата(Fobes @ May 21 2016, 15:33) Длина ... May 22 2016, 10:07  Fobes Цитата(scifi @ May 22 2016, 10:07) Это си... May 23 2016, 21:59 Fobes Заменил DP83840 на офф. плату расширения для диска... Jun 8 2016, 10:28 pitt Цитата(Fobes @ Jun 8 2016, 06:28) Если во... Jun 8 2016, 12:26  Fobes Цитата(pitt @ Jun 8 2016, 12:26) Что-то я... Jun 8 2016, 14:06   LightElf QUOTE (Fobes @ Jun 8 2016, 17:06) Втыкаем... Jun 8 2016, 14:56    Fobes Цитата(LightElf @ Jun 8 2016, 14:56) Паке... Jun 8 2016, 15:40     LightElf QUOTE (Fobes @ Jun 8 2016, 18:40) Чистый ... Jun 9 2016, 13:08 pitt Очевидно, что проблемы с софтом, а не с железом. П... Jun 8 2016, 17:22 scifi Цитата(pitt @ Jun 8 2016, 20:22) Очевидно... Jun 8 2016, 17:30  pitt Цитата(scifi @ Jun 8 2016, 13:30) Рубрика... Jun 8 2016, 18:54   scifi Цитата(pitt @ Jun 8 2016, 21:54) а тут то... Jun 8 2016, 19:46 Fobes Цитата(pitt @ Jun 8 2016, 17:22) Очевидно... Jun 8 2016, 20:15 pitt Цитата(Fobes @ Jun 8 2016, 16:15) В настр... Jun 8 2016, 21:57 iosifk Цитата(Fobes @ Jun 8 2016, 23:15) Пакет п... Jun 9 2016, 13:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|