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

Не всегда стартует Ultrascale+, было у кого?

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

Есть плата с чипом XCZU4. Снаружи DDR4 1Гб+ загрузочная флешь MT25QU256. Из 100 плат 5 шт ведут себя нехорошо, а именно:

Если плата долго полежала (час-два, когда как) 🙂 , то при включении грузится ПЛИС, но по всей видимости процессорные ядра не стартуют. Никаких признаков работы ядер нет,в т.ч. системный уарт. При этом PL часть работает. Если выключить питание и включить - стабильно запускается. И потом можно сколь угодно перетыкать питание - стабильно все запускается. 50 раз точно проверял. Полежит час-два - при первом включении та же история. 

Перепаял ПЛИС, DDR, флешку - все без толку. Поведение то же.

Ресет сделан на ADM6711 - выход ее подключен к POR_RESET_B и PS_SRST.

Но я не успокоился - думаю, раз ПЛИС грузится - поставлю ка я вочдог, который если процессор не дернет за линию - через n секунд дергает за master reset у AD6711, т.е. ПЛИС ресетит сама себя.

Ну и что вижу - ПЛИС регулярно, через n сек. ресетится, но процессорные ядра не стартуют. Стоит переткнуть питание - все начинает работать и так пока снова долго не полежит.

Загрузку ПЛИС контролирую по светодиодам PS_DONE и PS_INIT_B - они светятся когда ПЛИС загружена, т.е. на этих ногах "1".

Повторюсь, все платы из 100, кроме 5 шт. работают нормально и ничего подобного за ними не наблюдается.

 

Было у кого такое? Что делать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте соответствие порядка подачи питания требованиям документации. 

Желательно не просто по схеме и описаниям проверить, но и убедиться с помощью осциллографа на дурящих платах, что с этим всё в порядке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже про это думал. Порядок включения у меня по цепочке, по сигналам Power Good. Только если по факту посмотреть как там, на аномальных.

А так порядок сейчас такой:

0,85В

одновременно 1,2В и 1,1В

1,8В

3,3В

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если используете трансиверы то важно чтобы VMGTAVCC было раньше VMGTAVTT.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил осциллографом - все как задумано работает, ничего раньше чем надо не включается. Однако же эффект не ушел, даже после замены стабилизаторов.

55 минут назад, Nixon сказал:

Если используете трансиверы то важно чтобы VMGTAVCC было раньше VMGTAVTT.  

Трансиверы не использую, VMGTAVCC делается из VMGTAVTT линейным стабилизатором. Поэтому растут они вместе, но поскольку первый 0,9В, а второй - 1,2В, то первый дорастает до своего значения раньше, потом дорастает 1,2В

Теперь уже все списал бы на механический плавающий дефект (например, нестабильный контакт переходного отверстия), но смущает что еще 4 платы с такими же признаками. Не может же механический дефект одинаковый быть у 5 плат. Тем более что в остальных 95 платах ни одного дефекта. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"The recommended power-on sequence to achieve minimum current draw for the GTH or GTY transceivers is VCCINT, VMGTAVCC, VMGTAVTT OR VMGTAVCC, VCCINT, VMGTAVTT. There is no recommended sequencing for VMGTVCCAUX. Both VMGTAVCC and VCCINT can be ramped simultaneously."

Т.е. обязательно требуется чтобы VMGTAVCC был раньше чем VMGTAVTT

Я бы больше поставил все же на правильную последовательность чем на механический дефект - на это указывает также и то что при выключении и включении все работает нормально. Если вы не применяете rail discharge для своих питаний то это говорит о том что в этом случает неразряженные конденсаторы на VMGTAVCC (а там токи гораздо меньше) помогают соблюсти правильную последовательность

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 минуту назад, alexPec сказал:

Не может же механический дефект одинаковый быть у 5 плат. Тем более что в остальных 95 платах ни одного дефекта. 

При некачественной пайке я такое наблюдал несколько раз, что около 5% плат и даже больше по-разному чудят, в том числе и не запускаются. Может быть это банальный недогрев, посмотрите под микроскопом на форму шаров и сравните их с шарами на рабочих платах. Ещё можно попробовать перед запуском нажать пальцем на корпус посильнее и не отпуская пальца подать питание: если будет запускаться, то это однозначно проблема пайки.

