Jump to content

    

Проблемы со стартом XCZU3CG

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

Отлаживал проект на XCZU7EV, на отладке ZCU104. Попутно делал свою плату на чипе поменьше - XCZU3CG-SFVC784-1I. Сейчас поставили этот чип и память DDR к нему (как на отладке, только 32 бита, без старших 32 бит). Включаю - питания в норме, пульсаций больших не наблюдаю (порядка 80мв, но осциллоскоп на землю ставишь - то же пульсации показывает такие же). Сделал тестовый проект, проверить DDR. В настройках указал этот чип

setting.thumb.jpg.5f2bc793d504806f0de3978607aa5e42.jpg

Скомпилировал, открываю HW manager в vivado 2018.2. Подключаю jtag через digilent HS3. Там вижу XCZU3_0 (т.е. чип видит). Жму Program device - получаю такое:

2.thumb.jpg.c140bcc45906ceadf8fa4858f0abe958.jpg

Сначала думал на кабель jtag, т.к. на ZCU104 работал со штатным USB, там jtag-usb встроенный. Подключил на ZCU104 этот кабель digilent HS3 (на ZCU104 есть отдельный разъем для JTAG). Там также видит чип, XCZU7, пробую залить его - все нормально программируется. Думал чип паленый, снял с него 2D barcode, залил на ксайлинкс - получил такое:

 

chip1.jpg.b2cb0392d9fe6748aed7976fbb03fcd4.jpg

В свойствах XCZU3 в HW manager вижу такое:

