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

forevel

Участник
  • Постов

    18
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные forevel


  1. Вроде стало понятно, в чём дело: микросхемы KSZ8895 при переводе на процесс 0,11 um как-то испортили, и теперь они вплоть до ревизии А3 имеют такую "особенность", что при длинах до 2 м или более 20 м коммутатор ведёт себя совершенно отвратительно - в любой момент времени один из его каналов начинает истерически "моргать", и связь по каналу отваливается. Процедура обхода ситуации описана в соответствующей эррате (Эррата), но это годится, если коммутатор подключён к процессору по одному из интерфейсов. В моём случае это не вариант, к сожалению, "Элтех" предложил ждать появления микросхем с ревизией А4.

    В общем, если кто столкнётся с такой же проблемой, имейте в виду, пожалуйста.

     

    Антон.

  2. Приветствую!

     

    Сочинил плату коммутатора Ethernet на двух микросхемах KSZ8895, плата вставляется в объединительную плату, в которую, в свою очередь, вставляются платы с микроконтроллером STM32F407 каждая с Ethernet Phy, выполненной на базе KSZ8081RNA. Проблема теперь в том, что, если по очереди втыкать платы, то они по очереди и выходят на связь, и всё замечательно, друг друга видят, и основная процессорная плата на Linux их видит, пингует и всё прекрасно работает. Если же включить питание всей этой халабуды, когда в ней одновременно стоят хотя бы две из плат на KSZ8081, то одна из них обязательно не будет отвечать до тех пор, пока её не вытащишь и не вставишь обратно. Было подозрение, что при старте у них одинаковый MAC-адрес возникает, и из-за этого коммутатор KSZ8895 "сходит с ума" и настраивает обмен только с некоторыми из фишек, но программисты проверили - установили фиксированный MAC-адрес в KEIL среде (используется RTX Kernel от Keil), и всё равно эффект тот же самый.

     

    Во вложении pdf-файл со схемой коммутатора на двух KSZ8895, а так же вырезка из схемы обвязки фишки KSZ8081 в платах с STM32F407.

     

    Инициализация идёт так (кусок рабочей программы):

     


    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));

    
    

     

    Надеюсь на помощь, мозги уже неделю кипят от этой закавыки.

     

    Антон.

    _____________________________________.PDF

    post-49269-1497870921_thumb.png

  3. Добрый день!

     

    Результаты, в общем, такие: запаял переразведённую с учётом подтяжек плату, стал проверять - чехарда на разных каналах по-разному: на одном вроде как уровни в порядке - TX (1,5 +/- 0,4) В, по RX что-то тоже около того, соединение устанавливается на компьютере 100 МБит/с, на другом - уровни те же, а соединение уже на 10 МБит/с, часть каналов не смог вообще получить. Но при всём при том, даже с теми каналами, где есть соединение, попробовал пинги - не идут. Точнее, один пинг примерно на 100 неудачных появляется. Причём, иногда соединения по каналу нет, ткнёшь осциллографом посмотреть, и на тебе - связь появляется. Потом так же внезапно исчезает.

    Было подозрение на то, что микросхема палёная, я её перепаивал при 350 градусах, подумал, что сжёг, перепаял другую - результат ещё хуже, соединение есть только по одному каналу, остальные мёртвые.

    В связи с тем, что плата коммутатора с использованием KSZ8895 ведёт себя гораздо приличнее, решил переделать всю концепцию с использованием этой 5-канальной микросхемы, а про KSZ8999I забыть, как о страшном сне. "Элтех" вроде как говорит, что клиенты её берут, и вроде как даже она у них работает, но мне для того, чтобы применить её, надо ещё кучу времени угрохать на различные эксперименты, ибо своей разводкой и схемотехникой для этой микросхемы вряд ли кто поделится - коммерческая тайна, типа. А времени на самостоятельные экскременты у меня уже нет - надо выдавать готовый продукт, как говорится, самая быстрая дорога - та, которую ты знаешь.

     

    Спасибо всем, кто помогал!

     

    Антон.

  4. Уважаемый Alex11, вот, как открываются герберы в формате 2.4 English

     

    English_2_4.png

     

    В метрической хотя бы как-то открылось. Видимо, драйвер hands.sys кривой :)

     

    Вопрос есть по Вашим рекомендациям: "Между линиями RX резистор 100 Ом, плюс от каждой линии RX 1к в 2 В и 3к в землю" - не нашёл нигде, чтобы каждый RX "растягивать" между 2 В и землёй дополнительно к "растяжке" 50-омными резисторами. Не могли бы Вы пояснить, что этим мы стараемся достигнуть?

     

    Иосиф Григорьевич, отправил длинную депешу в Элтех, сижу, жду второй день ответа.

     

    Вопрос ещё есть по интерфейсу MII - в Reference Schematics на линиях MRXD[0..3] и MTXD[0..3] есть только последовательные резисторы 50 Ом, никакой защиты не нашёл. В статьях никаких специальных требований не предусматривается, а ведь скорость передачи данных 25 МБит/с (как я понимаю), и чувствую, что надо как-то разводить по-хитрому этот интерфейс, и рекомендаций найти не могу. Надо ли как-то терминировать линии данных?

     

    Извините, если вопросы дилетантские.

  5. Согласен с Вами, Иосиф Григорьевич, что со стороны может показаться это банальной ленью. Только я уже сыт по горло всякими менеджерами, к которым стоит только один раз позвонить, потом они к тебе навязываются, приезжают со своим барахлом, ты на них выкидываешь пол-дня рабочего времени и в остатке ноль. Это я к тому, что стараюсь искать всю информацию сам, не прибегая к помощи сторонних организаций. Вот отдельные люди, как тут на форуме, - это другое дело, им от тебя денег и сбагрить свою продукцию не надо, поэтому можно получить толковый совет.

    Кстати говоря, я именно с Элтеха брал статьи по применению Ethernet, особенно использовал ту, где тов. А. Лебедев расписывал про построение 16-портового коммутатора на двух микрелах KS8999. Правда, статья охватывает, в основном, только интерфейс MII.

    Вы, Иосиф Григорьевич, видимо, не совсем правильно поняли моё выражение "быть первопроходцем". Я не имел в виду, что изобретаю велосипед самостоятельно, не принимая во внимание опыт других товарищей. Напротив, я стараюсь пользоваться опытом других, насколько им позволяет свободное время на меня потратить. Вот только толку от "живьем этот набор посмотреть" и от "статьи по материалам этих аппликух мной напечатаны и у меня на сайе выложены" мало, если ты один на своей фирме этим занимаешься, и не с кем посоветоваться.

    Насчёт "Когда я занимался техподдержкой микрела" - вот тогда, наверное, было хорошо. По крайней мере я встречал на разных форумах восторженные отзывы от поддержки Микрела, что они, мол, помогают, рассказывают и чуть ли не всё за тебя делают. Наверное, это про Вас речь шла. А нынче, Вы, наверное, в курсе, что как Микрел в своё время купил Кендин, так и его самого теперь Микрочип опекает, и от их техподдержки теперь ничего нет, ноль. Я им писал, как раз прикладывал схему, разводку. Но им, думаю, теперь интересны заказчики, которые всё знают, покупают их микросхемы десятками тысяч штук и обеспечивают им безбедное существование.

    В общем, похоже на самооправдание получилось. Если Вам так удобнее думать, то пусть для Вас я буду "ленивой задницей". Если сможете мне помочь, прошу Вас ткнуть носом, где приводится пример разводки Ethernet с подтягивающими резисторами. Микреловские герберы у меня открылись примерно вот так

    ks8999_gerbers.png

    Понять на них я ни черта не могу. Видимо, тоже мне лень мешает :(

     

    В любом случае, спасибо Вам за комментарий! Буду дальше штудировать аппноты и учиться читать между строк.

     

  6. Alex11, да, питательные слои не показаны, ибо pdf генерируется автоматически только для top и bottom. Если очень нужны, могу их тоже выложить.

    Земли у меня две - аналоговая и цифровая, и соединены они в одной точке через резистор-перемычку. Только не под кристаллом, а в районе источника питания. В микрельском аппноте AN 111.10-100.General PCB Design and Layout Guidelines.pdf не нашёл специальных требований по местоположению точки соединения земель. Но сейчас, при переделке платы, я постараюсь учесть Ваше соображение, ровно как и многие другие (спасибо Вам большое!).

    Похоже, дело, действительно, в моей безграмотности или невнимательности - попробовал подать смещение на один канал RX-TX, как Вы сказали и как указано в аппноте AN-120 Capacitive Coupling for Ethernet Transceiver.pdf, на нём ноутбук стал определяться раз пять из шести при отключении-включении питания. Думаю, если доработать схему и переделать разводку, должно стать лучше.

    Тяжело, всё-таки, быть первопроходцем в своей фирме. Ни посоветоваться ни с кем, ни поучиться, кроме как на своих ошибках. Ума не приложу, сколько бы сидел ещё со своими проблемами, если бы не Electronix.ru!

     

    Когда переделаю и проверю, обязательно постараюсь отписаться.

     

    Спасибище!

  7. vladec, у меня как раз всё в одном блоке между платами. Гигабитных риалтеков у меня не используется из-за их коммерческого температурного диапазона.

    Alex11, меня смущает то, что KSZ8895 прекрасно всех, кто подключён к её портам, видит, и все видят друг друга, хотя вся схема практически идентичная, безо всяких трансформаторов и растяжек. В любом случае я постараюсь реализовать всё, что Вы написали, и отпишусь о результатах. Только вот думаю, если я на соплях навесным монтажом все эти подтяжки-растяжки на дифпарах повешу, не станет ли ещё хуже? А тогда плату надо новую заказывать..

  8. Спасибо за то, что не бросаете меня и помогаете! Последние сводки с полей такие:

    Имею две идентичных платы с коммутатором KS8999I. Сменил источник питания (раньше подавал 24 В от отдельного источника питания Meanwell MDR-240-24, потом перешёл на кассетный источник Meanwell EPP-150-24), после этого обе платы изменили свою реакцию - светодиод связи по MII теперь постоянно горит, не подавая признаков жизни, однако, проснулись 8 портов с PHY-шками, причём, при каждом отключении и включении питания картина получается разная - то не горит ни один из светодиодов, то зажигаются только некоторые. Чтобы одновременно была активность по всем портам - такого не видел ни разу. Причём проверки веду с одними и теми же платами, вставленными в крейт.

    Дальше. Трансформаторов у меня не стоит, только проходные ёмкости на RX пинах. Идеологию брал с микреловского аппнота, где для небольших расстояний (у меня сантиметров 20, не больше) позволяется такая схема подключения. Смущает ещё то, что при включении в "пятёрку" KSZ8895 светодиоды на модулях тоже горят и показывают активность, как и на плате с коммутатором (светодиоды на модулях берутся с выхода LED PHY-шки KSZ8081RNA). А вот при подключении к "девятке" светодиоды на плате с коммутатором для данного канала если и "мыргают", то на самом модуле светодиод молчит. Не нравится такое поведение.

     

    В общем, времени потратил уже много, настроение из-за этой ерунды на нуле, а результата нет. Похоже, буду, всё-таки, переделывать на KSZ8895 всё, с ними хотя бы ситуация предсказуемая.

     

    Вложил схему и разводку платы на всякий случай. Тут у меня два DC-преобразователя было сделано изначально, потом я уже прочитал про то, что у этой хитрой микросхемы по-хитрому подаётся питание (VDD ядра 2,0 В должно быть подано раньше, чем VDDIO 3,3 В), и я перенёс источник 24/2 на отдельную платку и теперь оба питания появляются одновременно. Но ничем это не помогает, к сожалению.

     

    _____________________________________________73________.PDF

     

  9. Пробовал и так, и эдак, разные карты подпихивать, добился работы только интерфейса MII, точнее, хоть какой-то реакции светодиода активности. Остальные 8 портов молчат. А KSZ8895 с теми же схемотехническими решениями работает прекрасно. Из-за чего, всё-таки, может быть такая ерунда?

  10. vladec, спасибо Вам за совет, попробую завтра разные варианты с разными сетевыми картами. Однако, если такая фигня получается, что этот свитч не будет работать с micrel-скими же phy-шками ksz8051, установленными на платах с STM32F407, то останется его только в топку выкинуть. И проблема получения минимальными усилиями 12 портов Ethernet так и останется висеть большим ярмом на моей тощей шее )

    Alex11, я ещё попробую подёргаться, как блоха на игле, если ничего не получится, позволю себе Вас потревожить в личке. Спасибо!

  11. Здравствуйте!

     

    Взялся тоже применять эту микросхему в нашем изделии - пытаюсь объединить два коммутатора - KSZ8999 и KS8895 по шине MII и связать между собой хотя бы два устройства, подключённые к этим коммутаторам. Пока ситуация такая, что компьютер, подключённый к KS8895, видит сеть, загорается линк и всё вроде бы хорошо, а если его подключать к KSZ8999, то линка нет. Пробовал на нескольких портах, результат одинаковый. Подозреваю, что у меня может быть та же проблема, что и у уважаемого Alex11, посему хотелось бы спросить, не помнит ли он, несмотря на три почти прошедших года, как, всё-таки, удалось победить микросхему и какая конфигурация заставила его работать? И как конфигурировался KSZ - через EEPROM или внешними резисторами?

     

    Спасибо!

  12. Владимир, Master of Nature, спасибо за Ваши ответы, я потратил два дня на поиски в альтиуме, где б это убрать, и пришёл к выводу, что, скорее всего, так низя. На всякий случай решил поинтересоваться у аксакалов :)

    Вышел пока из положения, закрыв белым квадратиком номер гейта. Понимаю, что такой метод разделения разъёмов на элементарные составляющие чреват большими размерами файлов схем и слетанием САПР, но пока приношу эти соображения в жертву удобочитаемости схем, особенно в случаях, когда разъём отображается одним элементом, но пины в нём совсем не по порядку расположены.

  13. Всем доброго дня!

    [поскипано]

    вопрос -как сделать что бы вместо букв были цифры (что бы было как по госту) KV1.1 KV1.2 и т.д.

     

    что то ни как не пойму.... :laughing:

     

    всё. сам разобрался ,может кому пригодится (для версии 14.1.5)

    DXP-Preferences-Schematic-General-(Alpha Numeric Suffix) выбрать Numeric,separated by a dot "."

     

    Не менее доброго дня и от меня!

     

    Вопрос другой: а как сделать, чтобы номер гейта (суффикс) вообще не показывался на схеме? Скажем, у меня разъём из N позиций, изображены эти позиции друг к дружке. Ставить около каждого свой designator со своим номером гейта категорически не хочется, а хочется поставить у одного, самого верхнего, один designator и считать все эти позиции одним целым. В ПКАДе была возможность в options отключить Part numbers, а здесь найти не могу.

     

    Спасибо!

  14. А зачем в схеме рисовать компонент, не имеющий подключений?

    Рисуйте его только на плате!

     

    Спасибо за предложение, но меня немного расстраивает при каждом "Update PCB Document" заново устанавливать компоненты на плате или каждый раз снимать соответствующий флажок в ECO.

     

    Что-то вы делаете не так. Я помещаю на схему крепеж, иначе при переносе на плату он может потеряться.

    Правда у меня есть пины с нулевыми номерами десигнаторов. Пины на схеме негде не подключены.

     

    Провел эксперимент. Взял из библиотеки копию своего крепежа, убрал отверстие. Осталась только информация в Механикал1. Ввел его в схему. Протранслировал на плату. Все отобразилось на РСВ. Ищите что-то у себя. В Альтиум все нормально.

     

    Рис1 - Начальная схема, Рис2 - плата с крепежем, в котором только Механикал1, Рис3 - схема, в которую ввели "пустой" крепеж, без отверстий.

     

    Вот, и я тоже думаю, что что-то не так делаю. Попробовал проставить нулевые пины в компоненте, всё равно "не играет" - убирает поставленный Mechanical и не хочет в ECO отображать. А Вы точно про компонент, у которого Type равен Mechanical говорите, а не про компонент, у которого Type равно Standard, а Footprint только в слое Mechanical сделан?

  15. Добрый день, коллеги!

     

    Не узрел в поиске ответа на свой вопрос, прошу теперь Вашей помощи.

    Имею в схеме (.SchDoc) некий компонент, который у меня имеет тип Mechanical. Соответственно, он не имеет ни пинов, ни подключений. При попытке Design->Update PCB Document (упаковки в плату) в создаваемом ECO-списке он не присутствует, соответственно, и на плату не ставится. Стало быть, мне его потом руками ставить придётся на плату? Или придётся назначать его типом Standard и закрыть глаза на смысл присутствия этого механического типа?

     

    Буду благодарен за любые ответы.

  16. Спасибо за ответ, Владимир. Мне просто хотелось, чтобы при генерации BOM туда попадали и механические компоненты в том числе. А для этого надо создавать компонент и что-то рисовать в библиотеке УГО.

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

    Нарисую какую-нибудь кракозябру и обзову её штырьком. По крайней мере это лучше будет, чем вписывать руками каждый раз в перечень элементов, потому как есть вероятность забыть элемент. Особенно с моей памятью :rolleyes:

  17. Добрый день, уважаемые коллеги!

     

    Аж в 2011 году некто _Макс задавал вопрос:

     

    Какой есть способ учитывать в спецификации механические компоненты типа печатной платы, корпуса, шлейфов? Хорошо, создал я компонент типа Mechanical (как я понимаю, для этого такой компонент нужен). Какой символ ему рисовать, для корпуса например?) Футпринт оставим без назначения. Что делать с десигнатором?

     

    Ссылка тут: http://electronix.ru/forum/index.php?act=f...&pid=901171

     

    Так и не нашёл я ответа на форуме на эти вопросы, а меня они тоже волнуют.

     

    Попробую задать их от своего лица.

     

    У меня стоит конкретная задача - на плате предусмотреть отверстия для крепления механической направляющей для платы типа "штырь" или "гнездо". Пользую библиотеки на основе базы данных, и встал вопрос: что писать в Library Ref и что рисовать в библиотеке символов для такого компонента? Соответственно, надо ли присваивать какой-либо Designator оному?

     

    Хотелось бы получить совет специалистов, имевших дело с такой заковыкой.

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