|
|
 |
Ответов
|
Jun 19 2017, 11:24
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 19-05-09
Пользователь №: 49 269

|
Приветствую! Сочинил плату коммутатора Ethernet на двух микросхемах KSZ8895, плата вставляется в объединительную плату, в которую, в свою очередь, вставляются платы с микроконтроллером STM32F407 каждая с Ethernet Phy, выполненной на базе KSZ8081RNA. Проблема теперь в том, что, если по очереди втыкать платы, то они по очереди и выходят на связь, и всё замечательно, друг друга видят, и основная процессорная плата на Linux их видит, пингует и всё прекрасно работает. Если же включить питание всей этой халабуды, когда в ней одновременно стоят хотя бы две из плат на KSZ8081, то одна из них обязательно не будет отвечать до тех пор, пока её не вытащишь и не вставишь обратно. Было подозрение, что при старте у них одинаковый MAC-адрес возникает, и из-за этого коммутатор KSZ8895 "сходит с ума" и настраивает обмен только с некоторыми из фишек, но программисты проверили - установили фиксированный MAC-адрес в KEIL среде (используется RTX Kernel от Keil), и всё равно эффект тот же самый. Во вложении pdf-файл со схемой коммутатора на двух KSZ8895, а так же вырезка из схемы обвязки фишки KSZ8081 в платах с STM32F407. Инициализация идёт так (кусок рабочей программы): CODE u8 ip4_addr[NET_ADDR_IP4_LEN]; u8 mask[NET_ADDR_IP4_LEN]; u8 GW[NET_ADDR_IP4_LEN]; u8 mac_addr[NET_ADDR_ETH_LEN] ; u8 my_mac_addr[NET_ADDR_ETH_LEN] ;
#if(RESPHI) GPIO_InitTypeDef_Std GPIO_InitStructure; ReadIP4(ip4_addr); ReadMAC(mac_addr); memcpy(net_eth0_config.MacAddr, mac_addr, 6); //net_eth0_config GPIO_InitStructure.GPIO_Pin =PIN_RESPHI ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOxx[PORT_RESPHI], &GPIO_InitStructure); GPIO_ResetBits(GPIOxx[PORT_RESPHI], PIN_RESPHI); GPIO_SetBits(GPIOxx[PORT_RESPHI], PIN_RESPHI); osDelay(500); #endif HAL_NVIC_SetPriority(ETH_IRQn, NVICPriority,0); net_initialize (); netIF_GetOption (NET_IF_CLASS_ETH | 0, netIF_OptionMAC_Address , my_mac_addr, 6); netIF_SetOption (NET_IF_CLASS_ETH | 0, netIF_OptionIP4_Address, ip4_addr, sizeof (ip4_addr)); netIF_SetOption (NET_IF_CLASS_ETH | 0, netIF_OptionMAC_Address, mac_addr, sizeof (mac_addr)); ReadMask(mask); netIF_SetOption (NET_IF_CLASS_ETH | 0, netIF_OptionIP4_SubnetMask, mask, sizeof (mask)); ReadGateWay(GW); netIF_SetOption (NET_IF_CLASS_ETH | 0, netIF_OptionIP4_DefaultGateway, GW, sizeof (GW));
Надеюсь на помощь, мозги уже неделю кипят от этой закавыки. Антон.
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
andrey_ns использование ks8999 Jan 20 2014, 13:16 DmitryM Цитата(andrey_ns @ Jan 20 2014, 16:16) Ко... Jan 21 2014, 05:39 Alex11 В дефолтовой конфигурации при неподключенной шине ... Jan 22 2014, 14:32 forevel Здравствуйте!
Взялся тоже применять эту микро... Oct 7 2016, 12:01 Alex11 Дело, конечно, давнее. KSZ конфигурировался частич... Oct 8 2016, 21:40 vladec forevel, а Вы проверте KSZ8999 на работу с разными... Oct 10 2016, 08:14 forevel vladec, спасибо Вам за совет, попробую завтра разн... Oct 16 2016, 19:24 forevel Пробовал и так, и эдак, разные карты подпихивать, ... Oct 22 2016, 09:54 vladec А может в электрике какая проблема, проверьте лишн... Oct 24 2016, 08:32 Alex11 Проверьте, что у Вас задано в режимах autonegatiat... Oct 24 2016, 19:55 forevel Спасибо за то, что не бросаете меня и помогаете... Nov 2 2016, 17:20 Alex11 ЦитатаТрансформаторов у меня не стоит - "Семе... Nov 2 2016, 20:06 vladec Вообще то, я считал, что без трансформаторов Ether... Nov 3 2016, 08:08 forevel vladec, у меня как раз всё в одном блоке между пла... Nov 3 2016, 11:13 EvilWrecker Выкидывайте вашу текущую платку(псб дизайнера тоже... Nov 3 2016, 11:26 Alex11 Я тут нашел еще одну аппликуху, судя по ней можно ... Nov 3 2016, 17:32 forevel Alex11, да, питательные слои не показаны, ибо pdf ... Nov 7 2016, 14:57 iosifk Цитата(forevel @ Nov 7 2016, 17:57) Тяжел... Nov 7 2016, 15:10 forevel Согласен с Вами, Иосиф Григорьевич, что со стороны... Nov 8 2016, 09:51 iosifk Цитата(forevel @ Nov 8 2016, 12:51) Согла... Nov 8 2016, 11:33  forevel del Dec 16 2016, 08:35 Alex11 Герберы открываются правильно, если поставить форм... Nov 8 2016, 19:38 forevel Уважаемый Alex11, вот, как открываются герберы в ф... Nov 10 2016, 14:01 iosifk Цитата(forevel @ Nov 10 2016, 17:01) Иоси... Nov 10 2016, 14:11 Alex11 Цитатавот, как открываются герберы в формате 2.4 E... Nov 10 2016, 14:45 forevel Добрый день!
Результаты, в общем, такие: запа... Dec 19 2016, 11:02 forevel Вроде стало понятно, в чём дело: микросхемы KSZ889... Jun 21 2017, 10:07 LightElf QUOTE (forevel @ Jun 21 2017, 13:07) Врод... Jun 26 2017, 12:59 wladimir69tv Доброго времени суток. Наступил на грабли с Micrel... Jul 5 2017, 08:45 Alex11 Менять CFGMODE без толку, т.к. в микроконтроллерно... Jul 5 2017, 10:02 wladimir69tv Цитата(Alex11 @ Jul 5 2017, 13:02) Менять... Jul 5 2017, 11:59 Alex11 С питанием вопрос не столько величины, сколько пул... Jul 5 2017, 22:03 wladimir69tv Пульсации не больше 30 мВ. 173 пин на земле. Бусин... Jul 6 2017, 07:07  wladimir69tv Всем спасибо! MicroChip помог. Оказалась 174 н... Jul 6 2017, 10:02
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|