打印
[MM32软件]

(分享)MM32F013x——J-Scope虚拟示波器功能

[复制链接]
989|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在实际项目中,很多时候,我们需要将传感器、ADC的数值和计算的结果变量以波形的形式显示。通常的解决办法是用串口上位机、USB接口上位机或者MDK的逻辑分析仪等方式输出查看,使用这三种方式都比较繁琐,需要占用额外的系统资源。今天为大家讲解的J-Scope波形软件简单易用,不占用系统额外资源,无需用户写目标板代码,仅需将JLINK插上即可。
针对以上的问题,SEGGER推出了J-Scope波形显示软件。

使用特权

评论回复
沙发
两只袜子|  楼主 | 2021-5-20 15:35 | 只看该作者
J-Scope上位机
J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要SWO或目标上的任何额外引脚等功能,使用标准的调试接口即可。J-Scope波形显示软件主要有RTT和HSS两种工作方式。
01
HSS模式
HSS模式不需要在用户代码上面添加任何代码即可实现。只需要使用J-Scope加载MDK或者IAR的可执行文件即可(MDK生成的可执行文件为.axf文件,IAR生成的文件为.out文件),而且随时随地都可以连接目标板,不影响目标板的正常功能,不需要额外资源,同时可以设置上升沿,下降沿或者双沿触发。
02
RTT模式
RTT快速上传模式,需要用户在代码上加入RTT的相关组件(相关组件的添加请参考上一章节),并使用J-Link与目标板连接,此模式采用标准的下载接口,用到的下载接口有VCC、GND、SWDIO、SWCLK、RST。

使用特权

评论回复
板凳
两只袜子|  楼主 | 2021-5-20 15:36 | 只看该作者
03
J-Scope在HSS模式下支持的产品型号


使用特权

评论回复
地板
两只袜子|  楼主 | 2021-5-20 15:39 | 只看该作者
04
JScope在RTT模式下支持的产品型号


使用特权

评论回复
5
两只袜子|  楼主 | 2021-5-20 15:40 | 只看该作者
05
不同版本的J-Link速度对比


使用特权

评论回复
6
两只袜子|  楼主 | 2021-5-20 15:41 | 只看该作者
HSS模式获取数据
HSS模式比较简单,仅需要将编译器生成的可执行文件加入到J-Scope上位机软件即可。

相对于RTT模式来说此模式随时随地都可以连接目标板,并且不影响目标板的正常功能,并且不需要额外的资源。但是相对于RTT模式也存在着速度慢的缺点,采样的速度基本上在1KHZ左右,仅适合采样变量变化速度低于1KHZ的情况。
01
HSS模式使用方法
将目标板与J-Link连接,下载程序后并重新上电。
打开J-Scope的上位机软件,如下图所示:




使用特权

评论回复
7
两只袜子|  楼主 | 2021-5-20 15:42 | 只看该作者
创建工程,选择“Create new project”选项,弹出工程配置对话框。


使用特权

评论回复
8
两只袜子|  楼主 | 2021-5-20 15:43 | 只看该作者
J-Link使用的为USB接口,所以在进行配置的时候选择USB接口即可,芯片的具体型号可以根据用户自己的需求来选择,通信接口可以选择JTAG接口或者SWD接口,调试的模式选择HSS模式,并在elf file对话框中加载可执行文件。




使用特权

评论回复
9
两只袜子|  楼主 | 2021-5-20 15:45 | 只看该作者
勾选需要显示的变量名。


使用特权

评论回复
10
两只袜子|  楼主 | 2021-5-20 15:46 | 只看该作者
然后直接按F5开始运行,针对不同用户的使用情况,J-Scope可能会弹出不同的提示对话框,直接点击OK确认即可。


使用特权

评论回复
11
两只袜子|  楼主 | 2021-5-20 15:49 | 只看该作者
J-Scope上位机软件打印出波形。


使用特权

评论回复
12
两只袜子|  楼主 | 2021-5-20 15:59 | 只看该作者
RTT模式获取数据
RTT模式获取数据的原理就是利用SWD接口完成数据从MCU到J-Scope上位机软件的数据传输。此模式相对于HSS模式有更高的数据传输速率,最高可以达到2MB/s,并且随时可以连接目标板且不影响目标板的正常功能,并且可以添加时间戳。
01
RTT模式使用方法
1.1  软件配置
在目标工程中加入RTT的代码文件,具体的操作请参考上一讲RTT的移植教程,在主函数中加入RTT的初始化配置。

SEGGER_RTT_ConfigUpBuffer(1,"JScope_u2",buf,2048,SEGGER_RTT_MODE_NO_BLOCK_SKIP);

使用特权

评论回复
13
两只袜子|  楼主 | 2021-5-20 16:03 | 只看该作者
然后创建一个定时器,利用定时器定时向J-Scope上位机发送数据。

/******************************************************************************
* @brief
* @param
* @retval
* @attention
******************************************************************************/
void TIM2_Configure(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    NVIC_InitTypeDef        NVIC_InitStructure;

    TIM_DeInit(TIM2);

    /* Enable TIM2 clock */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

    /* Config TIM2 Every 1ms Generate Interrupt */
    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.TIM_Prescaler           = (RCC_GetSysClockFreq() / 1000 - 1);
    TIM_TimeBaseStructure.TIM_CounterMode       = TIM_CounterMode_Up;
    TIM_TimeBaseStructure.TIM_Period                = (1000 - 1);
    TIM_TimeBaseStructure.TIM_ClockDivision         = TIM_CKD_DIV1;
    TIM_TimeBaseStructure.TIM_RepetitionCounter     = 0;
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    /* Clear TIM2 Update Flag */
    TIM_CleaRFlag(TIM2, TIM_FLAG_Update);

    /* Enable TIM2 Update Interrupt */
    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

    /* Enable TIM2 */
    TIM_Cmd(TIM2, ENABLE);

    /* Enable TIM2 Interrupt */
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}


/******************************************************************************
* @brief
* @param
* @retval
* @attention
******************************************************************************/
void TIM2_IRQHandler(void)
{

    /* Clear TIM2 Update Interrupt Flag */
    TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
    SEGGER_RTT_Write(1, &g_SineWave128[(i++) % 128], 2);
}
在主函数中初始化TIM2的配置:

TIM2_Configure();

使用特权

评论回复
14
两只袜子|  楼主 | 2021-5-20 16:04 | 只看该作者
1.2  J-Scope上位机配置
RTT模式的配置与HSS模式的配置类似,但是在J-Scope Configuration选项卡中的Sampling Source界面选择RTT模式,在RTT模式下不需要加载可执行文件。


使用特权

评论回复
15
两只袜子|  楼主 | 2021-5-20 16:05 | 只看该作者
配置完成以后运行可以看到J-Scope上位机打印的波形。


使用特权

评论回复
16
chenqianqian| | 2021-5-20 18:33 | 只看该作者
不错,感谢楼主的分享。

使用特权

评论回复
17
dongnanxibei| | 2021-5-21 16:27 | 只看该作者
不需要实体?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2034

主题

7335

帖子

10

粉丝