常见问题

产品公共问题

产品规格与技术问题



CF_Q1: 请问软件使用何种网表格式?
CF_A1: 软件缺省支持Cadence (OrCAD) Capture输出的普通Allegro网表(生成网表时选Other,Formatter选ALLEGRO),即格式为 NetlistName;  PartRef1.PinLocationA PartRefN.PinLocationX.
若高版本Capture没有ALLEGRO.DLL,用telesis.dll或orTelesis.dll替代。
同时支持Altium Design和ConceptHDL Concise格式的产品:
	ACompare V1.1.0.0及以后版本;
	BSTest V2.2.1.1及以后版本;
	PinLock V1.1.0.0及以后版本;
在以上版本基础上同时支持PADS格式网表的产品:
	ACompare V1.1.0.1及以后版本;
	BSTest V2.4.0.0及以后版本;
	PinLock V1.1.0.1及以后版本;
在以上版本基础上同时支持Xpedition qcv格式网表的产品:
	ACompare V1.1.1.0及以后版本;
	BSTest V2.9.2.0及以后版本;
	PinLock V1.1.1.0及以后版本;




CF_Q1_A: 什么是网表文件?
CF_A1_A: 网表文件表明了器件之间的连接关系。简单来说,网表由一系列连接在一起的节点组成。一个网络(节点)是由器件连接在一起的管脚组成。
网表文件由EDA软件通过原理图或PCB导出。




CF_Q2: 程序总是出现识别不到加载线的提示。开始怀疑是我的JTAG头和线缆的问题,可是换了另外一套JTAG头和线缆,还是一样情况。
       或者提示“无法定位序数XX与动态链接库FTD2XX.dll上“。
CF_A2: 请按照下列步骤进行:
 1, 关闭程序;
 2, 插上加载线,从设备管理中卸载该设备(类似于USB Serial Converter)并勾选“删除此设备驱动程序软件",卸载设备并删除驱动;
 3, 将加载线从计算机断开;
 4, 用软件包里的程序CDMxxxxx_Setup.exe(xxxxx为具体版本号)重新安装驱动驱动;注意:如果是Windows Vista/7/8或以后版本,必须以管理员权限运行安装程序;
 5, 将加载线连接到计算机;
 6, 再次通过loader.exe运行程序;




CF_Q3: 我需要执行多次自动批量操作,每次工作空间文件不同,有什么办法吗?
CF_A3: 如果这几个工作空间文可以合并到一个,那么也是一种方法。
但是,既然分成了多个工作空间文件,通常因为线缆频率、配置文件(比如不同板卡、或者同一板卡的不同JTAG口)等不同,所以不好合并。
这时,我们建议使用带命令行参数(/workspace)的方式去运行loader.exe,指定不同的工作空间文件。
需要说明:有些客户是通过把程序拷贝到几个目录下,每个目录下的默认工作空间文件不同,然后通过运行不同目录的程序来实现的,这个方法不推荐,会给维护带来不便。
使用命令行参数还有个好处,工作空间文件可以与程序不在同一个目录下。这样其实隐含了另外一个好处:就是不是特定文件名(比如BSTest.ini或yaJFPb.ini等等)也可以实现自动运行后退出。




CF_Q4: JTAG操作不稳定,经测量发现JTAG信号质量不好,该如何处理?
CF_A4: 一般发生这种情况,会看到过冲和毛刺都很多。建议按如下步骤进行:
1, 请按照软件用户手册降低软件TCK频率;
2, 把加载线完全从板上断开(包括GND,可能不干净),只测量线缆这端波形看好不好;如果也不好,说明线缆可能损坏;如果断开是好的,则可能是目标板地/电源不干净导致,请排查消除;
3, 另外我们提供CableUpdate工具,可以调整JTAG信号的驱动电流,说明如下:
   3.1 2015年9月11日之前出厂的线缆,默认电流4mA,如果发现JTAG信号幅度偏低,请调整至8mA或12mA;
   3.2 2015年9月11日之后出厂的线缆,默认电流12mA,如果发现JTAG信号有反射或台阶,请调整至8mA或者4mA;




CF_Q5: 软件的自动运行功能非常好,不过有个小问题,如果我想通过命令行启动程序,一运行xxx.exe命令行就返回了,而程序还在运行。有没有办法等到程序结束后命令行才返回?
CF_A5: 请在命令行使用'start /wait xxx.exe'语法运行。




CF_Q6: 请问几种运行程序的方法见的区别是什么?
CF_A6: 程序可以通过以下几种方法运行:
1,标准模式:资源管理器双击loader.exe或者命令行运行loader.exe。程序将搜索默认的工作空间文件(如yaJFPb.jfp, BSTest.bst等)并加载设置,如果有AutoRun会自动执行,停止图形界面(GUI);
2,参数模式:通过快捷方式设置启动参数再双击快捷方式,或者命令行带参数运行loader.exe /workspace:workspace_filename。程序将加载指定的工作空间文件workspace_filename,之后过程与上述1标准模式相同;
3,PseudoCLI模式:命令行运行start /wait yaJFPb.exe workspace_filename。该方式适合无人值守静默操作,程序执行指定的工作空间文件workspace_filename中的AutoRun动作后自动退出GUI并将返回值传递给命令行。命令行可以使用%errorlevel%获取程序返回值。




CF_Q7: 我通过PseudoCLI方式运行程序,修改了工作空间文件里TCK频率,程序闪退了,怎么回事?
CF_A7: 所谓闪退,是因为你板子TCK不支持你修改后的频率,导致JTAG检测失败,从而后续擦除和编程无法进行,程序功能正常。你可以把日志打开,方便了解原因。
请通过jscan确认板子可以支持的最高频率,空间文件里TCK频率不要超过最高频率。




CF_Q8: 板子上需要什么连接器与JTAG线缆配套?
CF_A8: 为了支持更多的CPU和JTAG器件,适应不同客户的需求,JTAG线缆为独立杜邦线。如果用途固定,则用户可以使用自定义转接板提高插拔效率。
授权(License)问题



CL_Q1: 请问License是什么形式?
CL_A1: 现在是单机版License,即所谓Node-Locked。一个License对应一台机器,一个License只能在一台机器上使用。暂不支持网络版License,即所谓Floating License。




CL_Q2: 请问License是否可以迁移?
CL_A2: 取决于License类型。License分为 与硬件不绑定 和 与硬件绑定 两种类型。一个企业只能选择其中一种类型。
两种类型License分别说明如下:
与硬件不绑定 的License:
	License与线缆没有绑定关系,即线缆可以混用。
	不支持License迁移。
与硬件绑定 的License:
	线缆不可以混用,即在某个机器上用的线缆,以后只能在这台机器上用,不能在其他机器上使用。
	在License有效期内,最多可以免费迁移一次。迁移以后的License同样为硬件绑定型。显然的,迁移以后的线缆,无法在原机器上使用,只能在迁移后的机器上使用;同样的,原来机器因为没有配套硬件将无法使用——迁移的意义正在于此。




CL_Q3: 请问为什么License一直是好的、突然不能用了呢?
CL_A3: 
可能情况1:如果没有其他操作,则可能是某个物理网卡被禁用了,导致检查出错。
解决方法:请使能被禁用的物理网卡。
要说明的是:有些情况下,特别是Windows 7以后,如果网口长时间Link没有Up,网卡会自动被Disable。此时需要手动使能网卡,且为了避免再次出现这种情况,建议把网卡一直Link Up但可以不一定要有Internet访问。但我们建议让电脑可以上网,这样可以加快软件的启动速度。

