同步操作将从 ReferenceZ/UltraLink 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
UltraLink是基于CMSIS DAP设计的一款多功能调试下载器,特性如下:
LED指示 | 状态 | 功能说明 |
---|---|---|
红色 | 常亮 | 未连接电脑(或驱动错误) |
蓝色 | 闪烁 | 下载器与MCU或者电脑通信中 |
蓝色 | 呼吸 | 已进入Bootloader模式 |
绿色 | 常亮 | 已连接电脑 |
UltraLink通过USB TypeC数据线连接电脑后,会自动安装虚拟串口以及CMSIS-DAP驱动,Windows10以上系统完全免驱。
安装完成之后,打开电脑的文件管理器会看到识别出来的一个 64MB 大小的 U盘设备 (可以自行重命名),通过该设备可以直接把离线烧录的文件和其他配置文件拖入U盘,来写入到UltraLink板载的Flash中。
初次使用UltraLink会自动进行系统初始化,U盘目录下会建立一些系统文件夹, 请勿删除这些文件!
系统文件说明:
- SETTING:用于备份用户设置(未来会用到)
- SRC:储存一些系统资源比如图片、metadata等
- LICENSE:设备的授权文件,出厂会对设备进行激活,该文件和每台设备唯一绑定,因此建议收到机器后首先将此文件进行备份,以防止未来格式化磁盘后文件丢失。
此外打开设备管理器,可以在端口(COM和LPT)
中看到多出来一个串口号,可以使用电脑上的各种串口调试工具打开该串口号进行调试,和其他USB转串口模块的使用是一样的。
设备管理器中还会在
通用串行总线设备
中识别出一个名为UltraLink REF
的设备,这是预留的USB Bulk通信设备,用于实现更多高速USB通信应用,比如屏幕镜像APP和未来的一些其他应用。
UltraLink有两排10Pin的排针,排针的引脚功能定义在屏幕的主界面有说明。
靠近屏幕的一排是
Row-1
,下面的一排是Row-2
,Row-1
和Row-2
最左边的第一个引脚都是Gnd,对应于外壳上面的凹刻图标指示。
第一次使用UltraLink时会进行操作指引,如果后续还想看到引导画面,请在设置中恢复出厂设置。
具体操作逻辑非常简单:
滚动UltraLink右侧的滚轮,上下滚动用于切换选中条目,短按压为确认操作,长按压为返回操作。
上电默认进入的是Home界面
:
Home界面
短按会进入APP菜单界面
,上下滚动滚轮切换所需的APP功能:取消
或者返回上一级页面
。UltraLink是一个扩展性非常强的多功能调试器,设备的每一项功能都作为一个APP。
其中CMSIS-DAP调试器功能是最特殊的APP,该APP无需开启,在任意APP功能页面下,UltraLlink都具备在线调试器功能。
也就是说UltraLink支持同时运行CMSIS-DAP的在线下载调试功能以及其他APP。
只有一个场景不能同时使用,也就是当在使用离线下载功能进行固件下载过程中,此时SWD的IO是被离线下载功能占用的,因为不可能同时进行在线下载和离线下载。
DAP在线下载调试功能使用的引脚是SWCLK
和SWDIO
,也就是标准的SWD接口。
设备也支持JTAG接口,不过该接口我用得比较少所以还没有大量测试。
UltraLink作为在线调试器的使用和ST-Link、J-Link等都一样。
对于Keil,只需要在项目设置中选择CMSIS-DAP即可:
对于STM32IDE、VS Code、CLion等使用OpenOCD调试的IDE,可以参考仓库中的 2.配套软件/OpenOCD配置文件 ,修改.cfg
文件中的接口为cmsis-dap即可。
不熟悉操作的同学可以搜索DapLink相关的教程,UltraLink的操作流程和方法是一样。
该功能用于脱机下载固件,也即不需要连接电脑即可给MCU烧写固件,很适合用于自制设备的量产烧写。
将需要下载的固件拖入UltraLink的U盘设备,重启UltraLink之后可以在选择固件文件
中看到固件文件。
固件文件的文件名只能是英文,而且长度最好不大于32字符,建议只使用
字母
、-
、_
的组合。
选择芯片型号
用于设置对应的下载算法,默认内置了STM32F1
、STM32F4
、STM32F7
等芯片,后续会持续扩展更多的芯片型号支持。大家有想要适配的芯片型号可以在本仓库的Issues里面提出,这边会根据实际情况适配。
更新支持芯片型号需要通过Bootloader更新UltraLink的固件来实现。
设置下载地址
用于修改烧录的起始地址,该功能正常使用保持默认即可。对于一些需要配合Bootloader使用的固件可以通过该功能设置地址偏移。
一般Bootloader固件会放在芯片Flash最开始的启动地址,而实际应用代码会放在一个偏移地址,这样就能实现上电后首先进入BL,由BL判断是否进行一些特殊操作,或者直接跳转到APP地址。
因此用下载器这类应用烧写固件时,一般会烧录两次,一次在默认地址烧写BL,一次在偏移地址烧写APP。
自动触发下载
用于开启或关闭连续固件下载功能,当不开启时,需要手动点击开始下载
进行固件下载,当开启时,只需将光标移动到指示位置,然后把SWD引脚接触目标板卡,就会自动触发下载。用此方法可以快速连续下载多个板卡的固件,可以大幅提高批量下载的效率,很适合用于量产固件烧录。
储存当前设置
可以将当前配置好的下载设置(芯片型号、下载地址)进行断电保存,下次上电就会加载该配置。
擦除芯片
用于单独擦除整个目标芯片。
UltraLink使用USB转串口来实现很多调试功能,在不同界面下串口的功能可能有所不同。
在Home界面下,UltraLink支持标准USB转串口功能,也就是说当用串口调试助手对UltraLink识别出来的COM口进行数据发送时,数据会被发送到设备的Tx
引脚,反之,Rx
引脚接收到的数据会被发送到USB虚拟COM口号上。
该APP为一个方便的CAN调试功能,无需安装三方软件,直接通过串口调试助手即可以调试CAN,非常方便。
由于该功能会占用USB串口号,因此进入该APP之后默认的标准USB转串口功能会失效。
进入APP后可以看到显示的UltraLink本机的CAN节点地址,目前只支持标准ID,也即0x000~0x7FF,默认地址是0x7FF
,可以通过滚轮进行修改,修改实时生效。
向下滚动滚轮直到黑色条处显示Baud
则进入了设置波特率功能,此时短按滚轮可以在不同波特率之间进行切换,修改实时生效。
在Baud界面再次向下滚动滚轮会显示Exit
,此时短按滚轮确认可以退出APP。
任意界面长按滚轮都会跳转到Exit界面,再次短按即可退出。
在该APP开启后,打开串口调试助手,当CAN-H
和CAN-L
引脚有数据接收时,串口助手会打印出接收到的CAN消息,包括消息节点的ID以及数据。
而当使用串口助手发送格式形如 12 33 67 78 99
格式的字符串数据时,也会通过CAN-H
和CAN-L
引脚把数据转发给CAN总线。
注意发送的数据为16进制格式,每次可以是1~8个字节,比如上面的例子中是发送5个字节。
使用串口协议的好处是使用直观,不依赖其他软件,而且大家也可以根据需要自己写代码调用COM口进行协议自定义,比如可以用PySerial写一个脚本来收发自定义格式的CAN数据。
v3.7之后的版本固件初步增加了对于CAN调试APP的扩展帧ID支持,无需在下载器上设置,直接串口输入指令即可修改参数,比如:
输入指令#SET_MODE 0
或者#SET_MODE 1
来切换标准帧和扩展帧
输入指令#SET_ID 12345
来设置ID为0x12345
注意指令需要加换行。
该功能用于进行电压测量,支持的测量范围为0~20V,测量过程会同时显示电压波形数据。
由于UltraLink的控制器芯片IO电平为3.3V,因此除了指示的ADC引脚之外,别的引脚接入高压都可能导致芯片烧毁,请务必注意不要接错测量引脚。
该功能用于进行简易的数字波形采集以及协议分析,具备4通道采集功能,需要配合上位机软件PulseView定制版使用。
由于SRAM限制,UltraLink的采集参数为:
采样参数的配置完全依靠上位机操作,UltraLink上无需任何配置,但是会显示当前的参数。
由于芯片的SRAM大小限制采样深度,因此本设备只适合用于简易场景的逻辑分析,并不能替代专业分析仪。很常用的场景是分析一些总线协议,或者进行波形时间测量。
我个人需要逻辑分析仪的一个常用场景是:想测量一段代码的执行时间,但是代码执行的频率很高,用printf打印时间戳的方式不可行,那么可以用逻辑分析仪检测IO电平反转时间来准确得到时间间隔。
大家可能经常用printf打印一些调试数据,但是实际上printf本身的执行时间是很长的(接近ms级别),因此如果测量的代码执行时间很短,那么printf其实完全不可用;此外printf的实现方式也导致其效率差别很大(阻塞输出、DMA输出等)。
因此比如我在调试电机的时候,需要在每个PWM周期(20kHz)中执行一遍处理代码,我希望测出代码执行时间,那么显然printf是无法使用的;我可以用寄存器方式操作一个GPIO进行翻转,代码开始时置高电平,结束时置低电平,再使用逻辑分析仪测出波形,就可以精确地得到代码运行时间了。
上位机软件PulseView定制版安装方法,直接运行安装包即可。
再连接设备之前需要给UltraLink配置一下串口驱动,使用Zadig软件完成:
List All Devices后,选择UltraLink CMSIS-DAP (Interface 1)
设备,注意确认此时Driver栏显示的是usbser
才是正确的设备号。
点击下箭头选择USB Serial (CDC)
,然后勾选上方的Edit框,把左边的名称改为UltraLink VCP
,再点击Upgrade Driver
即可,等待一分钟左右。
正确操作的话此时设备管理器中的串口设备名称以及变为
UltraLink VCP
。
然后进入UltraLink的逻辑分析仪APP界面,再打开PulseView软件,依次点击:
即可连接设备。
注意此时UltraLink一定要是在DLA的APP页面下,否则上位机是识别不到设备的。
如果在非DLA的界面下点击了Scan可能会卡住,那么需要先切换到DLA界面,再关闭PulseView重新进入一下即可。
连接后可以点击PulseView中的Run进行一次波形采集,也可以软件中设置不同采样深度和采样率。
采样深度的意思是每次最多可以采样几个点,采样率的意思是采集的速度。
举个例子,以10K的采样深度,1MHz的采样率进行采样,那么就可以采集10K/1M=0.01s钟的波形。所以采样率越高对于信号的分析能力越强,但是过高的采样率会导致采样时间变短。
一般需要选取采样率为被测信号的最高频率5倍以上。
待持续更新。
参考资料:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。