BSCAN_SWITCH_USER_MASK	0001
CLASS	hw_device
DID	jsn-JTAG-HS3-210299A56F1B-14710093-0
FULL_PROBES.FILE	
IDCODE	00010100011100010000000010010011
IDCODE_HEX	14710093
INDEX	0
IR_LENGTH	12
IS_SYSMON_SUPPORTED	true
MASK	00001111111111111111111111111111
MASK_HEX	0FFFFFFF
NAME	xczu3_0
PART	xczu3
PARTIAL_PROBES.FILES	
PROBES.FILE	
PROGRAM.DPA_COUNT	0
PROGRAM.DPA_MODE	
PROGRAM.DPA_PROTECT	false
PROGRAM.FILE	D:/xilinx_proj/zcu3_testrealboard/test_xczu3real.runs/impl_1/Base_Zynq_MPSoC_wrapper.bit
PROGRAM.HW_BITSTREAM	D:/xilinx_proj/zcu3_testrealboard/test_xczu3real.runs/impl_1/Base_Zynq_MPSoC_wrapper.bit
PROGRAM.HW_CFGMEM	
PROGRAM.HW_CFGMEM_BITFILE	
PROGRAM.HW_CFGMEM_TYPE	
PROGRAM.IS_AES_PROGRAMMED	false
PROGRAM.IS_RSA_PROGRAMMED	false
PROGRAM.IS_SUPPORTED	true
PROGRAM.OPTIONS	
PROGRAM.READBACK_FILE	
REGISTER.BOOT_STATUS	00000000000000000000000000000000
REGISTER.BOOT_STATUS.BIT00_0_STATUS_VALID	0
REGISTER.BOOT_STATUS.BIT01_0_FALLBACK	0
REGISTER.BOOT_STATUS.BIT02_0_INTERNAL_PROG	0
REGISTER.BOOT_STATUS.BIT03_0_WATCHDOG_TIMEOUT_ERROR	0
REGISTER.BOOT_STATUS.BIT04_0_ID_ERROR	0
REGISTER.BOOT_STATUS.BIT05_0_CRC_ERROR	0
REGISTER.BOOT_STATUS.BIT06_0_WRAP_ERROR	0
REGISTER.BOOT_STATUS.BIT07_0_SECURITY_ERROR	0
REGISTER.BOOT_STATUS.BIT08_1_STATUS_VALID	0
REGISTER.BOOT_STATUS.BIT09_1_FALLBACK	0
REGISTER.BOOT_STATUS.BIT10_1_INTERNAL_PROG	0
REGISTER.BOOT_STATUS.BIT11_1_WATCHDOG_TIMEOUT_ERROR	0
REGISTER.BOOT_STATUS.BIT12_1_ID_ERROR	0
REGISTER.BOOT_STATUS.BIT13_1_CRC_ERROR	0
REGISTER.BOOT_STATUS.BIT14_1_WRAP_ERROR	0
REGISTER.BOOT_STATUS.BIT15_1_SECURITY_ERROR	0
REGISTER.BOOT_STATUS.BIT16_RESERVED	0000000000000000
REGISTER.CONFIG_STATUS	00000000000000000000000000000000
REGISTER.CONFIG_STATUS.BIT00_CRC_ERROR	0
REGISTER.CONFIG_STATUS.BIT01_DECRYPTOR_ENABLE	0
REGISTER.CONFIG_STATUS.BIT02_PLL_LOCK_STATUS	0
REGISTER.CONFIG_STATUS.BIT03_DCI_MATCH_STATUS	0
REGISTER.CONFIG_STATUS.BIT04_END_OF_STARTUP_(EOS)_STATUS	0
REGISTER.CONFIG_STATUS.BIT05_GTS_CFG_B_STATUS	0
REGISTER.CONFIG_STATUS.BIT06_GWE_STATUS	0
REGISTER.CONFIG_STATUS.BIT07_GHIGH_STATUS	0
REGISTER.CONFIG_STATUS.BIT08_MODE_PIN_M[0]	0
REGISTER.CONFIG_STATUS.BIT09_MODE_PIN_M[1]	0
REGISTER.CONFIG_STATUS.BIT10_MODE_PIN_M[2]	0
REGISTER.CONFIG_STATUS.BIT11_INIT_B_INTERNAL_SIGNAL_STATUS	0
REGISTER.CONFIG_STATUS.BIT12_INIT_B_PIN	0
REGISTER.CONFIG_STATUS.BIT13_DONE_INTERNAL_SIGNAL_STATUS	0
REGISTER.CONFIG_STATUS.BIT14_DONE_PIN	0
REGISTER.CONFIG_STATUS.BIT15_IDCODE_ERROR	0
REGISTER.CONFIG_STATUS.BIT16_SECURITY_ERROR	0
REGISTER.CONFIG_STATUS.BIT17_SYSTEM_MONITOR_OVER-TEMP_ALARM_STATUS	0
REGISTER.CONFIG_STATUS.BIT18_CFG_STARTUP_STATE_MACHINE_PHASE	000
REGISTER.CONFIG_STATUS.BIT21_SECURITY_STATUS	000
REGISTER.CONFIG_STATUS.BIT24_RESERVED	0
REGISTER.CONFIG_STATUS.BIT25_CFG_BUS_WIDTH_DETECTION	00
REGISTER.CONFIG_STATUS.BIT27_SECURITY_AUTH_ERROR	0
REGISTER.CONFIG_STATUS.BIT28_PUDC_B_PIN	0
REGISTER.CONFIG_STATUS.BIT29_BAD_PACKET_ERROR	0
REGISTER.CONFIG_STATUS.BIT30_CFGBVS_PIN	0
REGISTER.CONFIG_STATUS.BIT31_RESERVED	0
REGISTER.COR0	00000000
REGISTER.COR0.BIT00_GWE_CYCLE	000
REGISTER.COR0.BIT03_GTS_CYCLE	000
REGISTER.COR0.BIT06_LOCK_CYCLE	000
REGISTER.COR0.BIT09_MATCH_CYCLE	000
REGISTER.COR0.BIT12_DONE_CYCLE	000
REGISTER.COR0.BIT15_RESERVED	00
REGISTER.COR0.BIT17_OSCFSEL	000000
REGISTER.COR0.BIT23_RESERVED	0
REGISTER.COR0.BIT24_DRIVE_DONE	0
REGISTER.COR0.BIT25_RESERVED	0
REGISTER.COR0.BIT26_ECLK_EN	0
REGISTER.COR0.BIT27_RESERVED	00000
REGISTER.COR1.BIT00_BPI_PAGE_SIZE	00
REGISTER.COR1.BIT02_BPI_1ST_READ_CYCLE	00
REGISTER.COR1.BIT04_RESERVED	0000
REGISTER.COR1.BIT08_RBCRC_EN	0
REGISTER.COR1	00000000
REGISTER.COR1.BIT09_RBCRC_NO_PIN	0
REGISTER.COR1.BIT10_RESERVED	00000
REGISTER.COR1.BIT15_RBCRC_ACTION	00
REGISTER.COR1.BIT17_PERSIST_DEASSERT_AT_DESYNC	0
REGISTER.COR1.BIT18_RESERVED	00000000000000
REGISTER.EFUSE.DNA_PORT	000000000000000000000000
REGISTER.EFUSE.FUSE_DNA	000000000000000000000000
REGISTER.IP_DISABLE	00000000000000000000000000000000
REGISTER.IP_DISABLE.BIT00_RPU_DIS	00
REGISTER.IP_DISABLE.BIT02_GPU_DIS	0
REGISTER.IP_DISABLE.BIT03_CAN_DIS	0
REGISTER.IP_DISABLE.BIT04_APU_DIS	0000
REGISTER.IP_DISABLE.BIT08_VCU_DIS	0
REGISTER.IP_DISABLE.BIT09_RESERVED	00000000000000000000000
REGISTER.IR	000001000001
REGISTER.IR.BIT00_ALWAYS_ONE	1
REGISTER.IR.BIT01_ALWAYS_ZERO	0
REGISTER.IR.BIT02_ISC_DONE	0
REGISTER.IR.BIT03_ISC_ENABLED	0
REGISTER.IR.BIT04_INIT_COMPLETE	0
REGISTER.IR.BIT05_DONE	0
REGISTER.IR.BIT06	1
REGISTER.IR.BIT07	0
REGISTER.IR.BIT08	0
REGISTER.IR.BIT09	0
REGISTER.IR.BIT10	0
REGISTER.IR.BIT11	0
REGISTER.JTAG_ERROR_STATUS	0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
REGISTER.JTAG_ERROR_STATUS.BIT000_CSU_BR_ERROR	0
REGISTER.JTAG_ERROR_STATUS.BIT001_PMU_PB_ERR_FLAG	0
REGISTER.JTAG_ERROR_STATUS.BIT002_PMU_SERV_ERR_FLAG	0
REGISTER.JTAG_ERROR_STATUS.BIT003_PMU_SERV_FW_ERR	0000
REGISTER.JTAG_ERROR_STATUS.BIT007_PMU_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT008_CSU_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT009_PLL_LOCK_ERR	00000
REGISTER.JTAG_ERROR_STATUS.BIT014_PL_GEN_ERR	0000
REGISTER.JTAG_ERROR_STATUS.BIT018_FP_TIMEOUT_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT019_LP_TIMEOUT_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT020_RESERVED_ERR	00000
REGISTER.JTAG_ERROR_STATUS.BIT025_CLOCK_MON_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT026_XPMU_ERR	00
REGISTER.JTAG_ERROR_STATUS.BIT028_SUPPLY_DET_ERR	00000000
REGISTER.JTAG_ERROR_STATUS.BIT036_FPD_WDOG_TIMER_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT037_LPD_WDOG_TIMER_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT038_RPU_CCF_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT039_RPU_LOCKSTEP_ERR	00
REGISTER.JTAG_ERROR_STATUS.BIT041_FPD_TEMP_ALERT	0
REGISTER.JTAG_ERROR_STATUS.BIT042_LPD_TEMP_ALERT	0
REGISTER.JTAG_ERROR_STATUS.BIT043_RPU1_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT044_RPU0_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT045_OCM_ECC_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT046_DDR_ECC_ERR	0
REGISTER.JTAG_ERROR_STATUS.BIT047_PMU_PB_ERR_DATA	0000000000000000000000000000000
REGISTER.JTAG_ERROR_STATUS.BIT078_PMU_PB_ERR_FLAG	0
REGISTER.JTAG_ERROR_STATUS.BIT079_PMU_SERV_ERR_DATA	00000000000000000000
REGISTER.JTAG_ERROR_STATUS.BIT099_PMU_SERV_ERR_FLAG	0
REGISTER.JTAG_ERROR_STATUS.BIT100_PMU_SERV_FW_ERR	0000
REGISTER.JTAG_ERROR_STATUS.BIT104_CSU_BR_ERR_TYPE	0000000000000000
REGISTER.JTAG_ERROR_STATUS.BIT120_CSU_BR_ERROR	0
REGISTER.JTAG_STATUS	00110000000000111000001100000001
REGISTER.JTAG_STATUS.BIT00_ALWAYS_1	1
REGISTER.JTAG_STATUS.BIT01_ALWAYS_0	0
REGISTER.JTAG_STATUS.BIT02_PL_TAP	0
REGISTER.JTAG_STATUS.BIT03_ARM_DAP	0
REGISTER.JTAG_STATUS.BIT04_ARM_DAP_SEC_GATE	0
REGISTER.JTAG_STATUS.BIT05_PL_TAP_SEC_GATE	0
REGISTER.JTAG_STATUS.BIT06_PMU_MDM_SEC_GATE	0
REGISTER.JTAG_STATUS.BIT07_DDR_PHY_SEC_GATE	0
REGISTER.JTAG_STATUS.BIT08_FUSE_MDM_DIS	1
REGISTER.JTAG_STATUS.BIT09_PL_PWR_STS	1
REGISTER.JTAG_STATUS.BIT10_BISR_FAILED	0
REGISTER.JTAG_STATUS.BIT11_LBIST_FAILED	0
REGISTER.JTAG_STATUS.BIT12_SCAN_CLEAR_FAILED	0
REGISTER.JTAG_STATUS.BIT13_CBR_DONE	0
REGISTER.JTAG_STATUS.BIT14_BOOT_MODE	1110
REGISTER.JTAG_STATUS.BIT18_UNUSED	0
REGISTER.JTAG_STATUS.BIT19_MODE_IS_DFT	0
REGISTER.JTAG_STATUS.BIT20_PSTP_CTRL	00000000
REGISTER.JTAG_STATUS.BIT28_PS_VERSION	0011
REGISTER.TIMER	00000000
REGISTER.TIMER.BIT00_TIMER_VALUE	000000000000000000000000000000
REGISTER.TIMER.BIT30_TIMER_CFG_MON	0
REGISTER.TIMER.BIT31_TIMER_USR_MON	0
REGISTER.USERCODE	00000000
REGISTER.USR_ACCESS	00000000
REGISTER.WBSTAR	00000000
REGISTER.WBSTAR.BIT00_START_ADDR	00000000000000000000000000000
REGISTER.WBSTAR.BIT29_RS_TS_B	0
REGISTER.WBSTAR.BIT30_RS	00
UNKNOWN_DEVICE	false
USER_CHAIN_COUNT	4
VARIANT_NAME	zu3eg
XSDB_USER_BSCAN	1,3