可能情况2:Windows系统问题。
解决方法:把网口驱动卸载重新安装。




CL_Q4: 电脑没有能够上网,是否有影响?
CL_A4: 考虑到客户使用环境的实际情况,不一定要上Internet,但我们建议让电脑可以上网,这样可以加快软件的启动速度。
对于非常早期的版本(yaJFPb V2.0.0.2及之前),需要有网络连接,让网口Link Up起来。
对于后期版本(yaJFPb V2.0.1.0及之后),不论是否Up都没有关系(但网卡不可被禁用)。




CL_Q5: 为什么我装了虚拟机,就不能用了呢?
CL_A5: 2013/4/10之前发布的程序(yaJFPb V2.3.0.2及之前、BSTest V2.0.0.6及以前)在获取硬件识别上可能会受到虚拟机网卡干扰,因此可能检查出错。
另外,某些VPN客户端程序安装时也会添加虚拟网卡,同样会影响硬件识别信息的获取。
临时应急解决方法:禁用虚拟网卡。
推荐解决方法:请联系我们获取最新程序。




CL_Q6: 我没有动授权文件,但是提示License错,代码为4。
CL_A6: 因为计算机的硬件/软件识别特征被修改。如果在满足合同约定和《授权协议》的情况下,请联系我们获取新的授权文件。




CL_Q7: 我们之前申请License的电脑,重装系统后是否还能继续使用?
CL_A7: 视情况而定:
如果机器硬件信息没有发生变化,会认为是同一台机器,原来License可以继续使用。
如果某一部分硬件信息发生变化,我们会进行比对,如果是原来机器,我们会重新生成License。请妥善使用,此服务最多免费提供一次。
如果没有任何硬件信息与原来登记信息相符,或者硬件信息差异太大而无法界定是否为同一台机器时,则认为是新机器,需要另购License。




CL_Q8: 不同后缀的(-S, -L, -P, -U)产品之间是否可以通过补差价方法升级?
CL_A8: 可以通过差价增加功能升级,但无法升级授权年限。
举例来说:后缀-S无法升级为-L或者-U,后缀-P无法升级为-U;后缀-S可以升级为-P,后缀-L可以升级为-U。
未分类问题



CM_Q1: 为什么我收到的邮件里没有附件?
CM_A1: 这通常是由于邮件服务器对附件进行了扫描,且扫描到邮件附件里有扩展名为.exe等需要处理的文件,邮件服务器把附件删除了。
解决方法:联系我们重新发送。我们会对压缩文件包里的文件名进行加密再发送给您,服务器应该拿它没有办法了。 :)




CM_Q2: 我可以把几个软件放在同一个目录下吗?
CM_A2: 可以。loader启动时会让你选择启动哪个软件。
简易和方便起见,建议不同软件在不同目录分开放。
如果一定要把几个软件放一个目录且又不愿意每次都手工选择的话,您可以通过命令行参数(/loader)来运行loader.exe以启动相应的软件。
每个软件的License和程序要在同一个目录下。//实际上,License是可以放在其他地方甚至使用别的文件名。同样,为了方便和简易起见,还是在一起吧。




CM_Q3: 技术支持到期以后,续费与不续费有什么差异?
CM_A3: 软件在免费技术支持到期以后(一般产品为1年,具体以产品规格书和合同为准),您可以选择续费或者不续费。
如果不续费,则支持仅限于网站公开文档和FAQ。
如果续费,则额外提供电话/邮件/即时通信支持(同免费技术支持期限内支持方式,具体以产品规格书和合同为准)。

BST常见问题

BST售前常见问题



TP_Q0: 我在调试/维修单板时想了解某个BGA芯片的管脚是否开路/虚焊或短路/连锡、或者想看某个管脚的状态但因为没有引出来或者被挡住了导致无法测量到,怎么办?
TP_A0: 这正是我们软件所要解决的问题。借助我们的软件,可以看到可测试管脚的输入状态,不论是否有走线,并且以极低的成本。不仅如此,还可以作为简易信号发生器用,在芯片管脚输出指定波形。
这是单芯片手工测试模式。软件还支持单芯片自动测试,可以检查管脚直接短路、与电源或地的短路。
如果JTAG链上有多个器件,除了上述测试之外,还可以测试器件直接互联信号的短路、开路等情形。
更多信息请阅读我们关于测试的白皮书


TP_Q1: 输出信号周期是多少?
TP_A1: 首先,一次操作所需时间与器件的BOUNDARY_LENGTH有关,BOUNDARY_LENGTH越大则耗时越长。
其次,与加载线有关,如果使用WH-USB-JTAG电缆,则比并口线快十倍以上。
以某个BOUNDARY_LENGTH为539的器件为例,使用WH-USB-JTAG电缆,保持每次都刷新(JFP等使用Buffer操作,效率更高),一次管脚状态改变在1ms之内。




TP_Q2: BST软件能够烧写CPLD吗?
TP_A2: 理论上,可以。
如软件特性所描述的,软件支持标准.svf文件和.vme(版本12.2)文件。
所以,不论是Altera还是Xilinx或者Lattice的CPLD,只要转换成标准的.svf文件或.vme文件,程序就可以完成CPLD烧写。
那么,为什么是.svf格式呢?因为有些厂家文件格式(比如Altera的.pof)不公开,程序无法直接处理。而.svf是事实标准。
好吧,那为什么又说理论上?因为如果无法转成.svf文件或.vme文件,程序就无能为力了。不过,庆幸的是,多数厂家的EDA工具都支持转换为.svf文件,从而也可以转换为.vme文件。
这同样回答了另外一个问题:BST软件能回读CPLD保存下来吗?
答案:不能。因为.svf没有定义文件保存操作。但是,多数情况下可以支持Verify操作,前提是可以转换为.svf文件或.vme文件。
//我们的系统还支持通过被动串行(Passive Serial)模式加载Altera的FPGA,文件格式.rbf;同时支持从串(Slave Serial)模式加载Xilinx的FPGA,文件格式.bit。 请留意:串行方式加载时,不是JTAG模式。




TP_Q3: 外设测试是测什么的?
TP_A3: 互联测试、单个测试、手工测试都是针对JTAG器件本身的;外设测试是针对JTAG相连的其他器件(典型的如Flash)。




TP_Q4: JTAG测试需要什么条件?
TP_A4: BSTest软件需要一根JTAG线缆连接到您的目标板上。
所有测试都需要目标板引出JTAG信号,需要有被测试器件的BSDL文件。
如果是手工测试,需要有原理图供对照。
如果需要对JTAG链上的器件进行互联测试,则需要有原理图网表文件。




TP_Q4_A: 什么是BSDL文件?
TP_A4_A: BSDL(Boundary Scan Description Language, 边界扫描描述语言)是描述一个IC中JTAG设计的数据表,文件由IC厂家提供。
BSDL是VHDL的一个子集,是对边界扫描器件的边界扫描特性的描述。




TP_Q5: JTAG测试软件支持二次开发吗?
TP_A5: BSTest软件支持通过测试脚本方法与您的现有系统集成,也可以设置为自动运行。
如果你需要更强大、可交互的自动测试接口,那么请联系我们订购用于Tcl语言的Dll软件包。
需要说明的是,Tcl可以在Tcl/Tk的Shell里交互执行,也可以以命令行方式调用整个Tcl代码。