10 минут назад, Nixon сказал:

The recommended power-on sequence to achieve minimum current draw for the GTH or GTY transceivers

Здесь нет ни слова, что несоблюдение приведет к проблемам запуска, это всего лишь способ не перегружать источник в момент пуска.

10 минут назад, Nixon сказал:

Я бы больше поставил все же на правильную последовательность чем на механический дефект - на это указывает также и то что при выключении и включении все работает нормально. Если вы не применяете rail discharge для своих питаний то это говорит о том что в этом случает неразряженные конденсаторы на VMGTAVCC (а там токи гораздо меньше) помогают соблюсти правильную последовательность

Я пока ни разу не сталкивался с проблемой запуска хилых ПЛИС при одновременной подаче VMGTAVCC и VMGTAVTT, а суммарный тираж плат больше 20e3. Непохоже это на причину проблемы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может и не влияет. Но лучше последовательность соблюдать.

Кроме того посмотрите на время нарастания напряжений на источниках - не более 40ms до уровня 95%

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что, Nixon сказал:

Кроме того посмотрите на время нарастания напряжений на источниках - не более 40ms до уровня 95%

Вот на это действительно стоит обратить внимание и проверить осциллографом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 минут назад, Nixon сказал:

Я бы больше поставил все же на правильную последовательность чем на механический дефект - на это указывает также и то что при выключении и включении все работает нормально.

Но ведь абсолютно такие же платы, 95% работают нормально... Если бы причина была в противоречии между реальной конструкцией и  документацией, думаю не работало бы гораздо больше.

 

3 минуты назад, Nixon сказал:

Может и не влияет. Но лучше последовательность соблюдать.

Кроме того посмотрите на время нарастания напряжений на источниках - не более 40ms до уровня 95%

А вот это не смотрел, что-то на глаза не попалось это требование. Гляну, спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обязательно тестируйте ддр на проце - не полагайтесь на сигнал конец калибровки - он не дает полной гарантии работоспособности ддр. Необходимый минимум тестов во всем диапазоне адресов - несколько разных масок и непрерывный счетчик для выявления проблем с адресами. Тест лучше всего запускать из памяти проца а не из ддр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, fguy сказал:

Обязательно тестируйте ддр на проце - не полагайтесь на сигнал конец калибровки - он не дает полной гарантии работоспособности ддр. Необходимый минимум тестов во всем диапазоне адресов - несколько разных масок и непрерывный счетчик для выявления проблем с адресами. Тест лучше всего запускать из памяти проца а не из ддр.

Это обязательная вещь. Все проходят полное тестирование по программе из шаблона memory test

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, alexPec сказал:

Это обязательная вещь. Все проходят полное тестирование по программе из шаблона memory test

Надо проверять весь объем и более тщательно, а не "вот это вот" из сдк.

 

  В 09.05.2024 в 10:12, alexPec сказал:

Если плата долго полежала (час-два, когда как) 🙂 , то при включении грузится ПЛИС, но по всей видимости процессорные ядра не стартуют.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

59 минут назад, fguy сказал:

Надо проверять весь объем и более тщательно, а не "вот это вот" из сдк.

Да вроде там прилично проверяется - и бегущими нулями, и единицами и паттерны, и рандомные тесты какие-то есть и все эти тесты я провожу на весь объем. Вообще, за всю историю работы с этими памятями (наверно, штук 1000+), единственный раз только попалась память битая.

Клоки все внутри ультраскейла формируются, снаружи только генератор на 50 мгц. И судя по тому, что плисовая часть как-то работает (по крайней мере, вочдог самописный), то с генераторами и плл-ами все в порядке. А вот процы никаких признаков жизни не подают,  в уарт вообще ничего не идет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А через JTAG подрубиться не пробовали? Там, вроде, есть режим, когда можно дебаг-сессию поднять, подключившись к уже загруженной в программе. Сам не пробовал такое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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