Смущает, что jtag видит VARIANT NAME zu3eg.

Подскажите пожалуйста, что еще нужно, чтобы хотя бы прошивка залилась в него и почему он ругается на несоответствие?

 

Заранее благодарен!

Share this post


Link to post
Share on other sites

Биты не читал, но... тактовый сигнал на PS (REF_CLK) подан? Сбросы сняты? Дайте картинку как выглядит JTAG-цепочка в виваде.

Share this post


Link to post
Share on other sites

было такое

обратите внимание что у вас чип c концовкой -i возможно у вас чип с концовкой -i-es, но вивадо 2018 по умолчанию их не видит - нужно определенное заклинание - чтобы оно их начало видеть мне кажется вивадо 2016 умеет работать с обоими.

вот это заклинание попробуйте через tcl консоль 

enable_beta_device xczu3сg*
enable_beta_device*

если появятся es чипы и поможет то добавте заклинание в init.tcl

Share this post


Link to post
Share on other sites
1 час назад, alexadmin сказал:

Биты не читал, но... тактовый сигнал на PS (REF_CLK) подан? Сбросы сняты? Дайте картинку как выглядит JTAG-цепочка в виваде.

Почитал ксайликс форумы, там говорят, что надо перекомпилить под тот кристалл, который он видит. Так и сделал. Уже не ругается на несоответствие чипа, но и не шьется.