TP_Q6: JTAG测试一定要器件的BSDL文件,如果没有BSDL文件,那边界扫描就用不了,对吗?我可以根据器件的Datasheet,自己编BSDL文件吗?
TP_A6: 是的,没有BSDL文件的话这个器件的JTAG测试做不了,如果与其他JTAG器件相连,有些测试可以通过其他JTAG器件实现。
你不能做出BSDL文件。BSDL文件是根据芯片内部设计做出来的,不可能从Datasheet做出BSDL文件。




TP_Q7: 请问边界扫描与ICT有什么区别和优缺点?
TP_A7: 
从生产制造来说:
	一般ICT测试是单板生产后第一道测试工序,主要测试目的是对元器件的漏装、错装、参数值偏差、焊点连焊、线路板开短路等进行检查; JTAG是ICT测试通过后,被测试单板上电后进行。
	ICT需要特殊的探针和工装,且不同板卡需要不同的针床,成本昂贵;JTAG测试仅需要把JTAG线缆接到板卡的JTAG插座即可,所有板卡通用。
	ICT需要大量物理触点连接,对高密度板布局布线非常不利;JTAG不需要物理探针,仅需要器件支持JTAG,且多个JTAG器件可以在一个菊花链上提高测试覆盖率。

从开发调试、维修来说:
	ICT不可以用于开发调试、维修;JTAG可以用于开发调试(比如Flash烧写、PLD加载配置)、维修。JTAG除了测试开短路焊接问题外,还可以通过外设测试功能对SRAM、Flash等器件本身进行测试。

更多信息请阅读我们的《JTAG培训》《白皮书: 测试 》《白皮书: CPLD/FPGA编程/烧写/加载》等资料


TP_Q8: 请问边界扫描可以测试出器件好坏吗?
TP_A8: 从整体上来说:JTAG测试工作在EXTEST模式,主要测试JTAG器件的焊接、PCB铜箔以及JTAG器件周边器件的焊接。
具体来说:通过BSTest软件外设测试,可以对Flash进行ID自检,也可以对SRAM进行读写测试。这类测试不仅测试了JTAG及外设器件的焊接,也测试外设器件的功能,因此可以辅助判断出JTAG外设器件的好坏。
更多信息请阅读我们的《JTAG培训》《白皮书: 测试 》《白皮书: CPLD/FPGA编程/烧写/加载》等资料


TP_Q9: 我们这个软件主要还是面对电路板互联检测,不对单芯片内建自测试吧?
TP_A9: 是的。EXTEST指令是强制必须有的,而INTEST和RUNBIST都是可选指令,且厂家不对外开放。
更多信息请阅读我们的《JTAG培训》《白皮书: 测试 》《白皮书: CPLD/FPGA编程/烧写/加载》等资料
BST售后常见问题



TA_Q1: 在手工测试时,能否显示输入时钟的频率?
TA_A1: 不能。或者除非时钟频率很低,才有可能。因为程序每次采样需要一定时间(参见TP_Q1),而如果要测量出信号频率,理论上采样频率至少是信号的两倍以上。




TA_Q2: 有没有办法一次运行多个互联测试或者单个测试?
TA_A2: V2.2.2.0之后的版本支持。
说明: 从2015年1月31日开始,以下操作可以通过软件包中的FileHelper程序在图形界面实现。
/*
方法如下:创建一个纯文本的工作空间文件(建议扩展名.bst),然后输入如下内容:
[Option]
;设置线缆频率为15MHz;根据情况修改为你要的频率
CableClkFreq=15000000
;程序启动时自动设置线缆频率
SetCableClkFreqWhenStartup=1
;根据情况修改为你要进行的测试和配置文件
AutoRun=IDT:E:\idtcfg(u1-u2).ini|IDT:E:\idtcfg(u1-u3,ad-netlist).ini|SDT:E:\sdt(u2).ini
;退出时自动保存log到文件中
SaveLogToFileWhenExit=1
;end of workspace file

以上内容说明自动把线缆设置成15MHz,自动执行3个操作(操作之间用'|'分隔):2个IDT,1个SDT。
支持两种操作:IDT指互联测试(Inter-Device Test),SDT指单个器件测试(Single Device Test)。注意:手工测试因为需要用户介入,不支持批量测试。
操作与配置文件之间用':'分隔。配置文件在测试设置对话框时保存即可。
*/

有了工作空间文件,然后通过主界面菜单 测试 - 批量测试 选择上述工作空间文件,程序自动执行所有预设测试,最后提示结果。

进一步的,如果有效的AutoRun出现在程序目录下的BSTest.ini文件中,则程序将在启动时自动运行所有预设操作无须点击任何按钮。如果没有出错,则自动退出程序,如果有错则中止并提示。此项功能可以与现有生产自动化系统无缝结合,大幅提高效率。




TA_Q3: 为什么我对板子上FPGA或者CPLD做测试,挺正常,但是如果对CPU测试,有时会莫名其妙的失败?
TA_A3: 这通常是由于看门狗等造成了CPU重启,而重启之后的CPU没有进入JTAG状态,导致测试失败。此外还有种可能就是CPU的TRST没有很好的接到JTAG线缆。




TA_Q4: 能解释一下工作空间文件、配置文件、设置文件的区别吗?
TA_A4: 工作空间文件可以包含一个或多个配置文件,同时可以设置程序参数。而配置文件仅仅包括测试相关设置(可能包括设置文件),不包含任何程序参数(比如线缆速率等)。
设置文件内容为单个器件测试时该器件的待测管脚信息。





TA_Q5: JTAG测试时,我把一个TI的DSP和Lattice的CPLD串联起来后,JTAG扫描只能读出后面的CPLD信息,前面的DSP好像被bypass了。TI DSP边界扫描测试时该怎么配置?DSP的EMU0 和EMU1脚需要怎么设置吗?
TA_A5: 有的DSP的EMU0和EMU1都要上拉,比如TMS320VC5420。
也有的DSP的EMU0和EMU1都要下拉,比如TMS320C6000。
所以具体需要看器件。
另:如果您不想调整电阻来实现边界扫描,那么您可以向我们订购非标准的、扩展的JTAG线缆,也就是多了EMU0和EMU1管脚的JTAG线缆。
然后在工作空间文件中参照以下格式指定EMUx管脚值:
[Option]
EmuValue=[0|1|2|3]
;如果EmuValue为十进制2,则二进制为10,代表EMU1为1,EMU0为0。




TA_Q6: 手动测试时可以发PWM信号吗?
TA_A6: 可以的。输出图案如果01就是占空比1:1,而001占空比1:2,类似的011占空比2:1。
具体频率跟器件相关,可借助示波器测量。
如果需要调整频率,就通过图案调整,比如输出0011占空比还是1:1,但是频率比01时降低一倍。




TA_Q7: FPGA或CPLD烧写了程序以后对JTAG测试有什么影响?MCU或CPU呢?
TA_A7: FPGA或CPLD这类PLD器件,厂家提供的BSDL文件是针对空白器件即没有烧写任何程序的器件,因此建议在JTAG测试后再对PLD进行配置。如果一定要烧写PLD再测试,建议利用厂家EDA工具根据烧写文件为您的器件生成新的BSDL文件用于测试。
对于MCU或CPU,也建议在JTAG测试后再进行ROM或Flash的烧写。如果一定要先编程,请确认可以使CPU可以进入JTAG测试状态。
总之:为了保证最佳测试效果和最大测试覆盖率,请尽量保持FPGA和CPLD在未编程状态,在测试前不要对其进行烧写;类似的,保持CPU为未运行状态,JTAG测试前不要对其Boot ROM/Flash进行烧写。

