zynq 维修调试记录 客服支持 工作记录

 米联的板子用底板供电用JTAG往里面下程序的时候也出现了如下问题:

 

跟客服进行沟通,客服的回答是:一般是两种可能,一个是开发板坏了,

 

进行如下操作,操作的程序和过程见下图:

1.运行测试程序(按照02_基于zynq的soc入门基础中01 hello_world实验 编写测试程序)

 

 2.(在你要调试的工程 右键--generate linker script) 把程序调整放到ARM自带的RAM中运行了

出现了找不到mem_test_elf

 把这个选项中的elf都删除,重新编译就行了。

测试结果 :memory fail

另外在测试的时候还有另外一个问题:

这个核心板 单独拿下来不行 但是放到底板上就可以。。

单独通过microUSB接口,原装的充电器,出现芯片不能识别的问题,但是接在底板上就没有问题,下图是两种方式:

返厂维修,客服打电话反映处理情况:

电源模块出现问题了,五个电源模块全部换掉了,测试的时候可以看电源(的电感引脚?)跟地是不是短接,如果短接,卸掉电源模块再看是不是短接,最终的处理方案就是换电源模块: 全部换掉。核心板也没有再发现识别不到的问题。

 

 

核心板供电5V,输入要确保稳定 ,文波不要超过5.4V以上,自己设计电路也要确保,因为DC-DC的芯片耐压最大5.5V,超过电源芯片容易坏

但是最好建议JTAG放到底板,而且加ESD静电保护

 

总结:

在硬件调试的时候,第一步要看原理图,不止要看连接关系,还要电源分布,各个器件应该是多少的电源。测试的时候出现问题,先看电压电流对不对,然后测试各个测试点的电压是不是对

 

自己的板子的问题应该就是 电源的问题

 

20190511:

sdk log里面的输出为:

注意:17:27:10 ERROR    : Memory write error at 0xF8000114. Invalid DAP ACK value: 0


