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

 
 
> stm32f4 ethernet потеря пакетов
Fobes
сообщение May 18 2016, 19:17
Сообщение #1


Участник
*

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



Всем доброго времени суток. Собственно заметил такую проблему. Отправляю пакеты в сеть на скорости в 4Мбита/c. использую low_level_output для отправки пакетов. при отправке нет никаких ошибок и не возникают вообще, но вот с повышением нагрузки, другими словами, если втыкаю плату в роутер, в котором уже около 4 мбит, то получаю что тупо теряются пакеты... в шарке их попросту нет, но ошибок при отправке никаких нет... физика: dp83848 ... что-то совсем в ступоре и не знаю даже куда копать... помогите идеями sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobok0
сообщение May 18 2016, 19:48
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Fobes @ May 18 2016, 22:17) *
...Отправляю пакеты в сеть... помогите идеями sad.gif


пакеты - это имеется ввиду IP пакеты?
ну дык имеют право теряться. кто теряет - тот не справляется. наверное надо понять критерий киляния их у того кто их киляет.

для ловли анализатором - надо учитывать, что роутеры могут резать трафик не предназначенный другим адресам.
Go to the top of the page
 
+Quote Post
Fobes
сообщение May 18 2016, 20:32
Сообщение #3


Участник
*

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



Цитата(scifi @ May 18 2016, 20:37) *
Дуплекс надо проверить для начала.

В функции ETH_MACDMA_Config заданы вот такие параметры... Возможно я сейчас задам очень глупый вопрос, но не пинайте начинающего sad.gif Значения 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(&ETH_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(&ETH_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
Go to the top of the page
 
+Quote Post
scifi
сообщение May 19 2016, 06:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Fobes @ May 18 2016, 23:32) *
В функции ETH_MACDMA_Config заданы вот такие параметры... Возможно я сейчас задам очень глупый вопрос, но не пинайте начинающего sad.gif Значения ETH_Speed_100M, ETH_Mode_FullDuplex и т.д. должны быть стандартными для stm32F4 или же они берутся из даташита на физику ? Или же нужно прописывать непосредственно в физику настройки через ETH_WritePHYRegister ?

Не знаю я, что такое ETH_MACDMA_Config.
У себя опрашиваю PHY. Когда он сообщает, что соединился, спрашиваю у него скорость и дуплекс, потом конфигурирую MAC. После разрыва соединения начинаю всё это снова.
А что там наговнокодили индусы из ST - мне не ведомо.
Go to the top of the page
 
+Quote Post
Fobes
сообщение May 19 2016, 09:17
Сообщение #5


Участник
*

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



Цитата(scifi @ May 19 2016, 07:53) *
Не знаю я, что такое ETH_MACDMA_Config.
У себя опрашиваю PHY. Когда он сообщает, что соединился, спрашиваю у него скорость и дуплекс, потом конфигурирую MAC. После разрыва соединения начинаю всё это снова.
А что там наговнокодили индусы из ST - мне не ведомо.


Вы не dp83848 используете ? не покажете кусок кода где phy конфигурируете ?
Go to the top of the page
 
+Quote Post
scifi
сообщение May 19 2016, 09:26
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Fobes @ May 19 2016, 12:17) *
Вы не dp83848 используете ? не покажете кусок кода где phy конфигурируете ?

У меня KSZ8081RNA. И я его не конфигурирую - после включения он уже в правильном состоянии.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 08:16
Рейтинг@Mail.ru


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