JFP常见问题

JFP售前常见问题



PP_Q1: 请问 JFP 烧写速度多快?
PP_A1: 首先,一次操作所需时间与器件的BOUNDARY_LENGTH有关,BOUNDARY_LENGTH越大则耗时越长。
其次,与加载线有关,如果使用WH-USB-JTAG电缆,则比并口线快十倍左右。如果使用WH-USB-HiJTAG,烧写速度还可以更快,最高可以是WH-USB-JTAG的5倍。
再次,还跟CPU数据地址是否复用有关,如果复用的话则速度比其他条件相同时慢一倍(需要先输出地址锁存后再输出数据)。
第四,与Flash编程时内部写缓冲区大小有关。Flash编程时内部缓冲区越大,速度越快。
最后,跟Flash与CPU相连的数据总线宽度有关,数据宽度越宽,效率越高。
一个参考:BOUNDARY_LENGTH=476,数据地址不复用,16位数据宽度,NOR Flash 32字节缓冲区,WH-USB-JTAG,烧写速度在6KiB/s左右。
又一个参考:BOUNDARY_LENGTH=2281,数据地址不复用,16位数据宽度,NOR Flash 32字节缓冲区,WH-USB-HiJTAG,烧写速度在10KiB/s左右;相应的,如果BOUNDARY_LENGTH=2281,数据地址不复用,16位,32字节缓冲区,WH-USB-JTAG,烧写速度在2KiB/s左右。




PP_Q2: 一般情况下,Flash如何烧写?
PP_A2: 对于非常大量的量产,可以先通过专用烧写器(一次可以写一到多片不等)烧写好,然后再贴片。
这对于CPLD也适用。
如果是非大量生产或者研发板,通常先把空片子焊上去,然后通过专门软件烧写;或者使用带座子的Flash,通过一般烧写器烧写后再装回插座。
如果通过JTAG烧写,则可以不要求CPU已经运行。我们已经有大量成功案例。
这种方案也不需要Flash座子。
此外,特别是需要维修时(比如CPU死机,Flash数据被破坏),别的方法都不行(CPU一点代码都执行不了),而JTAG可以。通过我们的软件可以回读Flash内容(即使CPU死机),可以判断Flash内容是否被意外修改。
同时,我们还有基于边界扫描的JTAG测试软件,可以发现短路、虚焊等情形,为调试维修提供极大便利。
更多信息请阅读我们关于Flash烧写/编程的白皮书


PP_Q3: 我现有的线缆能否使用?为什么?
PP_A3: 如软件功能描述所说,支持Lattice、Altera和Xilinx的并口电缆以及我们自己的USB电缆。
并口电缆,里面没有功能芯片(最多就是驱动芯片),所以控制协议是公开的。
而到了USB,不少厂家电缆里面都有MCU或CPLD,如果控制协议不开放,则我们的软件无法控制这些电缆。
我们支持我们的USB电缆和协议公开的部分第三方的USB电缆。




PP_Q4: FPGA中使用的Linear BPI Flash是一种什么Flash?
PP_A4: 所谓Linear Flash,是Xilinx为了与自己的Platform Flash相区分,指其他厂家(如Intel, Spansion)的标准Flash。
在Xilinx的ML50X、ML60X等开发板上,通常是Intel/numonyx的28F256P30。
新版本的iMPACT可以支持Xilinx Platfrom Cable USB,速度比并口线快。但是因为烧写的是mcs文件(可能会数十MByte),且Xilinx的电缆时钟最快是6MHz(很多时候只能跑3MHz),仍然比较慢,时间从数十分钟到一两小时不等。
使用我们的软件,可以不需要iMPACT,速度可以是iMPACT的近10倍。




PP_Q5: 有了JFP软件,我还需要具备哪些条件才能读写Flash?
PP_A5: JFP软件需要配合JTAG Cable使用,连接您的目标板和计算机。
对于目标板来说:
	硬件上,需要JTAG管脚可以被连接上、JTAG功能正常;
	文件上,需要Flash的芯片资料(Datasheet)和CPU(可以是其他SoC)的资料。所需资料因为JTAG编程方法不同而不同,说明如下:
		方法1,通过标准的外部测试模式,yaJFPb 使用这种方法。此时需要CPU的BSDL文件和管脚连接关系(原理图)。如果Flash相关信号经过CPLD等逻辑控制,也需要知道逻辑处理方式。
		方法2,通过JTAG调试模式,yaJFPe 使用这种方法。如果没有原理图或者器件的BSDL文件,那么正常情况下是无法通过方法1标准的外部测试模式来进行烧写的。此时,如果CPU支持EJTAG的调试,那么可以不要BSDL文件和原理图,相应的需要知道CPU的JTAG指令长度。




PP_Q6: 本方案与CodeWarrior+USB TAP烧写Flash相比,优势是什么?
PP_A6: 就烧写Flash而言:
	比CodeWarrior更好用!无需初始化时钟/内存/内部寄存器。焊接没有问题,基本上就可以对Flash编程烧写。
	即使复位配置字(RCW, Reset Configuration Word)有错,只要JTAG可用,就可以连上。
	自动计算编程区域相应的扇区/块并可以自动在编程前擦除。
	性价比更高:USB TAP多少钱?CWH-UTP-PPCC-HE: USD495. CodeWarrior最便宜的版本多少钱?CWP-BASIC-NL: USD995. ——但是,如果只是烧写Flash,那么您可以用不到上述两者总价几乎十分之一的价格就可以获得Flash编程功能的正版软件!
	多数情况下烧写速度更高。
	另外:除了PowerPC,还支持ARM/MIPS等所有架构的CPU以及CPLD/FPGA或者其他SoC。对Xilinx FPGA的BPI Flash编程/烧写,速度最高可达iMPACT的10倍左右(具体数据依赖器件、板卡等参数,参阅技术支持页面)。
	轻量级绿色软件。
	允许JTAG链上有多个器件。
	本地化支持,快速响应。
	支持定制开发。
就生产/量产而言:
	CodeWarrior+USB TAP成本很高,无法量产。而我们的方案硬件成本很低,软件批量购买价格更低。
	软件启动可以自动加载相关板卡设置文件。
	批量编程:支持对不同地址烧写不同文件,不需要人工干预。
	软件一经启动,就不需要关闭再运行。在烧写完成后板卡断电,拔下CPU侧JTAG线缆,换另一块板卡,插上线缆,就可以直接编程不需要重启软件或重新连接。
	软件也可以设置自动运行模式,依次执行所有操作后退出程序,无需人工干预,方便与现有生产自动化系统集成。
	支持对编程文件进行多种哈希计算,并且可以与预设值进行匹配检查防止写入错误文件。




PP_Q7: 我们使用bootrom+Flash方案:调试时用PLCC座子,然后把bootrom的Flash放到编程器上去烧写,量产时不焊PLCC的座子。我们觉得也用得挺好。yaJFPb给我们带来什么好处呢?
PP_A7: 撇开业界发展趋势这些不谈:
	第一,可以省掉PLCC的座子,可以降低成本,提高可靠性。
	第二,可以大大节约PCB面积。在高密度板卡设计,这一点很重要。
	第三,不需要把bootrom抠下来,再到编程器上去烧写。操作方便,高效。
	第四,因为不需要在bootrom和Flash间切换,不需要设计0欧电阻跳线,调试也不需要更换电阻。
	第五,量产发货板卡没有PLCC座子,若现场返回的故障板,需要处理后才能分析。使用yaJFPb方案,可以直接查看Flash内容,可以看是否Flash内容损坏所致。