В jtag, кстати, нет арма. Вы про эту цепочку? :

image.png.27ab8654aa2979f3f8b0ead745d23509.png

 

Экспериментами с рабочей отладочной платой было установлено, что отсутствие арма и нежелание шить плис с таким же сообщением возникает при нажатых PS_POR_B или PS_SRST_B или PS_PROG_B. Т.е. похоже в случае, когда арм не работает. Возможно и из-за клока такое бывает - не проверял.

POR_B и SRST_B я беру с супервизора, который от момента подачи последнего питания держит их в нуле 200мс, затем отпускает. Реально так и есть - смотрел осциллом. У меня они соединены. PS_PROG_B просто зацепил через резистор на +1.8. Мерил на резисторе - там +1.8.

Клок с генератора, смотрел осциллом - все впорядке, 50 МГЦ на PS_REF_CLK идет. Ума не приложу, что еще можно проверить, что ему надо чтобы АРМ запустить?

37 минут назад, vitus_strom сказал:

было такое

обратите внимание что у вас чип c концовкой -i возможно у вас чип с концовкой -i-es,

Нет, по маркировке не ES, да и сайт ксайлинка по barcode выдает не ES

Share this post


Link to post
Share on other sites

Нда. По внешним признакам или клока нет или в сбросе. Может быть плохо припаяно?