17:26:00 INFO	: Connected to target on host '127.0.0.1' and port '3121'.
17:26:55 INFO	: Jtag cable 'Digilent JTAG-SMT2 21025DA09189' is selected.
17:26:55 INFO	: 'jtag frequency' command is executed.
17:26:55 INFO	: Sourcing of 'G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/ps7_init.tcl' is done.
17:26:55 INFO	: Context for 'APU' is selected.
17:26:55 INFO	: System reset is completed.
17:26:58 INFO	: 'after 3000' command is executed.
17:27:07 INFO	: 'targets -set -filter {jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189" && level==0} -index 1' command is executed.
17:27:10 INFO	: FPGA configured successfully with bitstream "G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system_wrapper.bit"
17:27:10 INFO	: Context for 'APU' is selected.
17:27:10 INFO	: Hardware design information is loaded from 'G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system.hdf'.
17:27:10 INFO	: 'configparams force-mem-access 1' command is executed.
17:27:10 INFO	: Context for 'APU' is selected.
17:27:10 ERROR	: Memory write error at 0xF8000114. Invalid DAP ACK value: 0
17:27:10 INFO	: ----------------XSDB Script----------------
connect -url tcp:127.0.0.1:3121
source G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/ps7_init.tcl
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189"} -index 0
rst -system
after 3000
targets -set -filter {jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189" && level==0} -index 1
fpga -file G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system_wrapper.bit
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189"} -index 0
loadhw -hw G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system.hdf -mem-ranges [list {0x40000000 0xbfffffff}]
configparams force-mem-access 1
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189"} -index 0
ps7_init
----------------End of Script----------------

 

火华:
下载失败,你看看是不是线没插好

_phenomenal:
线? 下载线吗?

_phenomenal:
可以检测到硬件 

火华:
可以识别到芯片?

正常的啊

硬件管理:

这里错误是memory write error at 0XF8000114,invalid DAP ACK value:0; 在viavado 里面可以显示硬件,用XMD% connect arm hw 输出error: unkonwn error occured.

那么通过手册查看0xf8000114,得到:

可以判断是DDR 出问题?

 

这个是正常的板子的sdk log :

21:53:07 INFO	: Connected to target on host '127.0.0.1' and port '3121'.
21:53:08 INFO	: Jtag cable 'Digilent JTAG-HS1 210249854957' is selected.
21:53:08 INFO	: 'jtag frequency' command is executed.
21:53:08 INFO	: Sourcing of 'G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/ps7_init.tcl' is done.
21:53:08 INFO	: Context for 'APU' is selected.
21:53:08 INFO	: System reset is completed.
21:53:11 INFO	: 'after 3000' command is executed.
21:53:11 INFO	: 'targets -set -filter {jtag_cable_name =~ "Digilent JTAG-HS1 210249854957" && level==0} -index 1' command is executed.
21:53:15 INFO	: FPGA configured successfully with bitstream "G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system_wrapper.bit"
21:53:15 INFO	: Context for 'APU' is selected.
21:53:15 INFO	: Hardware design information is loaded from 'G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system.hdf'.
21:53:15 INFO	: 'configparams force-mem-access 1' command is executed.
21:53:15 INFO	: Context for 'APU' is selected.
21:53:16 INFO	: 'ps7_init' command is executed.
21:53:16 INFO	: 'ps7_post_config' command is executed.
21:53:16 INFO	: Context for processor 'ps7_cortexa9_0' is selected.
21:53:16 INFO	: The application 'G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/Mem_test1/Debug/Mem_test1.elf' is downloaded to processor 'ps7_cortexa9_0'.
21:53:16 INFO	: 'configparams force-mem-access 0' command is executed.
21:53:16 INFO	: ----------------XSDB Script----------------
connect -url tcp:127.0.0.1:3121
source G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/ps7_init.tcl
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-HS1 210249854957"} -index 0
rst -system
after 3000
targets -set -filter {jtag_cable_name =~ "Digilent JTAG-HS1 210249854957" && level==0} -index 1
fpga -file G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system_wrapper.bit
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-HS1 210249854957"} -index 0
loadhw -hw G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system.hdf -mem-ranges [list {0x40000000 0xbfffffff}]
configparams force-mem-access 1
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-HS1 210249854957"} -index 0
ps7_init
ps7_post_config
targets -set -nocase -filter {name =~ "ARM*#0" && jtag_cable_name =~ "Digilent JTAG-HS1 210249854957"} -index 0
dow G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/Mem_test1/Debug/Mem_test1.elf
configparams force-mem-access 0
----------------End of Script----------------

21:53:16 INFO	: Memory regions updated for context APU
21:53:16 INFO	: Context for processor 'ps7_cortexa9_0' is selected.
21:53:16 INFO	: 'con' command is executed.
21:53:16 INFO	: ----------------XSDB Script (After Launch)----------------
targets -set -nocase -filter {name =~ "ARM*#0" && jtag_cable_name =~ "Digilent JTAG-HS1 210249854957"} -index 0
con
----------------End of Script----------------

21:53:16 INFO	: Launch script is exported to file 'G:\ZYNQ\osrc-lab\boards\MZ7X\debian\fpga\system\system.sdk\.sdk\launch_scripts\xilinx_c-c++_application_(system_debugger)\system_debugger_using_debug_mem_test1.elf_on_local.tcl'

 

20190512 

让程序运行到zynq内部的ram之后,DAP白条旁边的板子 运行 connect arm hw 出现正常结果,R66已经去掉

 

 

http://m.elecfans.com/article/480727.html zynq的三种启动方式(JTAG,SD,QSPI) 这个可以看看

这里样调用ps7_init()只适用于只用OCM的情况,经测试打开DDR3后再这样调用会在ps7_init()中初始化失败,调试发现在初始化PLL时失败(原因未知)

 

 

对照sdk log ps7_init 以及上面这个报错信息

connect -url tcp:127.0.0.1:3121
source G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/ps7_init.tcl
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189"} -index 0
rst -system
after 3000
targets -set -filter {jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189" && level==0} -index 1
fpga -file G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system_wrapper.bit
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189"} -index 0
loadhw -hw G:/ZYNQ/osrc-lab/boards/MZ7X/debian/fpga/system/system.sdk/system_wrapper_hw_platform_0/system.hdf -mem-ranges [list {0x40000000 0xbfffffff}]
configparams force-mem-access 1
targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 21025DA09189"} -index 0
ps7_init

 

可以判断是ps7_init 出了问题

 

可以参照:https://forum.digilentinc.com/topic/3176-zybo-getting-started-scenario-invalid-dap-ack-value-0/

https://forums.xilinx.com/t5/Embedded-Development-Tools/how-to-recover-from-Invalid-DAP-ACK-value-0-on-linux/td-p/937907

 

以及https://blog.csdn.net/weixin_39673080/article/details/89047629 ZYNQ_SDK报错解决_"AP transaction error, DAP status f0000021"

 

在xilinx官网上有人提到了:https://forums.xilinx.com/t5/Embedded-Boot-and-Configuration/INVALID-DAP-ACK-VALUE-7-ERROR/m-p/737260/highlight/true  降低JTAG的频率: https://forums.xilinx.com/t5/Embedded-Boot-and-Configuration/INVALID-DAP-ACK-VALUE-7-ERROR/m-p/737260/highlight/true

问题解决了。。。解决了 哈哈  降低JTAG的频率就好了  其实不是 是因为电压给的不到位 电压不稳导致的下载不成功

 

烧写flash的时候会显示启动方式

 

逻辑分析仪看不到:据说在hardware manager 里面可以看到

20190519
设置程序运行在内部的RAM里面,写错误不在出现,但是DAP的 ack 一直存在

先查电压

ip核的生成 --加载的时候显示没有IP核  所以我重新生成了一下
并将原来的ip删掉 加入我生成的IP 连线关系不变,但是在最后综合的时候 原来的IP 核报错,怎么re mak这个项目  最好好像是report 一下 IP stauta

进行vivado开发时,Generate Bitstream报错[DRC NSTD-1],详细解决步骤

您正在按预期获得版本错误。 使用项目发布和测试的Vivado版本。 如果您仍想自己进行升级,可以通过手动将每个驱动程序和操作系统版本更新为当前版本,或重新创建BSP并手动导入旧版本的所有设置来修复此特定SDK错误。

更新了版本,到时没有说 什么版本不存在的问题但是在下载过程中出现了 cannot access JTAG-DP:invalid ACK value(0x07,excepted=0x02),error address=0

用xmd 查看,参照FPGA design from scratch. Part 37: connect mb mdm

20190602

第一个事情:
1. Make sure the clock connected to the debug hub (dbg_hub) core is a free running clock and is active.
要ps 起来 要不然会报WARNING:

第二个事情:

ARNING: [Labtools 27-3403] Dropping logic core with cellname:'system_i/ila_0' from probes file, since it cannot be found on the programmed device.
WARNING: [Labtools 27-1974] Mismatch between the design programmed into the device xc7z020_1 and the probes file(s) G:/ZYNQ/zynqDEMO_sch/project_CL0426_2017/project_CL0426/project_CL0426/project_CL0426.runs/impl_1/system_wrapper.ltx.
The device design has 1 ILA core(s) and 0 VIO core(s). The probes file(s) have 0 ILA core(s) and 0 VIO core(s).

加载的文件不对 要加载project_CL0426.runs/impl_1/debug.ltx

ila 在hardware 管理里面

 

开始看lvds 协议

 

怎么添加封装IP 以及添加IP核:

参考https://blog.csdn.net/kenjianqi1647/article/details/84821462

添加的的时候 打开相应的工程:

 

在这里program flash可以看到启动方式:

cmd /C program_flash -f \
G:\ZYNQ\原来资料\MZ702B\S02_CH05_UBOOT\Miz_sys\Miz_sys.sdk\fsbl\bootimage\BOOT.bin -offset 0 \
-flash_type qspi_single -fsbl \
G:\ZYNQ\原来资料\MZ702B\S02_CH05_UBOOT\Miz_sys\Miz_sys.sdk\fsbl\Debug\fsbl.elf -cable type \
xilinx_tcf url TCP:127.0.0.1:3121 

****** Xilinx Program Flash
****** Program Flash v2017.4 (64-bit)
  **** SW Build 2086221 on Fri Dec 15 20:55:39 MST 2017
    ** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.

Connecting to hw_server @ TCP:127.0.0.1:3121

Connected to hw_server @ TCP:127.0.0.1:3121
Available targets and devices:
Target 0 : jsn-JTAG-HS1-210249854957
    Device 0: jsn-JTAG-HS1-210249854957-4ba00477-0

Retrieving Flash info...

Initialization done, programming the memory
BOOT_MODE REG = 0x00000005
WARNING: [Xicom 50-100] The current boot mode is SD.//这里显示 启动方式
If flash programming fails, configure device for JTAG boot mode and try again.
Problem in Initializing Hardware
Flash programming initialization failed.

ERROR: Flash Operation Failed 

 

 

米联串口:

对应uart1 

底板上,是422,之前一直当成是232了

flash的连接方式,米联

但是原理图上:SPI_CS 接的PS_MIO1 A7

 

看一下我们的原理图: SPI_CS 也是A7

 

 

 

大于12M的flash 需要软件和硬件的设置

https://www.cnblogs.com/liuwanpeng/p/6180308.html文章中讲,zynq默认是3byte寻址,就是最大能寻到16M,如果不更改zynq中的设置,启动的时候bootrom   默认是16M的寻址。但是,ZYNQ有个设计问题,固化到片子内部的bootrom,“固执”得认为外面接的qpsi flash是16MB的,只能访问这16MB:
处理方法:第一 更换成4byte寻址,第二:高位用bank寻址


官网给出答案:If a larger than 16MB QSPI flash is used, then in order to access data on the portion of the flash over 16MB, the software driver (standalone, u-boot, Linux) needs to extend the 3-bytes address storing the 4th byte into a vendor specific QSPI register called "extended address register". 

This will be supported by 2013.3/14.7 software drivers and Xilinx tools.

Boot Image requirements when using larger than 16MB QSPI and RSA Authentication :给出了QSPI flash 的bank连接

http://xilinx.eetop.cn/viewnews-2562

CS 信号:

 

再看一下米联的cs信号

 

 

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值