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

    

VladimirB

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о VladimirB

  • Звание
    Знающий
  • День рождения 01.10.1981

Контакты

  • Сайт
    http://www.ya.ru
  • ICQ
    0

Информация

  • Город
    рядом с Москвой

Посетители профиля

4 665 просмотров профиля
  1. Может и не совсем по теме. У нас как-то на серийном изделии тоже пара плат в брак ушло. На плате ПЛИС Virtex6 и ATMega8 с друг другом взаимодействовали и подвисали через 1-2 секунды после включения питания. Причём подвисание было только на холодных платах (не прогревшихся выше +25град). Я дня три парился, перепаивал всё что мог, осциллографом тыкался, в морозилке платы охлаждал - всё вроде в норме, а не работает. Оказалось, что кварцевый генератор, от которого всё тактировалось, при старте сначала давал пару импульсов тактовой, потом затыкался на 10-20 мс, а потом начинал уже нормально генерить (заметил случайно). И микроконтроллеру это сильно не нравилось - он зависал на аппаратном уровне так, что программа даже не успевала стартовать. Вылечилось установкой повышенного startup time во FUSE битах. Так что причина может оказаться где-то в окружении и совсем не там, где ожидаешь. P.S. Чтобы DDR2 не заработала из-за звона, это надо постараться. Особенно, когда разработчик ПП слышал про гиперлинкс. Мне как-то на плате с Virtex6 и DDR2-800 все терминаторы запаяли 471Ом вместо 47Ом и всё работало. А я видал рабочие серийные платы с DDR3, на которых и импеданс дорожек вообще не был согласован и разрывы в плейнах были под данными и адресами во внутренних слоях (правда только с одной стороны, с другой был непрерывный плейн).
  2. Это падение напряжения на катушках индуктивности, через которые выходной каскад питается. У вас на плате эти индуктивности имеют большее резистивное сопротивление по постоянке, чем индуктивности на плате производителя. Тупо провод толще в намотке или количество витков (индуктивность) разное.
  3. Цитата(#Aleksandr @ Oct 20 2017, 17:34) Производитель контроллера рекомендаций не дает, поэтому и обратился к jedec. В даташите на память (micron) указаны значения по временным задержкам из jedec. Ну не может ведь DQS от CK отставать на 225 пс. (4 сантиметра на FR-4). Нужно ведь jitter ещё учитывать и т.п. при трассировке, а уже потом осциллографом смотреть чтобы с учетом всех помех, jitter и т.д. разница между фронтами не превышала 225 пс. Не могу понять как это все учесть. Неужели все пользуются только данными из рекомендаций и никто не считает реальные допуски, которые могут значительно облегчить трассировку? Почему не может? DDR3 Write Leveling вроде должен эту задержку компенсировать автоматом. Иначе как тогда fly-by разводить: клок идёт последовательно через все чипы памяти, а DQS напрямую к каждому ? На 4 чипах памяти 4 см. может набежать легко. Другое дело поддерживает ли Write Leveling ваш контроллер памяти и в каких пределах он может задержку выровнять? P.S. Посмотрел TN4614 - это же манускрипт из музея 2006 года. И речь там про обычную DDR память без индексов 2 или 3.
  4. Пины под BGA

    Цитата(Шухарт @ Apr 15 2017, 19:41) Добрый вечер. Впервые столкнулся с необходимостью применения мк в BGA корпусе. Есть несколько вопросов 1)Какая зависимость диаметра КП от диаметра шара? 2) Объясните пожалуйста что означает в даташите строчка возле диаметра шара (в приложении выделена жёлтым цветом) Чего-то круто для первого раза: ПЛИС Xilinx в BGA c шагом 0.5 со сплошной матрицей шариков. HDI попахивает.
  5. Цитата(Kluwert @ Apr 12 2017, 11:41) Уважаемый, 88E1111 уже давно изьюзанная и абсолютно беспроблемная. Кстати, её с пр-ва снимают. Марвелл уже рекомендует на более современные переходить. Так что ищите ошибку в проекте однозначно мой вам совет. А вообще MAC'и и настройки по MDIO надо руками писать - тогда всё будет прозрачно и под контролем. Про изъюзанность и безпроблемность знаем и сами применяли её много раз. Просто ПЛИС были с железным МАКом и готовый драйвер был в SDK. А по этой теме вроде направление куда копать понятно, будет время добьём. На новые Марвеллы (как на ZedBoard) будем переходить обязательно, т.к. месяц назад, наконец-то, добрые люди выложили сверхсекретный даташит в закрома.
  6. Цитата(_Anatoliy @ Apr 11 2017, 15:53) Спасибо! Очень грустное известие. Тогда на мелких сериях производства можно ставить крест. Или на Xilinx переметнуться? Как у них там дела с Кинтексом,кто знает? С Кинтексами проблем нет. Сами покупаем небольшими партиями. Только надо смотреть при разработке ПП и закладываться на распространённые модели. Есть там пара-тройка редких в экзотических корпусах с большим кол-вом трансиверов. P.S. Главное к официалам Xilinx не обращаться, чтобы нервы в порядке сохранить. От них толку мало стало - на партии меньше 10 Кинтексов 325T ценник дороже, чем в кармане привезти с Дижикея. Сроки поставки несколько месяцев выдают. И ещё бывает всякие бумажки просят заполнять. В Макрогруппе менеджеры вообще сонные - пишешь запрос и ждёшь ответа две недели, а бывает забывают ответить. Впечатление такое, что клиенты и деньги их не интересуют.
  7. Дал другому разработчику FPGA в руки свой старый проект ISE 10.3 с менторовским MAC'ом и попросил переделать под эту плату и поднять гигабит. Гигабит поднялся. 1000BASE-T. Передавали и принимали с loopback через фифо внутри ПЛИС по 5000 пакетов максимальной длины 1500 - ни одной ошибки или потери пакета. Программное обеспечение на ПК и плата теже самые. Завтра попрошу менторовский MAC на 100BASE-TX переделать. Похоже чего-то не так либо с инициализацией 88E1111 или Xilinx TEMAC . Последний вызывает подозрения. Раньше TEMAC был аппаратный, бесплатный, с драйвером и примером в SDK. А теперь софтварный, без драйвера и примера для SDK и ёще и $520 хотят. Может он чего-то с PHY делает не по ГОСТу или в MDIO пишет неправильно?
  8. Цитата(Alex_AZ @ Apr 3 2017, 07:54) Возможно, при работе в Half-Duplex режиме не отслеживаются коллизии. В ядре MAC-контроллера из ISE были сигналы tx_collision и tx_retransmit для отслеживания подобных ситуаций. При возникновении коллизии нужно было повторно отправить поврежденный пакет. Мы только в FullDuplex работаем - проверяли по осциллографу - две пары задействованы - соответственно коллизий быть не может, а обрезанные пакеты есть. Half Duplex пробовали один раз включать - там всё хорошо было.
  9. Цитата(andrewkrot @ Apr 2 2017, 16:37) Возможно вы начинаете свои манипуляции по передаче до завершения процесса автоопределения. Попробуйте немного подождать по сбросу или вкл. питания. Передача начинается с ПК по нажатию кнопки в программе - естественно жмём когда хотим. Можем и несколько раз нажать последовательно с паузами - результат не меняется.
  10. Появилась новая информация. 1) Если на ПК в свойствах сетевой карты убрать Автопределение скорости и жёстко поставить 100BASE-TX FullDuplex то пакеты между ПК и платой начинают передаваться без ошибок и обрезанных пакетов нет. При этом в 88E1111, при инициализации в регистрах жестко устанавливаем 100BASE-TX FullDuplex и в случае автоопределения сетевой картой скорости, связь идёт в том же режиме. 2)Сетевую карту ПК замыкали кроссовой перемычкой саму на себя - ошибок нет, пакеты все передаются. Цитата(Wic @ Mar 31 2017, 07:58) По ощущениям, у вас канал передачи влияет на канал приёма. Тут очень вероятна не правильная разводка платы и/или согласование с магнетикой(разъёмом) По хорошему нужно смотреть разводку платы Вот тут пишут, что Ethernet 100 пролезет везде, и можно ничего не согласовывать и использовать двухслойные и однослойные платы: https://electronix.ru/forum/index.php?showt...p;#entry1488846 Но несмотря на это, у нас всё разведено с расчётом на 1Гбит/c короткими диффпарами 100 Ом (длина 20мм) и стоят согласующие резисторы см. схему.
  11. Цитата(andrewkrot @ Mar 30 2017, 18:12) А что мешает скомпилить для другой плис проект? Vivado, т.к. оно поддерживает ограниченное кол-во семейств.
  12. Цитата(eugen_pcad_ru @ Mar 29 2017, 21:10) WireShark-ом смотрите? Да. Promiscuous mode включён. ОС Win 7. Смотрели на разных ПК. Цитата(andrewkrot @ Mar 29 2017, 22:39) Попробуйте свою прошилку на какой-нибудь плате с другим PHY чипом. Дык там и ПЛИС другая. Цитата(iosifk @ Mar 29 2017, 17:16) А если на проводах сделать заглушку Tx-Rx, то нормально работает? Можно попробовать завтра диффпары перекрестить, чтобы ПК проверить. А, чтобы так плату проверить, надо переписывать прошивку, делать генератор и проверятор пакетов.
  13. Цитата(Flood @ Mar 29 2017, 16:44) Все ли хорошо на клоке 88e1111? Осциллограммы на XTAL-ногах чистые? Также можно проверить сам кварц и номиналы пикофарадных конденсаторов. У нас кварцевый генератор AU-25.000MBE-T.
  14. Цитата(litv @ Mar 29 2017, 15:19) Такой проблемы у нас нет и на 1Гиге. Похоже что на одновременной передаче и приеме помеха перекрестная. Может неправильно кабель езернет зажат http://www.hardware.zp.ua/docs/ether10.htm или разьем разведен не так или по питанию чтото выскакивает. Питание смотрели осциллографом с полосой 1ГГц - всё чисто. Кабеля разные пробовали. Короткие, длинные, заводские, самодельные. Ничего не меняется. Также осциллографировали сигналы на выводах разъёма RJ45 со встроенным магнетиксом при вставленном кабеле - они есть только на первых двух дифф.парах MDI0, MDI1 - на остальных контактах разъёма пустота. Если бы бы неправильно включён разъём - то сигналы были бы на других ногах разъёма. Также подпаивал на проводках другой разъём с другой цоколёвкой от HALO - соответственно цоколёвку заново смотрел. Самое обидное - никакой реакции, было бы хоть какое-нибудь ухудшение или улучшение. P.S. На соседней ветке форума вчера бурно обсуждали как на двухслойке 100МБит Ethernet работает. Вроде как преобладало мнение, что 100BASE-TX всё нипочём, и сопротивление волновое можно не согласовывать и длину дорожек по 10см делать. P.S.2 Вот фрагмент платы с Ethernet. [attachment=106295:brd.png]
  15. Добрый день. Есть самодельная плата с Kintex7 и Marvell 88E1111. В ПЛИС стоит ядро Xilinx TEMAC из Vivado 16.4. Принимаемые пакеты с MACa берем по интерфейсу AXIstream закольцовываем и отправляем обратно напрямую, без участия DMA и микроблейзов. Сеть 100BASE-TX, Full Duplex - 100МБит/c. Светодиоды на Марвеле, соответствующие светятся. Плату подключаем напрямую к ПК. С ПК отправляем 50 пакетов по 1514 байт с максимально возможной скоростью. Назад в ПК приходят все пакеты, но примерно 2-3 штуки из них обрезанные по длине, случайным образом. Т.е. начало пакета правильное (счётчик), потом он резко обрывается. Косяк на приёме данных с ПК. Смотрели чипскопом обрезанные пакеты идут уже с PHY на MAC. Включили внутри 88E1111 счётчик ошибок CRC, он увеличивается каждый раз на количество битых пакетов. Ещё когда в ПК смотрим обрезанные пакеты Wireshark'oм, то CRC у них правильная, что тоже указывает, что пакет побился на приёме, закольцевался с наружи TEMACa и ушёл обратно уже с новой CRC. Проблема наблюдается на нескольких одинаковых платах. Плата многослойка. От PHY до разъёма с магнетиксом где-то 20 мм. Микросхема PHY 88E1111 вызвала подозрение - перепаял на новую от другого поставщика, с другой датой изготовления - ничего не изменилось. Пробовали менять кабель, перепаивали резисторы согласующие на плате (вместо 50 ом ставили 75, 100, 120), добавлял конденсаторов по питанию, меняли разъём с магнетиксом: вместо MagJack TRP, аккуратно привертолётили HALO HFJ11-1G01ERL. Пробовали менять ПК на ноутбук. Ничего не меняется вообще - стабильно 2-3 пакета на 50 обрезанные. С ПК на ноутбук той же программой передается всё нормально. Питание в норме 2.5В и 1В, цифровое и аналоговое питание 2.5В развязано фильтром. Смотрели осциллографом и питание и сигналы на разъёме Ethernet. Ничего подозрительного не увидели. Подскажите люди добрые, в чём тут может быть проблема? Может еррата какая-нибудь есть? P.S. ещё заметили, что пакеты обрезаются только когда идёт одновременный приём и передача данных. Если данные только принимать и не передавать обратно, то счётчик ошибок CRC в PHY не увеличивается.