Еще вроде такое бывало, если стоит невалидный boot mode. У вас вроде на загрузку с SD настроено. Если есть возможность - пощелкайте, попробуйте поставить 0000 (JTAG).

 

Share this post


Link to post
Share on other sites
13 минут назад, alexadmin сказал:

Нда. По внешним признакам или клока нет или в сбросе. Может быть плохо припаяно?

Еще вроде такое бывало, если стоит невалидный boot mode. У вас вроде на загрузку с SD настроено. Если есть возможность - пощелкайте, попробуйте поставить 0000 (JTAG).

 

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

Boot mode тоже пробовал выставлять в 0000 - то же самое. АРМ похоже не заводится... Значит все по науке с внешними сигналами, ничего больше для запуска арму не нужно?

Остается только питание/земли перепроверить...

Share this post


Link to post
Share on other sites
1 hour ago, alexPec said:

перекомпилить под тот кристалл, который он видит

я собственно про это и говорил... но если уже не говорит  что нет несоответствия то вы на шаг впереди

 

Share this post


Link to post
Share on other sites

"В jtag, кстати, нет арма. Вы про эту цепочку? :"

вроде dummy_dap есть 

попробуйте зашить бит файл 

в сдк 2017.1 вроде баг был не хотел программить чипы но из вивадо хардваер менежера все работало

Share this post


Link to post
Share on other sites

Сначала камень FSBLом оживите, PMUFW залейте, потом уже битстрим заливайте.

Share this post


Link to post
Share on other sites
2 часа назад, gosha-z сказал:

Сначала камень FSBLом оживите, PMUFW залейте, потом уже битстрим заливайте.

Так он даже не пытается грузиться. На SD ногах никакой активности после дерганья за POR_B. И в jtage его нет.

Share this post


Link to post
Share on other sites
3 часа назад, gosha-z сказал:

Выдачу xsct команды targets покажите

477990514_3.jpg.24e8f8e2e599deb972ca20a92f868310.jpg

Share this post


Link to post
Share on other sites

APU в отключке, оживлять нечего. Причем как-то радикально в отключке, даже по JTAG не видно. Как зовут супервизор питания? Попробуйте снизить PS клок до рекомендуемых 33.33, может в этом какая засада...

Share this post


Link to post
Share on other sites
7 минут назад, gosha-z сказал:

APU в отключке, оживлять нечего. Причем как-то радикально в отключке, даже по JTAG не видно. Как зовут супервизор питания? Попробуйте снизить PS клок до рекомендуемых 33.33, может в этом какая засада...

ADM6711, мониторит 3.3В, оно последнее включается, выход через делитель доводится до 1.8В

С клоком - да, можно попробовать.

Share this post


Link to post
Share on other sites
13 minutes ago, alexPec said:

ADM6711

Для меня до сих пор остается загадкой: чем народу не нравится All-in-One супервизор питания, сделанный специально для ZUS+, все почему-то норовят сделать россыпью?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now