PP_Q8: 我们听说哲发的yaJFP软件曾经帮很多客户解决过棘手的问题,都有哪些、能分享下吗?
PP_A8: 这些来自客户真实案例的问题,最终通过哲发yaJFP系列产品得到了完美解决。
	先烧好Flash再贴片,可是程序烧错了,板子起不来,需要一片片吹下来更换;但更糟糕的是——复位配置字(RCW, Reset Configuration Word)不对,仿真器连不上,无法在线烧录;
	仿真器太贵,不巧的是还比较容易坏;
	每种架构的CPU/DSP都需要一种仿真器来烧写Flash;
	用PLCC封装的Flash做BootRom,每次都要拿出来放到编程器上烧写,且PLCC座子不可靠;
	开发软件庞大,安装和操作太麻烦,生产线工人用来烧Flash效率太低;
	SDRAM焊接有问题(当然,后来才知道),仿真器无法烧写Flash;
哲发yaJFP(Yet Another JTAG Flash Programmer)Flash烧写软件,凝聚业界二十多年的经验精华,只要JTAG可用即能支持PowerPC(PPC)/MIPS/ARM等所有架构CPU或DSP以及CPLD/FPGA,轻量级绿色软件,便捷易用,支持全自动化操作,研发生产皆相宜。




PP_Q9: yaJFP可以对编程文件进行哪些Hash校验?
PP_A9: 为了防止误写入文件,yaJFP可以对待烧写文件进行Hash计算,并与期望值(在工作空间文件中指定)比较。支持的算法和结果形式如下:(所有Hash均为16进制,不带0x前缀,所有字母小写,无空格)
Sum: 对文件按照二进制方式对所有字节进行无符号数累加,结果取8位16进制数,不足的话前面填0;
CRC32: 8位16进制数;
GOSTHash: 64位16进制数;
MD2: 32位16进制数;
MD4: 32位16进制数;
MD5: 32位16进制数;
SHA-1: 40位16进制数;
SHA-2 256: 64位16进制数;
SHA-2 384: 96位16进制数;
SHA-2 512: 128位16进制数;




PP_Q10: yaJFPb是否可以烧写SPI Flash?
PP_A10: 因为烧写速度/客户需求/产品规划等原因,yaJFPb产品不支持SPI Flash烧写。
yaJFPs产品支持SPI Flash烧写。
两者使用的硬件相同,区别在于yaJFPb连接CPU的JTAG管脚去控制并行Flash,而yaJFPs直接控制SPI Flash的管脚。
为了解决SPI Flash在线烧写时信号冲突问题,可以通过将CPU复位不输出SPI信号,或者借助拨码开关或其他电路对Flash芯片管脚进行切换(由CPU控制或者由加载线控制)。
在设计时建议PCB留有SPI信号的插针。如果没有预留,则需要使用夹具。




PP_Q11: yaJFPb是否可以烧写MCU片内Flash?
PP_A11: 片内Flash烧写不了,因为通过JTAG的标准JTAG指令只能烧写片外Flash,而片内Flash烧写需要厂家私有协议,但协议不公开。
JFP售后常见问题



PA_Q1: 运行时提示DLPORTIO.dll没有找到。
PA_A1: PA_A1.1 请安装驱动port95nt。




PA_Q2: 运行时出现下列提示:
DLPORTIO.SYS device driver not loaded.
Port I/O will have no effect.
PA_A2: PA_A2.1 没有安装DriverLINK Port I/O Driver,
    PA_A2.2 请运行Port95NT安装该驱动,注意安装后需要重新启动才生效。




PA_Q3: Flash xxxx的Manufacture Code应该是0xXX,读到的是0x0000。
PA_A3: 可能原因:
    PA_A3.1  Flash没有上电;




PA_Q4: Flash xxxx的Manufacture Code应该是0xXX,读到的是0xFFFF。
PA_A4: PA_A4.1 见PA_A3.1;
    PA_A4.2 参见PA_A9


PA_Q5: Flash xxxx的Manufacture Code应该是0xXX,读到的是0x0090。
PA_A5: 请咨询我们。




PA_Q6: 连续对Flash自检,有时通过,有时失败。
PA_A6: PA_A6.1 如果Flash中已经有程序,则:
         PA_A6.1.1 CPU不停尝试启动,导致程序无法使CPU进入JTAG状态
         PA_A6.1.2 解决方法: 将板卡断电再上电,在此过程中不停的对Flash进行自检;
         PA_A6.1.3 如果该方法无效,请参见PA_A5.2:
    PA_A6.2 如果Flash中没有程序,则:
         PA_A6.2.1 可能是因为其他程序也在操作并口,比如CPLD的加载程序,其他边界扫描测试程序;
         PA_A6.2.2 解决方法: 停掉其他并口程序,或者稍后重试。




PA_Q7: Obsolete
PA_A7: Obsolete




PA_Q8: 如果误将错误的BIOS写进了Flash,该如何处理?
PA_A8: PA_A8.1 如果写入的不是BIOS文件,那么问题不大,重新烧一遍;
    PA_A8.2 如果将A系统的BIOS烧到B系统的Flash中,则不能直接重烧,因为CPU已经取指执行,进入未知状态,Flash自检、CPU自检都失败。
         处理方法请咨询我们。




PA_Q9: 不能通过点灯对CPU进行自检。
PA_A9: 可能原因:
    PA_A9.1 检查JTAG管脚的上下拉是否正确;
    PA_A9.2 检查CPU是否上电;
    PA_A9.3 检查加载线跳线是否正确(如果有);
    PA_A9.4 检查JTAG插座是否焊接正常;




PA_Q10: 我怀疑程序根本没有真正执行擦除操作。进度条速度很快,且回读证实确实没有擦除。
PA_A10: 程序没有问题。需要检查Flash的WE管脚是否确实受程序控制,比如CPLD逻辑是否正确,拨码开关是否正确。




PA_Q11: CPU自检不稳定。
PA_A11: 这个问题在板卡没有插在机框上尤为突出。请保持板卡和计算机的良好接地。




PA_Q12: Obsolete
PA_A12: Obsolete




PA_Q13: 请问Flash自检(Flash ID检查)的具体过程是什么?
PA_A13: 如果Mfg ID检查正常,则会进行Device ID检查。如果全部正确,则认为检查通过。
更详细过程请咨询我们。




PA_Q14: Flash自检不正确,请问与WP管脚有关吗?我发现程序启动后把WP置低了。
PA_A14: 无关。尽管读取Flash ID需要先写入命令字,但是WP不会限制写入某个指令,WP限制的是擦除、编程这样的操作。
观测是正确的:程序一开始是将Flash处于保护状态的,防止不必要的意外。而在需要擦除/编程前会关掉保护,擦除/编程后重新保护。




PA_Q15: JTAG器件手册上写可以支持很高的TCK时钟,为什么实际上不能那么高呢?
PA_A15: 这类情形一般发生在JTAG器件所在JTAG链上有多个器件时,整个TCK的频率取决于最慢的器件而非最快的器件。




