ST-Link刷成JLink来使用J-Scope工具

香农采样定理:采样频率大于两倍信号频率分量中的最大频率就可以从采样信号中不失真的恢复原连续信号。

要采样周期100us正弦波形的电流,通过图形化显示出来,这里有两个方案;
1.采集的电流波形数据通过DA模块(数字量转模拟量)输出,然后通过示波器实时采集;
2. 通过仿真器读取单片机内存中保存电流数据的变量,实时显示到PC上,这个通过J-Scope就可以实现了;

J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。通过读取一个ELF、axf或out文件,允许选择一定数量的变量可视化,需要使用Jlink调试仿真器的来实现。ST-LINK可以通过软件刷成Jlink固件,这样也使用J-Scope。

1.准备工作

硬件:ST-Link下载器
软件:1、JLink软件;2、J-Scope软件;3、ST-Link Reflash Utility

所用软件版本:JLink为V6.34f、J-Scope为V6.11m、ST-Link Reflash Utility为2019-08-12日期的
(之前安装的JLinkV512b和J-Scope5.10d都有问题,换了新一点的版本后就解决了)
在这里插入图片描述SEGGER官网下载地址
下面备上SEGGER官网常用软件镜像下载:网址

2.刷ST-Link为JLink

1. 软件安装
按默认路径安装JLink软件、J-Scope软件,解压“ST-Link Reflash Utility”到与前两个软件相同的根目录下。
2. 刷ST-Link为JLink
打开SEGGER STLinkReflash软件
1)、输入“A”回车,接受SEGGER条款(大小写均可)
在这里插入图片描述
2)、再次输入“A”回车,接受ST条款(大小写均可)
在这里插入图片描述
条款的大概内容:

  • 该固件仅用于ST目标设备,禁止将其与其他设备一起非法使用。
  • 该固件仅与评估板一起使用,它不适用于定制硬件。
  • 固件只能用于开发或评估目的,不得用于生产目的。
  • 所提供的固件没有任何保修和支持。

3)、输入“1”回车,选择“升级到J-Link”
在这里插入图片描述

4)、刷固件出现的问题
Preparing for FW update (can take up to 10 seconds)…O.K. Identifying ST-LINK variant…ERROR: Unsupported ST-LINK hardware variant

解决:使用winhex软件打开STLinkReflash.exe后修改如下数据,保存后重新打开,重复执行步骤1)、2)、3),等待升级完成,即可刷固件成功。
STLinkReflash.exe需要修改的地方:

地址0x2566处的0x3C修改为0x38
地址0x2567处的0x40修改为0xC0
地址0x26B2处的0x3C修改为0x38
地址0x26B3处的0x4A修改为0xC0

在这里插入图片描述在这里插入图片描述注意:如果winhex软件没有注册的话是保存不了修改之后的数据的,这时候只需要找一个能用的注册码注册即可。(打开winhex软件,选择菜单 -> Register,黏贴注册码选择OK后重新打开软件即可)
在这里插入图片描述

下面附上一个能用的注册码:

Name: DimitarSerg
Addr: ds@mail.ua
Addr: Ukraine
Data: 0F557DBDC9F648EACF4065D7F857223E
Data: 4E0656414E48F4DEE6991EC8205CB994
Cksm: F22E328E

在这里插入图片描述

刷ST-Link为JLink成功的截图:
在这里插入图片描述此时,电脑设备管理器和Keil MDK,进入Options …Debug选项中都可以看见J-Link,说明已经升级成功,可以用ST-Link的硬件实现JLink的(部分)功能了,使用J-Scope虚拟示波器。
在这里插入图片描述
在这里插入图片描述

进入的时候,会提醒只支持SWD模式,点击确定即可。
在这里插入图片描述

5. KEIL下载出现的问题
下载程序的时候,Load程序失败,并弹出报错信息。
在这里插入图片描述**问题分析及解决:**keil的版本新,而JLink的版本旧导致的,打开JLink驱动的安装目录,找到JLinkARM.dll文件,复制此文件到KEIL的ARM/Segger目录处,粘贴并覆盖旧的.dll文件即可。
在这里插入图片描述在这里插入图片描述至此,可编译下载。

3.J-Scope的使用

1. 在程序中添加测试代码,并编译下载

float x = 0;
double sin_o = 0;
double cos_o = 0;
int in;

int main(void)
{
    while(1)
    {  
	x += 0.01;
	if(x >= 100)
	x = 0;
	
    sin_o = sin(x);
    cos_o = cos(x);
	}
}

2. 打开J-Scope软件进行配置

1)、选择创建新工程
在这里插入图片描述

2)、浏览查找设置相应目标板器件,这里我使用的为STM32F407IGT6
在这里插入图片描述

3)、浏览加载 .axf 文件
keil软件不输出elf文件,elf文件一般是GCC编译器生成的,keil是ARMCC进行编译,最终生成的文件是.axf。
在这里插入图片描述

最后确认设置好的页面为如下所示。
在这里插入图片描述

4)、确认后自动弹出要观察的变量选择列表,拖动滚动条找到要观察的变量。在右列对应的选项框中打勾,选择好要观察的变量后,点击红色按钮,开始采样。

在这里插入图片描述

这时可能会弹出确认对话框,意思是我们的J-Link Prob版,仅支持1K/S采样。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

回到设置窗口,在下框中输入1000,相应的采样率会自动变为1K,以后将不会再弹出上图窗口。猜想1000后面的乱码,可能是us。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值