Jump to content

    

alexPec

Свой
  • Content Count

    1342
  • Joined

  • Last visited

Community Reputation

0 Обычный

About alexPec

  • Rank
    Профессионал
  • Birthday 07/02/1981

Recent Profile Visitors

4767 profile views
  1. Всем доброго дня. Был чип 5csema5u23 (на то же место в плате иногда ставил 5csxfc5c6u23) - все работало нормально. При подаче питания и отсутствии SD карты на SD карту постоянно идет клок и что-то по SDCMD (вижу осциллографом). Сейчас поставил 5scema6u23. Вроде как пин - совместимые. Включаю питание - не грузится. Осциллографом смотрю на ногах SDCLK и SDCMD у карты SD - ничего нет (+3.3В через подтяжку). Через jtag АРМ грузится и работает, ФПГА конфигурируется. BOOTSEL = 101, CLKSEL=11, клок на арме 50МГц. Прозвонил внутренние диоды ПЛИС у линий на SD, BOOTSEL - адекватные значения, обрывов нет. С этой же SD-картой и чипом 5CSXFC5C6U23 на другой плате все загружается нормально. На новый чип делал изменения в плате, но ПЛИС не трогал. Хотя случайно мог что-то испортить (что вряд ли), но даже не пойму что еще посмотреть. Констатировать смерь чипа очень бы не хотелось, только в самую последнюю очередь. Кто нибудь встречался с таким? Может чипы все-таки чем-то еще кроме логической емкости отличаются (в доках по арму и пинам отличий не нашел)? Есть предположения что такое может быть?
  2. Спасибо, вроде получилось. Пины появились, все скомпилировалось, буду пробовать.
  3. Попробовал свой десериализер написать, в RTL все как надо работает. Пытаюсь скомпилировать все это в реальном чипе - получаю то же самое: Phase 1.2 IO Placement/ Clock Placement/ Build Placer Device INFO: [Timing 38-35] Done setting XDC timing constraints. ERROR: [Place 30-743] IO/clock placer failed to collectively place all IOs and clock instances. This is likely due to design requirements or user constraints specified in the constraint file such as IO standards, bank/voltage/DCI/VREF specifications, together with the part and package being used for the implementation. Please check the above for any possible conflicts. ERROR: [Place 30-681] Sub-optimal placement for a global clock-capable IO pin and MMCM pair. As a workaround for this error, please insert a BUFG in between the IO and the MMCM. my_deser/clk_in/IBUFCTRL_INST (IBUFCTRL.O) is provisionally placed by clockplacer on IOB_X1Y28 my_deser/rx_mmcm_adv_inst (MMCME4_ADV.CLKIN1) is provisionally placed by clockplacer on MMCM_X0Y2 На входе на клок поставлен BUFGDS (т.к. вход дифференциальный, хочу LVDS25). При этом после синтеза в IO planner по-прежнему нет пинов из банков 24, 44. Сейчас то ему что надо, ведь ISERDES не использую, все на логике? Вот десериализер: my_deser.v
  4. Спасибо! Это что, засада получается? Только плату переразводить? А вручную десериализер рабочий реально сделать в банках 24,44 (имею ввиду тайминги)? 2 линии данных, скорость по линиям 240 мбит/с, клок 240/7 МГц.
  5. Всем доброго дня. Бьюсь второй день, победить проблему не могу. Есть диф. входы, в vivado 2018.2 подключены к IBUFGDS_DIFF_OUT. Случилась ошибка в плате, хочу перецепить входы навесным монтажом с банка HP (там все ставиться и компилируется нормально, но из-за ошибки в плате использовать такой вариант размещения невозможно) в банк HD. Чип XCZU3CG-sfvc784. Хочу перетащить входы в банк 24 или 44, там можно подпаяться. Беру ногу клока (p) и пытаюсь поставить на пин AB11 IO_L8P_HDGC_AD4P_44. Вижу надпись IO Port n has mismatched polarity with AB11. Ладно, пытаюсь поставить эту же ногу на отрицательный пин этой же пары AC11 IO_L8N_HDGC_AD4N_44. Получаю надпись The positive port (P-side) "clk_p" of a differential pair can not be placed on a negative package pin 'AC11' (IOBS). Вот как описан входной буфер: IBUFGDS_DIFF_OUT # ( .DIFF_TERM (FALSE) ) iob_clk_in ( .I (clk_p), .IB (clk_n), .O (clkin_p_i), .OB (clkin_n_i) ); Это 7-1 deserializer от ксайлинса. С линиями данных такая же беда. В списке пинов в IO планнере вообще нет пинов этих банков. В форумах везде пишут что LVDS25 размещают люди в HD банках. Что за ограничение такое? Не пойму, что ему надо. Подскажите пожалуйста.
  6. Всем доброго дня. Стало интересно, на чем делают TOF измерители расстояния, которые на али в ассортименте, типа такого: https://ru.aliexpress.com/item/LaserWorks-1500-RS232-TOF/32870223011.html?spm=a2g0v.search0104.3.168.4def1076e8bB7x&transAbTest=ae803_3&ws_ab_test=searchweb0_0%2Csearchweb201602_2_10065_10068_319_317_10696_453_10084_454_10083_10618_10307_10301_537_536_10059_10884_10889_10887_321_322_10915_10103_10914_10911_10910%2Csearchweb201603_52%2CppcSwitch_0&algo_pvid=5edf3056-35b6-4b29-9e1b-4825505add2e&algo_expid=5edf3056-35b6-4b29-9e1b-4825505add2e-26 Именно TOF, а не фазовый метод. С налету нашел только OPT3101. Есть еще альтернативы, чтобы хоть было с чем сравнить?
  7. Попробовал усилитель на RFPD3580 - при питании 31В (больше источник не выдает) выход максимум 31дБм. На входе начинаю увеличивать мощность - выход поднимается до 31 дБм, а дальше по спектроанализатору, поднимается не уровень канала, а уровень всего что вокруг канала. От резистора зависит потребление в пределах 0,17-0,3А. На мощности практически не сказывается. Что-то особенное с ним делали чтобы получить 33дБМ? Или я как-то успел его убить? Вход и выход у него согласовываются или просто через конденсаторы можно подать/снять сигнал?
  8. Вроде с питанием все ок, на осциллоскопе ставлю триггер на 0,05В меньше номинала на 0,85; 1,2; 1.8В - не срабатывает во время старта программы, когда все зависает.
  9. А как она не заводилась? Так же, висла при инициализации?
  10. 1. Камни точно такие же, как на отладке: MT40A256M16GE-083E-AAT:B Разводка конечно не такая же как на отладке, но группы данных, адресов и управления выровнены до 0,05мм. Разница есть в том, что у меня плата сделана под импеданс 50ом, и резисторы-терминаторы на концах линий адреса и управления поставлены 50 ом. А отладка сделана под 40 ом. Насчет прочего конфига - что имеете ввиду? Все параметры DDR контроллера оставил как у отладки. 2. Консольный - PSUART0. Но до него дело не доходит.
  11. Вот теперь точно тупик :) PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialization Programming Mode: Quasi-dynamic Group 3 Как я понимаю, этим сигналом запускается инициализация DDR и все виснет. И вот даже предположений нет, из-за чего такое может быть... То ли с железом что не так, то ли настройка DDR неверная.
  12. Да, конечно из main вызвал. Понятно что .tcl то же делает, только его по шагам не пустишь чтобы понять где стопорится все. Жесть! :) Я и не заметил... Тогда дубль два: перепроверил с шагами по исходнику - ток подскакивает действительно при инициализации PLL у APU и у DDR. А виснет все на этой строчке - в процедуре psu_ddr_phybringup_data (зеленая строчка): Ее выполняешь - и все, дебагер отваливается и все висит. Дебагер говорит что-то типа "memory read error..., access error..." . Что за магический регистр такой?
  13. Part указан именно тот, только изначально проект создан по XCZU7EV, а затем я в setting сменил part на XCZU3CG. Имеете ввиду изначально создавать проект с нужным part-ом? Взял тут psu_init, перетащил его в исходники, а в дебагере отключил запуск psu_init.tcl. В проц все залилось, но по строкам исходника не ходит, только дизассемблер. Тормозится на последней зеленой строчке. Именно после ее выполнения процессор висит (на следующую строчку не переходит), а ток подскакивает. Есть подозрение что это переход процессора на высокую частоту - включение умножения частоты, конфигурирование PLL. Только вот что сейчас дальше с этим счастьем делать пока не знаю.
  14. Тут я вывел targets, затем из SDK запустил на дебаг мемтест - вывалилось Info, затем, когда SDK висел в ожидании, еще раз вывел targets. Настройки тут: psu_init.html Еще такой момент. Я чтобы с чего-то начать (в части DDR) создал проект из темплейта (Base Zynq MPSoC) для ZCU104, т.к. чипы DDR поставлены у меня такие же как на ZCU104 . Затем сменил чип, урезал разрядность DDR до 32 бит, сменил клок входной на 50 МГЦ. Сделал очистить кэш для сабмодулей, Reset outputs, Generate outputs. После синтеза расставил ноги под свою плату, запустил implementation и generate bitstream. Потом Export hardware, launch SDK, создал проект из темплейта Zynq MPSoC DDR test (что-то типа этого). Перед стартом заливаю ПЛИС, затем в SDK делаю debug as hardware. Сейчас вот думаю, в Вивадо изначально для ZCU104 процессорная система рассчитана на 4 ядра APU, а у XCZU3CG только два. Интересно при перекомпиляции это учитывается или надо тот zynq, который был поставлен, удалить, и какой-то другой ZYNQ в блок-дизайне ставить?
  15. Да, тихо. И еще PS_INIT_B в нуле и PS_DONE в нуле...