PA_Q16: JTAG器件的IDCODE不匹配,请问如何应对?
PA_A16: 首先,确认目标板与配置文件一致,JTAG加载线连接正确,目标板供电正常;
其次,尝试降低TCK频率;
如果降低TCK频率仍然没有改观,那么请检查BSDL文件与实际器件是否相符,注意不同封装的器件BSDL文件也可能是不同的。




PA_Q17: 我的bootloader(u-boot)/BIOS应该烧写到哪里?
PA_A17: 对于大多数CPU,应该从0开始烧写。对于不是从0启动的CPU,则应该写到相应区域。
需要说明的是,JTAG烧写没有使用任何CPU内部地址分配解析,因此是物理绝对地址。
不过,这与你实际分配的地址不矛盾,也就是说,如果Flash片选在没有经过译码控制的情况下,那么你用bootload的地址(如 0xff780000 )减去Flash的基地址(如 0xff000000 )的差(本例是 0x780000 )那么就是烧写地址。
关于启动地址,详述如下:
对于0x100启动的CPU,通常来说开发人员会在BIOS/bootloader(u-boot等)前人为添上一些填充字节(有些CPU的复位配置放在最前面,后面再加其他无关字节),也是从0开始烧写。
对于高端地址启动的CPU,相对复杂些,详情请咨询我们。




PA_Q18: CPU为MPC8560,Flash型号为28F640J3,设定Flash工作在16位模式,Flash的A0没有接,Flash的数据线接错了——Flash的D[7:0]接CPU的LAD[0:7],Flash的D[15:8]接CPU的LAD[8:15]。请问能否正常操作?
PA_A18: 对于JFP,完全可以正常工作,唯一需要留意的是烧写文件需要两两字节互换。
但是对于CPU来讲会发生什么事情,请咨询我们。




PA_Q19: NAND和NOR有什么不同?
PA_A19: 结构和特性不同另文讲述,这里说一下在Flash读取和烧写上的主要不同。
1,起始地址
NAND因为存在坏块,所以Flash很难把物理块和地址对应起来,因此,只支持从地址0开始烧写。
这样还有另一个理由,就是厂家会保证第0块总是可用的。
2,占用空间
因为NAND存在坏块,如果编程文件大于一个块的大小,也就是写完第0块还要写后面的块时,由于从第1块开始可能是坏块,所以后面的内容在块的物理分布上就不一定是连续的了。
3,ECC
程序在读NAND时会读取ECC信息,在可能的情况下对数据进行纠正;类似的,在编程时,也会把ECC记录到空闲区域。
更多信息请阅读我们关于Flash烧写/编程的白皮书


PA_Q20: 我注意到V2.0.1.1版本编程时多了个选项"每次写入后进行状态检查,通过了再进行下一次写",请问这是为什么?
PA_A20: 早期的软件,TCK频率很高时,有时烧Flash不稳定,所以有时需要降频使用。
实际上,这个问题的根本原因是为了提高编程速度,编程时没有在每次写入后对状态进行检查。
后来,我们发现如果每次写入后对状态进行检查、但是TCK频率调高的话,可能更快,且更重要的是,更稳定。
所以,程序进行了升级,V2.0.1.1以后版本支持编程时增加了新选项——是"每次写入后进行状态检查,通过了再进行下一次写"。相应的文档也进行了更新,2012/4/28以后的文档包含上述变更。
;
因此,建议您在使用时可以先试试30MHz的时钟,如果能正确检测到JTAG器件且器件数吻合,则可以跑在30MHz,同时让程序对写入状态进行检查。比如,对P2020,TCK可以到30MHz。
需要说明的是,有一种情况,就是CPU可以支持的TCK时钟低于30MHz,那么还是要把TCK降下来,否则Flash自检不会通过,现象为检测到的JTAG链上的器件数与实际期望不符。
;
为了方便,有个单独的jscan程序,可以自动检测JTAG链上所有JTAG器件的ID,且jscan程序会尝试不同频率TCK去扫描JTAG链,这样有助于判断整个JTAG链上可以支持的最高频率,这个频率取决于那个TCK最慢的器件。




PA_Q21: 请问有没有办法自动设定TCK到相应频率?还有,能自动加载某个配置文件,这样一启动软件就可以编程吗?
PA_A21: 可以。通过%WINDIR% 目录下(如果是V2.5.0.0之后版本,建议在程序所在目录下)的工作空间文件实现。
说明: 从2015年1月31日开始,以下操作可以通过软件包中的FileHelper程序在图形界面实现。
/*
请创建(如果已经存在则打开编辑)yaJFPb.ini(如果是其他版本的yaJFP请联系我们),文件内容如下:
[Option]
;设置线缆频率为15MHz;根据情况修改为你要的频率
CableClkFreq=15000000
;程序启动时自动设置线缆频率
SetCableClkFreqWhenStartup=1
;指定配置文件为d:\JFP\demo.ini
;根据情况修改为你要自动加载的配置文件
;说明:V2.5.0.0以后的程序,如果程序与配置文件在同一目录下,配置文件可以不带路径,即如果程序也在d:\JFP目录下,则可以写成CfgFilename=demo.ini
CfgFilename=d:\JFP\demo.ini
;启动时自动加载配置文件
OpenCfgFileWhenStartup=1
*/




PA_Q22: yaJFPb程序对NAND Flash编程后全部回读,与原文件没有差异,但是不能启动。
PA_A22: ECC的问题,让CPU在NAND boot时不检查ECC。
以MPC8314/MPC8315为例:
BR0寄存器的DECC字段复位后00,即Data error checking disabled. No ECC generation for FCM.
但是从NAND boot时不是受这个控制,而是管脚设定。TSEC_MDC管脚在复位配置时作为LB_POR_CFG_ BOOT_ECC用,需要把TSEC_MDC管脚上拉,这样就不会检查ECC了。




PA_Q23: 擦除失败,因为加锁了。单独解锁操作也失败。
PA_A23: 多半由于Flash状态异常。解决方法:对目标板掉电再上电。




PA_Q24: 请问我需要对同一个板子编程两次,有没有办法一次操作搞定?
PA_A24: V2.5.0.0之后的版本支持批量编程功能。 载入相应的工作空间文件,然后程序启动后选择菜单 目标器件 / 批量编程… 即可。
说明: 从2015年1月31日开始,以下操作可以通过软件包中的FileHelper程序在图形界面实现。
/*
修改 yaJFPb.ini 文件(方法参见PA_Q21),增加以下内容:
[Program]
;通过|来分割多个地址和文件
ProgramBeginAddress=0x0|0xf0000
;根据情况修改为你需要编程的地址
ProgramFilename=C:\MPC8247_HRCW.bin|C:\MPC8247_bootroom.bin
;根据情况修改为你需要编程的文件
;类似的,如果程序与编程文件在同一目录下,编程文件可以不带路径,即可以写成ProgramFilename=MPC8247_HRCW.bin|MPC8247_bootroom.bin
*/




