首页/文章/ 详情

数据可视化工具Data Visualizer的使用介绍

2年前浏览728

当嵌入式系统在运行时,去处理一些内部数据是比较难的,一旦使用Debug工具调试断点,则整个系统便会停下来,而无法监测到运行中的真实情况,本文介绍一种简单的数据可视化工具Data Visualizer的使用,如图1所示,类似于MCC工具,可以从MPLAB XIDE的Plugins中去在线安装此插件,此处不做详述。安装好的视图如图2所示。

1 数据可视化工具的作用

图2 安装好之后的Data Visualizer


.嵌入式系统的创建

在使用Data Visualizer之前,我们先通过MCC建立一个工程,通过PWM1产生器信号PG1H信号,触发ADC的专用通道AN0,ADC AN0中断中得到AN0Demo板上的采样值,同时在Timer1的中断中去采用UART外设把数据发送到Data Visualizer的界面中去显示。除此之外,我们也验证一下使用Data Visualizer的基本串口终端的功能。

图3 数据显示实验平台


本文实验均基于dsPIC33CK256MP506 Digital Power PIM 板,MA330048,如图3所示。

图4 主时钟的配置参数


主时钟的配置参数如图4所示,采用内部FRC振荡器,通过PLL适当配置可以达到100MHz的指令时钟频率,这里系统时钟FOSC200M.


图5 辅助时钟的配置参数


辅助时钟同样采用内部FRC振荡器,通过APLL的适当配置达到500M的时钟输出,作为PWM模块的输入时钟。此时我们注意FVCO/4为400M, 会用它作为ADC的输入时钟,将ADC内核时钟配置为66.5MHz,以满足小于70MHz的要求。

图6 Timer1的配置参数


将定时器Timer1配置为2mS的周期,我们每一次中断都会去将数据送到Data Visualizer界面。


图7 UART的配置参数


UART1的波特率设为230400,并且重定位PrintfUART以便在代码中使用Printf函数打印变量输出。


图8 pin脚基于Demo板设置


通过参考硬件Demo板的UART端口连接,在MCC中设置相应的端口,并使能UART的起始状态为高。此处AN0为我们监控的采样数据通道,对应板上的P2可调电阻电压输入。

图9 全局中断和ADCTimer中断的使能


由于我们需要在AN0中断中得到ADC AN0500kHz频率的周期采样值,因此使能AN0的中断,并设定高优先级,Timer1中断设置为低优先级,且使能中断。


由于篇幅和主题的关系,我们这里对PWM模块和ADC模块的配置不做详细介绍,后续会专门通过相应的篇幅去介绍。


图10 ADC中断信号和PWM之间的关系


10中,我们测量得到的在500kHzPWMCH1)开关频率下,每周期都触发ADC AN0进入AN0中断,进行RB12翻转(CH2),而CH4AN0的电压值1.66V,此时dsPIC33CK的供电为板上的LDO输出3.3V.


图11 Timer1中断的翻转信号


在图11中,我们测量得到Timer1中断的翻转信号RB11(CH3),每次中断都会翻转,所以其翻转周期和Timer1设定的周期2ms相同。


.Timer 1中断中进行串口终端数据的发送


12 Timer1中断中将数据发送到Data Visualizer终端


图13 串口参数设置窗口


烧录程序后,当接上Demo板串口数据线,拔掉编程接口线并将编程器PICkit4移除板子连接避免相互影响,由于板上自带USB转串口接口器件,因此会自动识别串口号为COM10,设定Baud Rate230400MCC配置保持一致,并检查其它默认配置和MCC串口配置一致,否则打印出来的可能是无意义的乱码。

图14 串口数据发送到终端


在上图14中,选择COM10右侧的下拉选项中,选择Send to Terminal,并且在右侧窗口中,选择正确的数据源COM10,设置为8bit ASCII码,则可以观察到如截图中的期望的数据结果。


三.在Timer1中断中发送数据流到Data Visualizer图形显示窗口


图15 Timer 1中断中进行数据流发送设置


16 数据流封装的帧格式解释


大多数数据通信界面使用字节流去做数据传输,当需要传输多个字节的数据时,需要对数据进行一定的封装,Data Visualizer得到原始数据后,进行封装为多个数据流,数据流的格式取决于用户的定义。

17 Data Visualizer目前支持的变量数据类型


目前此数据显示工具支持的数据类型如图17所示,这里我们用到的是16位的无符号ADC数据,表示单端无符号数据采样值。


18 数据流的格式说明


在具体执行数据发送时,最低位的字节先发送,高位的字节后发送,由一个起始字节和结尾字节组成一个封装结构,采用这个封装结构去帮助解释器同步数据流。起始字节可以是任意的字节,结尾字节是起始字节的反码字节。


烧录代码后,连接串口USB线,移除PICkit4和板子和电脑的连接,打开Data Visualizer界面。


19 将数据流发送到Data Visualizer并图形显示


如图19选择COM10 右侧的New Variable Streamer选项,打开数据流结构设置界面。

图20 数据流格式设置要求


图21 数据流设置界面


除了给数据流命名之外,由于起始字节为0x03,则需要设置帧格式为One’s Complement,并写入起始帧字节数据,界面自动得到结束帧字节为0xFC


图22 添加变量名称及类型


这里我们只传输一个16位无符号数据即可,并选择相应的数据显示轴格式。


图23 Data Visualizer中的数据显示


注意左侧选择正确的数据源,此处为COM10,下面数据终端中的原有数据可以清零,并且设置为断开数据源。此时上面窗口显示正确的数据图形显示,此处由于是数字电位器设定的ADC采样电压,因此有一些小的波动。


图24 数据纵纵坐标设置合适范围


当从曲线左侧的设置按钮中进入,可以设置相应的数据显示范围,如图24所示。


图25 调整数据范围后的数据显示


此时显示的数据为2.03k,很接近实际的电压1.65V对应的ADC采样值2048.


26 鼠标滚轮调整横坐标范围及精度


当采用鼠标滚轮调整横坐标时间单位时,可以看到右侧的窗口的数据同时跟随变化,实时显示。


相关Printf的典型转义字符及数据说明符顺便列到下面,必要时供参考,注意在使用时 #include<stdio.h>.



27 Printf函数转义字符


28 Printf典型数据说明符


总结,本文基于PWM触发ADC采样电压为例,通过串口UART将数据在Timer1定时器中断中发送到串口终端进行数据显示及图形化数据显示,方便在嵌入式系统中进行系统数据的监查。


参考文献:

MPLAB® Data Visualizer User's Guide


相关文章:

基于MCC配置dsPIC33C芯片的时钟及输出系统时钟FOSC波形

dsPIC33C新建工程及MCC插件说明


来源:电源漫谈
科普电源芯片通信
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-19
最近编辑:2年前
仿真秀32093466624
硕士 签名征集中
获赞 88粉丝 71文章 158课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