尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

FlashPro3使用手册之外的实战:JTAG烧录从驱动到批量产线的完整指南

FlashPro3使用手册之外的实战:JTAG烧录从驱动到批量产线的完整指南 简介《FlashPro3使用手册》由广州致远电子编写面向使用Actel第三代FPGA如ProASIC3、IGLOO、Fusion的硬件开发者与调试人员是一份以FlashPro3下载器为核心的实操参考。手册从功能简介入手系统展示下载器与PC的USB连接方式并对板载Pass/Fail、Activity、On三个LED状态做了说明便于用户快速判断下载是否成功、传输是否进行以及连接是否正常。驱动安装、FlashPro软件安装以及下载模式选择、参数设置等关键步骤均有清晰讲解同时附有不同器件在USB2.0与USB1.1下的下载时间对照表如A3P060约29秒、A3P1000约1分26秒为项目选型提供参考。针对在线调试FPGA与内嵌软核8051、ARM7等场景手册也给出必要说明与配合工具提示可帮助读者减少初期的配置弯路。资源包内为1个PDF文档大小仅318KB离线查阅与打印均很方便。目前已有471人浏览学习适合刚入手Actel FPGA下载流程的工程师、学生作为快速上手资料。 如果你也是因为要找怎么用FlashPro3而打开那份FlashPro3使用手册.pdf我猜你现在八成和我第一次拿到它时一样PDF目录看着清清楚楚真把设备插上电脑、接上目标板却卡在驱动装不上、No device found这种最基础的问题上。FlashPro3是Microchip原Microsemi/Actel面向Flash架构FPGA推出的USB编程器核心工作是通过JTAG在系统编程。PDF把每个菜单项都写得很规矩但手册默认你早就知道JTAG是什么、目标板得自己上电、TCK频率会影响稳定性。所以下面不打算复述PDF里的菜单清单而是把从开箱到批量烧录过程中真正决定成败的细节挑出来讲透。适合刚接触FPGA烧录的硬件工程师、产线测试人员以及被老板塞了一台FlashPro3又找不到人带的同学。1. FlashPro3到底是什么为什么它和普通烧录器用起来不一样1.1 核心能力是通过JTAG做在系统编程FlashPro3最核心的本事字面上标的是Flash Programmer实际上做的是在系统编程ISP。普通SPI Flash烧录器一般要拿烧录座把芯片压住或者把芯片从板子上摘下来用专用座读写FlashPro3不需要拆芯片只要目标板上留出JTAG接口引出了TCK、TMS、TDI、TDO、VTREF和GND这六根线就能在板级状态下直接对FPGA内部的Flash单元擦除和写入。举个例子就好比普通SPI Flash烧录器是把存储卡从手机里拔出来塞进读卡器写内容FlashPro3则是通过手机的数据线直接访问存储区域。好处非常明显研发阶段可以一天改十版固件反复擦写不必担心芯片引脚被座子压坏生产阶段可以在装配好的板卡上完成最后一步烧录然后直接进功能测试。代价是目标板必须处于上电状态JTAG链路从编程器到FPGA引脚都要完整任何一个环节断路报错都五花八门。有一点手册里往往不会强调FlashPro3必须连接电脑工作它不是离线编程器。所谓离线编程器是把镜像先存到设备里再到现场按一下按钮烧录FlashPro3的执行主体是PC端的FlashPro软件所有操作序列、编程文件都在电脑上所以它更适合研发和在线产线而不是没有电脑的野外现场升级。你要是做现场升级得另外选带离线功能的编程方案。这个定位决定了你在使用它时始终要先把电脑、软件、驱动这条路走顺。1.2 覆盖器件和软件版本的对齐关系FlashPro3支持的器件集中在Microchip收购之前Actel那一代的Flash架构FPGA上比如ProASIC3/ProASIC3E、IGLOO系列、Fusion混合信号FPGA以及SmartFusion系列。后续的SmartFusion2、IGLOO2这些新生代器件通常推荐对应更新的编程器型号但很多老产线手里的FlashPro3仍然在服役。这个支持范围不同版本不太一样所以最稳妥的参照不是那份PDF正文而是软件安装包自带的Release Notes。软件这边烧录功能对应的程序叫FlashPro Programmer。你可以单独安装它也可以装完整的Libero SoC FPGA设计套件让FlashPro以工具链子组件的方式被调用。我的建议是如果只做烧录和固件升级装独立版就够如果还要做逻辑综合、布局布线、生成编程文件那就直接装Libero。有一个容易让新人懵的地方是在器件列表里找不到你的芯片型号时先别怀疑硬件十有八九是软件版本太旧去把FlashPro升级到和器件对应的版本。还有一个使用手册很少提的道理FlashPro3能不能顺利工作很大程度取决于目标板的JTAG设计。TCK上有没有串阻尼电阻、TDO上有没有加缓冲、目标板JTAG是否和别的器件共链都会影响烧录成功率。这是一份写给大家看的手册不会知道你板子上的细节遇到问题不要全赖在编程器头上。2. 第一次上手最容易翻车的不是烧录本身而是环境2.1 驱动Windows手动指定和Linux权限先装软件再插设备这个顺序值得强调。FlashPro3用的是USB接口但系统不会像识别U盘一样自动弹出一个盘符它在Windows里会被识别成一个USB编程器设备。如果插上后设备管理器出现一个带感叹号的未知设备不要急着下载各种驱动工具直接在设备管理器里选择“更新驱动程序”手动定位到FlashPro安装目录下的Driver文件夹即可。旧版驱动残留是我见过最多的坑以前装过别的USB转JTAG工具VID/PID被占用导致FlashPro软件始终报没有硬件。这种情况卸载旧软件、拔掉设备、重启一次电脑再重装会消停很多。在Linux环境下跑FlashPro第一道坎往往是权限。普通用户插上设备软件可能完全看不到硬件。常规做法是把当前用户加入dialout或uucp组或者按照软件安装文档放一条udev规则把USB设备的权限放开。我个人的实操顺序是先看lsusb里能否看到对应VID的USB设备如果能看到说明总线枚举成功只需要解决权限如果根本看不到再去检查线材是不是只充电不传数据的那种。2.2 10针排线方向、线序和VTREF是命门很多第一次用的人觉得JTAG排线只要插上就完事结果就是软件报各种找不到目标板。FlashPro3的10针接口里真正必须连的是六根信号TCK时钟、TMS模式选择、TDI数据进、TDO数据出、VTREF参考电压、GND地另外TRST测试复位视目标板需求决定要不要接。VTREF这根线最容易忽略它必须接到目标板的VDD上编程器靠它来判断目标板的逻辑电平是3.3V、2.5V还是1.8V。不接VTREF时软件即便看到USB设备也会觉得目标板没上电。还有两个细节经常让人熬夜。第一扁平排线的红线并不永远代表1脚不同开发板对1脚的标注位置各不相同必须拿原理图或板子丝印核对一遍再插。第二FlashPro3本身不从USB口向外供目标板电源目标板一定要自己供电。之前有个同事板子不插电源就点烧录软件报错后他反复怀疑编程器坏了其实是目标板压根没有电。2.3 上电顺序看似小事影响却很大上电顺序我建议固定成先接好JTAG排线再打开目标板电源最后再让FlashPro软件执行检测或烧录。其实反过来先开软件再上电也能识别真正危险的是烧录过程中目标板突然断电——轻则报错重则留下一个写了一半的镜像下次上电可能起不来。为了降低这种风险实验室桌上我会把目标板电源接到一个带开关的排插上伸手可及万一发现冒烟或者电流异常能第一时间切电比到处找电源适配器插头要安全得多。连接顺序的另一个隐藏作用是方便排查问题。先接JTAG再上电如果上电瞬间电流异常问题大概率在目标板自身如果先上电再插JTAG排线插错导致短路时你很难分辨是排线方向问题还是板子本身在拉电流。实践中这套顺序帮我定位过好几次硬件短路所以宁愿多一步操作也别省。3. 从空芯片到完成烧录标准操作链路里的关键细节3.1 新建工程时文件和器件别选错打开FlashPro Programmer第一步是新建工程设定工程名和保存路径然后选择目标器件系列和具体型号。这里值得多花几秒钟确认器件型号和板子上实际印的标号必须完全一致哪怕是同一个系列里不同封装或不同等级IDCODE都可能不同。选错型号最典型的结果是软件报器件不匹配或者烧录进去后功能异常。编程文件一般是从Libero工程里导出来的常见的是.pdb格式。如果你在工程目录下找不到不要硬找回去在Libero里执行Export Programming File相关的命令重新生成一份注意选择正确的工程配置和编程模式。工程建立之后建议立刻保存后面命令行批量调用也要用到这个工程文件。3.2 那些按钮的真实含义图形界面上一字排开的Blank Check、Program、Verify、Erase手册每个都解释过但真正用起来还是有几个经验值得讲。Blank Check是查空适合新板子第一次烧录能帮你区分“这块板之前是不是被烧过”Program是写入主体程序Verify是写入后回读校验。默认情况下我建议把这几个步骤串成一条操作序列顺序是Blank Check可选、Program、Verify每次点一下Run软件自动按顺序跑完避免漏掉校验。Erase的使用场景要分清。整片擦除适合想要完全恢复出厂状态的场合如果只是更新用户程序区很多情况下直接Program即可但前提是你对当前芯片的安全设置有把握。这里特别要记住一旦开了加密或安全位后续的擦除、回读、调试都会受限制。研发阶段个人建议先不要开安全位等功能全部验证完了量产前再考虑开。3.3 TCK频率、日志和其他容易被忽略的工程参数TCK频率是烧录稳定性的分水岭。默认频率一般很保守正常开发板没问题但如果你用杜邦线飞线连接或者JTAG走线绕了很长高速烧录就可能出现随机的校验失败。遇到这类问题我的第一反应永远是先把TCK频率降下来比如降到1MHz以下再看校验是否稳定通过。反过来如果板子布线质量好、又追求产线节拍可以适当提高TCK但每提高一档都要连续烧录多片验证不能只烧一片就拍板。另一个被大多数人忽视的是日志。FlashPro软件通常有Log输出窗口也可以配置把日志写入文件。别嫌它占地方出问题的时候报错地址、操作时序、失败步骤全在里面。默认情况下我会把日志级别开到详细保存到工程目录这习惯帮我省了不知道多少排查时间。4. 从研发走向产线命令行烧录和防呆设计4.1 用命令行模式替代反复点鼠标研发阶段一台机器烧一块板子点鼠标无所谓。一旦到了小批量三十块、五十块每块都要打开软件、选工程、点Run、看结果重复劳动既慢又容易疲劳。FlashPro软件支持命令行模式核心思路是先准备一个GUI工程然后用命令行加载该工程并执行Run动作。命令形式大概长这样flashpro -project my_board_run -run不同版本之间命令行参数可能会有些差异所以第一次用之前跑一条带帮助参数的命令看一眼别盲目复制网上的老命令。更重要的是判断执行结果。命令行程序一般通过退出码来表示成功或失败脚本可以基于这个退出码决定下一步动作flashpro -project my_board_run -run if [ $? -eq 0 ]; then echo BOARD_OK else echo BOARD_NG fi在Windows环境用批处理也是一样的逻辑判断errorlevel后决定是打绿色标还是红色标。4.2 给操作员做减法产线场景里操作员不一定是工程师。把责任压在“看懂软件界面”上是不合理的更合理的做法是给操作员做减法。放板、接线、按一下电源、双击一个脚本、看指示灯或者看屏幕上BOARD_OK/NG。成功和失败的结果越简单越好最好连日志的输出都自动保存成带时间戳和序列号的文件方便追溯。另外一个容易被忽视的点是编程器资源分配。如果有多台FlashPro3同时工作建议每台固定对应一个目录或者一条命令行脚本不要让同一条脚本在多台电脑上乱跑。某次产线上两块板同时烧录时出现校验失败排查下来是两台机器共用了同一个工程配置里的日志路径日志互相覆盖误以为设备冲突。把这个路径改成以序列号命名后问题再没出现。5. 烧录失败排查链路那些让我熬夜到凌晨的坑5.1 设备都识别不到按这个顺序查如果FlashPro软件一直报找不到设备别急于怀疑编程器坏了。我的固定排查顺序是先确认电脑有没有枚举到USB设备Windows看设备管理器Linux跑lsusb如果枚举正常但软件不认把USB线换短一点避免某些延长线供电不足再查驱动是否被其他工具干扰确认无误后才轮到目标板。接下来查目标板供电和VTREF万用表量一下VTREF点的电压应该和板子VDD一致。最后再用万用表通断档量TCK/TMS/TDI/TDO从排线座到FPGA引脚之间的走线。很多所谓“设备识别不到”的故障根本原因是某根信号线虚焊或者插针氧化。排查的时候最忌讳乱跳步。有一次我跳过USB枚举直接怀疑排线把排线换了三根最后发现是电脑的Type-C转USB头的问题白白浪费半天。按顺序来每步有结论再进下一步比拍脑袋高效得多。5.2 编程中途失败或校验不一致编程到一半断开、Program完成后Verify对不上这类问题通常指向四个方面。第一TCK频率过高降频再试第二目标板供电在编程瞬间跌落最好用示波器抓一下编程期间的VDD波形看有没有明显塌陷第三接触不良特别是插针座和排线之间的接触氧化或者弹片疲劳都会导致偶发性失败第四芯片本身的安全位或FlashLock设置影响后续回读这种情况下要把安全策略排查放在前面而不是反复烧录。还有一个常被忽略的因素是静电。秋冬季节干燥操作员如果没做好防静电措施触摸排线或板卡时产生的静电可能让编程异常。产线上有条件的话操作台铺防静电垫、操作员戴防静电手环比事后纠结校验失败要省心。5.3 常见报错速查表报错/现象常见原因快速解法软件提示找不到USB硬件驱动冲突、USB线质量差重装驱动、换短USB线、重启电脑软件说目标板未上电VTREF没接或目标板未供电接好VTREF到VDD确认板子上电JTAG链路无法建立排线方向反、某根信号断路核对1脚方向万用表量通断校验中途失败TCK过高或供电跌落降频示波器查VDD波形提示安全位/锁定错误芯片之前开过锁先确认密码与解锁策略必要时换片6. 最后分享几条PDF里学不到的经验这些经验如果在看那份FlashPro3使用手册.pdf之前有人告诉我我能少走不少弯路。第一条准备一张烧录前检查卡内容就三行目标板是否上电、JTAG排线1脚是否对准、VTREF是否接好。贴在工位上每次烧录前花十秒钟过一遍可以拦截掉大多数低级错误。我做研发的头几个月也犯过不少低级错误后来养成了这个习惯烧录失败率直线下降。第二条安全位和FlashLock这类加密功能研发阶段尽量晚开。开加密之前一定要想清楚密钥和密码怎么保存因为一旦设置完成忘记密码基本等于芯片报废需要用编程器清不掉返修成本很高。量产前再统一开锁并把密码放进受控文档。第三条把工程文件、日志和烧录配置纳入版本管理和硬件设计文件放一起。烧录参数不是玄学它和原理图一样是一家公司的技术资产。第四条备两根品质好的USB线直接插主板USB口不要用太长的延长线。FlashPro3这种工具的USB通信对供电和信号完整性有一定要求很多莫名其妙的问题换线就好了一半。我个人的感觉是FlashPro3本身是个皮实耐用的工具真正考验人的是使用它的环境和方法。拿着手册先别急着操作先从驱动、排线和目标板供电这三件事开始等你把一次完整烧录流程跑通再回去翻PDF很多当时没看懂的地方原来是这个意思。本文还有配套的精品资源点击获取
返回列表