PA_Q25: 我板子上明明只有1个JTAG器件(已经确认是1个器件,不是频率过高误检),但是jscan程序扫描出来看到多个JTAG器件,且IDCODE也和BSDL文件不同。怎么回事?
PA_A25: 这类器件多半是内嵌ARM或其他CPU内核的SoC。一般通过对特定管脚的设定解决。对几种情况举例说明如下:

	


	情形1:
	以Cortina的CS8022举例来说:CS8022内嵌5个ARM-9处理器,通常情况下jscan程序会扫描到5个ARM。
	这样,JTAG程序是无法工作的。
	处理方法也很简单:
	根据BSDL文件,(TEST_MODE_0, TEST_MODE_1, TEST_MODE_2, TEST_MODE_3, TEST_MODE_4)为(11010)进入JTAG测试模式。
	所以,因为这个5个管脚有内部上拉,去掉 TEST_MODE_0 TEST_MODE_1 TEST_MODE_3 的下拉电阻,CS8022即进入JTAG测试模式,JFP软件可正常工作。
	并且,这个改动对器件正常工作是没有影响的。

	


	情形2:
	以ST的TM32F1为例。jscan程序会扫描到2个器件,一个是BSDL文件描述的STM32F1,一个是ARM。
	这个处理方法纯软件就可以:
	将JTAG链上器件总数设成2,JTAG器件索引为0(注意索引是从0开始的)。因为没有ARM Cortex M的BSDL文件,所以不指定BSDL文件,而是指定后置指令(ARM的索引为1,在STM32F1后面)长度为4。
	这样JFP和BST软件都可以正常工作。

	


	情形3:
	以Atmel的AT91SAM9260为例。jscan程序会扫描到1个器件,但是IDCODE并不是BSDL文件所描述的。
	处理方法:将JTAGSEL管脚上拉到VDDBU,进入JTAG模式(内部有下拉,悬空的话默认是ICE模式),然后jscan程序会正常扫描到器件,BST和JFP等程序可以工作。
	不幸的是,一旦JTAGSEL上拉,器件将不正常工作,不论JTAG线缆是否连接。
	因此,我们建议JTAGSEL通过拨码开关或者跳线进行选择,而不是使用电阻。

	


	情形4:
	以Freescale的i.MX28系列为例。jscan程序会扫描到一个器件,但是如果用yaJFPb,则会提示IDCODE不匹配。
	处理方法:调整DEBUG管脚为下拉。(参考设计有说明:DEBUG=1 for ARM ETM. DEBUG=0 for boundary scan.)

	


	情形5:
	同样是i.MX的i.MX6系列,jscan程序会扫描到3个器件,需要去掉JTAG_MOD的下拉电阻。
	另外还需要注意:
	不论SATA和PCIe接口是否用到了,都需要给他们供电(信号可以不接);
	TEST_MODE管脚需要下拉;
	特别注意:
		i.MX6在边界扫描(JTAG)测试时无法驱动这些管脚:EIM_A[24:16], EIM_DA[15:0], EIM_EB[3:0], EIM_RW, EIM_WAIT and EIM_LBA.
		因此请联系我们获取最新版本程序,否则BSTest软件V2.9.2.0及更早版本需要跳过这些管脚,yaJFPb软件V3.3.2.0及更早版本无法读写i.MX6的外部Flash。


	


	情形6:
	高通骁龙MSM8996,jscan程序会扫描到3个器件,需把MODE0和MODE1管脚同时上拉,然后可以进行边界扫描测试。


	


	情形7:
	Broadcom BCM53344/BCM56260,需把JTCE1上拉管脚上拉,可以进行边界扫描测试。
 


	


	情形8:
	ST的STA2165,需把SCANEN管脚上拉才可以进行边界扫描测试。另外TAPSEL管脚决定了链上的器件通路。
 



PA_Q26: 提示“无法找到组件”,没有找到FTD2XX.dll。
PA_A26: 说明驱动没有安装成功。运行 CDMxxxxx_Setup.exe (xxxxx为具体版本号) ,依照提示进行。
PA_Q26+: 安装好驱动了,运行程序还是提示没有FTD2XX.dll?
PA_A26+: 把加载线插到计算机上,不需要连接目标板。Windows会激活驱动。请阅读《BSTLib Driver Install Guide》。




PA_Q27: Obsolete
PA_A27: Obsolete




PA_Q28: Flash自检成功能说明电路没有问题吗?
PA_A28: 如果Flash自检成功,则说明配置文件正确(器件类型、Flash类型等正确)、JTAG线缆正常、JTAG器件的JTAG功能正常、电路正常(包括数据线、地址线、读写信号等)。




PA_Q29: 在我的板子上,Flash自检没有问题,但是编程的话总是过一会儿就出错。
PA_A29: 重点检查Flash的复位管脚是不是在一段时间后复位了(比如由于看门狗等)。这可以通过示波器观察CPU及Flash的复位管脚在烧写失败时段的波形来协助定位。
其次检查数据地址总线上是否有其他芯片等干扰。
此外,在较罕见的情况下,可能是由于连接器接触的问题(比如,曾经有客户板卡的插针不是正常尺寸而略偏细导致接触不好)。




PA_Q30: V2.5.0.9的程序,多了个菜单:载入工作空间文件。什么是工作空间文件?与配置文件什么区别?有什么作用?
PA_A30: 工作空间文件,指定了配置文件,同时又包含了一系列程序设定;而配置文件,仅仅为某个单板的配置,不包含程序设定(比如编程文件、起始地址、TCK频率)。
通过载入不同的工作空间文件,可以方便的在不同板卡、或者同一板卡不同设定之间做切换,避免每次都需要手工填写编程文件、起始地址等信息或者手工修改TCK频率等操作,从而进一步提升工作效率。





PA_Q31: WH-USB-HiJTAG线缆的I/O为3.3V,那么在用yaJFP对Xilinx的BPI Flash编程时,我的Flash的VCCQ(I/O电压)是2.5V,是否可以?
PA_A31: 如果FPGA与Flash的对接没有问题,那就应该没有影响。因为线缆与FPGA的JTAG接口交互,与Flash并不直接对接。




PA_Q32: 用yaJFPb烧写Xilinx BPI Flash,用什么文件?
PA_A32: yaJFPb使用的是raw binary文件。
可以通过promgen从.bit生成.bin文件。promgen程序位于ISE安装目录下ISE_DS\ISE\bin\nt\ (比如某电脑上是F:\EDA\Xilinx\12.4\ISE_DS\ISE\bin\nt\)
用法举例:
promgen.exe -u 0x0 button_led_test_hw.bit -p bin -data_width 16
说明:
-u 0x0: 表示从0地址开始递增对.bit文件进行转换
button_led_test_hw.bit: 换成你们的.bit文件
-p bin: 表示输出raw binary文件
-data_width 16: 表示生成BPI x16文件。




PA_Q33: 我想把yaJFP作为生产自动化化的一部分,如何实现?
PA_A33: yaJFP软件在2.5.1.11版本之后支持此功能。
说明: 从2015年1月31日开始,以下操作可以通过软件包中的FileHelper程序在图形界面实现。
/*
yaJFPb.ini(或yaJFPs.ini,依据软件版本不同)中[Option]添加一个AutoRun关键字,然后指定程序需要帮你自动完成的操作。
可以是多个操作,通过'|'字符隔开。支持的操作有:ProgramFlash() BatchProgramFlash() ReadFlashArray() Write() EraseFlashBlocks() LockFlashBlocks() UnlockFlashBlocks() LightenLED()。
*/
程序启动时会自动依次执行列举的所有操作无需任何人工干预。操作全部成功完成后,程序将自动退出,没有任何提示。如果某个操作有错,程序会提示并中止所有后续操作。
说明:每个操作所需参数正确设定方有可能成功运行,参数设定参考如下FAQ: PA_Q21 PA_Q24


PA_Q34: 我想把整个Flash保护起来,防止被改写。
PA_A34: 一般情况之下,你可以对启动块进行保护(加锁),因为一般情况下,bootloader(u-boot, BIOS, 等)烧写好出厂后不会在线升级。(如果系统需要支持在线升级,在线升级程序需要在升级前先解锁,升级后加锁。)
与此相对应的:除非能确认Flash的驱动能够知道解锁操作,否则你不能对文件系统所在块进行加锁,这是因为Linux等系统运行时需要写文件系统。
注意区分两点:
1,这个保护是Flash内部标志位机制,与WP管脚保护不同。WP管脚硬件保护级别是最高的。至于WP对Flash操作的影响,参考PA_Q14。
2,这个不能防止数据被回读。如果要对内容保密,则需要使用加密,可以使用某些唯一标识对文件加密,即每个板上Flash读出来的内容是不同的。




PA_Q35: 设备正常启动,但程序读出来的数据有错?
PA_A35: 对于yaJFP软件,如果读过程中CPU启动并脱离JTAG状态,那么数据总线上的数据不由yaJFP软件控制而是由CPU控制,那么读回的数据就不一定是Flash中当前地址的原始数据了。
这类情况一般是由于看门狗复位引起,另外还有可能CPU的JTAG有问题,或者电路设计有问题导致JTAG状态不稳定。
实际上,CPU启动了不一定是数据一个错都没有,而是可能启动没有做校验、或者错没有发生在关键的地方(比如,其中一个字符串错了并不影响启动)。




PA_Q36: 为什么yaJFP软件在我自己的MPC8308板子上可以正常工作、但是在飞思卡尔的8308 demo板上总提示Flash ID自检失败?
PA_A36: MPC8308的Y23管脚管脚必须接VDD,如果悬空JTAG将不能正常工作。
我们发现,在某些板上,比如MPC8308 mITX REV2上,Y23管脚悬空了,所以JTAG无法正常工作,这样导致Flash自检失败。
需要说明的是,若仅JTAG受影响、则正常工作应该是没有问题的。不过,根据Freescale的官方说法,Y23悬空还会导致RTC不工作。
//MPC8308EC Rev. 2 (02/2011)中更新了这一点。




PA_Q37: 请问支持MPC860吗?BDM调试接口。
PA_A37: yaJFPb支持MPC860,也是充分验证过的。
不过,如果RCW的11-12位让MPC860的调试管脚工作在BDM模式,需要做个切换,切换为JTAG模式:DBPC为01以后,DSCK就是TCK ,DSD就是TDI,DSDO就是TDO。
TRST TMS这些管脚没有复用。




PA_Q38: CPU连接的是一片Flash,可以在配置文件强制设定为SRAM吗?
PA_A38: NOR Flash可以设定为SRAM,然后可以通过yaJFP进行读取,因为NOR Flash的读取与SRAM无异。
不过,因为NOR Flash的写与SRAM不同,所以不能写入。
另外,因为这个原因,把NOR Flash设定为SRAM的配置文件,不能用于BSTest软件的外设测试,因为SRAM的外设测试需要读写,而Flash的外设测试是通过检测器件的ID。




PA_Q39: Flash自检失败,但是可以读取,可能是什么原因?
PA_A39: 首先先要确定读取内容是否正确,这可以通过少量地址数据和母片数据比较来做判断。
因为默认的工作空间文件yaJFPb.jfp中[Read]SkipFlashIDCheckBeforeReading设置为1了,因此在读之前并没有进行Flash的自检,而是直接读取。
如果Flash读取数据正确但自检失败,则可能是WE管脚有问题。Flash自检需要写入命令字,Flash读取不需要写入命令字。
至于故障点,可能是CPU到Flash的通路有问题,也有可能是芯片有问题。
如果要界定,可以自检时看下WE管脚看波形,或者BSTest软件通过CPU控制WE管脚特定波形、示波器看下Flash的WE管脚是否有,WE波形正常的话说明焊接没有问题。




PA_Q40: 为什么读Flash比写慢很多?
PA_A40: 是的,特别是Flash有Write Buffer的情况下。
因为JTAG每次读Fash都需要通过硬件把数据刷新出来,而写的时候如Flash有写buffer,程序会把多次Flash操作合并到一次硬件JTAG操作,写的话就会比读要快很多(当然在写的时候也要去做状态检查,也就是写过程中还是会包含一定的读操作,所以写的与读速度比例不正好是缓冲区的大小)。
Tck频率提高以后读写速度都会变快,读写速度是跟Tck频率成正比的。




PA_Q41: yaJFPb烧写与仿真器(如Code Warrior+USB TAP)烧写速度差异是由什么造成的?
PA_A41: 两者工作原理不一样。
yaJFPb工作在JTAG的EXTEST模式,CPU内部核心电路并不工作、相当于一个空盒子,yaJFPb通过JTAG接口控制CPU管脚产生波形去操作Flash。参考PP_Q11。
仿真器(如USB TAP)是在开发软件(如Code Warrior)中下载代码到内存,然后让CPU运行程序进行Flash烧写。
因此,两者在不同CPU以及不同Flash搭配下,速度表现会不一样,有时yaJFPb快、有时仿真器快。
参考PP_Q6PP_Q8


PA_Q42: 有一个比较奇怪的事情,板子上的液晶屏和指示灯,如运行jscan正常,而运行yaJFPb液晶屏和指示灯都会灭掉,只留下他的电源指示灯亮着。什么情况?
PA_A42: 这是有可能的。jscan仅仅扫描ID寄存器,不会操作I/O管脚;而yaJFPb一旦对Flash ID自检,可以认为所有I/O管脚被yaJFPb软件接管。软件按照配置文件将用到的I/O管脚设置为相应状态,为保护CPU,默认把所有未使用的均作为输入。




PA_Q43: 我看了目前的配置文件,它没有对FPGA的JTAG模式管脚进行配置,JTAG模式是由硬件上下拉电阻设置的M[2:0]=011,这个配置对照FPGA手册,是BPI模式。
PA_A43: 您说的模式(Xilinx的FPGA通过M0/M1/...等管脚设置,Altera的FPGA通过MSEL0/MSEL1/...等管脚配置)是指FPGA上电后如何从外部(存储器或者MCU,主动或被动)获取数据并对SRAM进行配置,而yaJFPb要做的是通过JTAG去烧写和FPGA连着的FLASH,所以yaJPFb不需要设置该模式。
但需要注意的,这个模式决定了BPI Flash(参考PP_Q4)的文件的内容,比如数据位宽,Up还是Down等(参考PA_Q32)。
JFP编辑配置文件常见问题



PE_Q1: CPU的地址数据是复用的,但在Flash上是分开的,怎么办?
PE_A1: 请将锁存器的ALE设置到 数据地址复用时的锁存 管脚。
至于数据线地址线,将从Flash向前追溯到CPU管脚,填写最终连接到CPU的管脚即可。




PE_Q2: Flash的WP没有用,需要怎么处理?
PE_A2: 留空即可。

EthCfg

EthCfg售前常见问题
EthCfg售后常见问题



EP_Q1: 我连读一片寄存器,但是只有第一个寄存器值是对的,其他都是0xffff。
EP_A1: 通常是因为加载线需要目标板供电,请确认加载线的电源管脚已经正确供电。

Compare

Compare售前常见问题
Compare售后常见问题

PinLock

PinLock售前常见问题
PinLock售后常见问题

您购买的产品所支持的特性和功能,取决于产品型号以及您的授权。 | 内容如有变化,恕不另行通知。

返回顶部