请选择 进入手机版 | 继续访问电脑版
搜索
查看: 648|回复: 6

[分享] 使用MDK 自带逻辑分析仪显示任意波形

[复制链接]

该用户从未签到

13

主题

39

帖子

0

蝴蝶豆

中级会员

最后登录
2018-7-9
发表于 2019-10-31 13:04:45 | 显示全部楼层 |阅读模式
发现有人对使用MDK自带逻辑分析仪实现波形输出比较感兴趣。下面使用STM32F334的DAC模块,输出一任意波形,并通过ARM MDK IDE自带的逻辑分析仪将波形显示出来。我尽量就整个过程描述得详细点。

11.png

我这里使用TIM6的更新事件触发DMA,让DMA将我事先准备好的内存数据传输到DAC通道1数据保持寄存器【DAC1->DHR12R1】。然后,我在TIM6的中断里将DAC数据输出寄存器【DOR】的内容读到一个全局变量【DAC_Out】,将来作为逻辑分析仪里的一个模拟量并输出该信号。

同时,我将DAC的输出端接到ADC1模块的通道1作为其输入,将DAC过来的信号进行AD转换,并通过DMA将ADC结果存放到另一个内存空间。我利用TIM3更新事件周期性触发ADC,并在TIM3更新中断里将最新ADC数据赋给另一个全局变量【ADC_Res】,作为MDK_IDE逻辑分析仪的另外一路模拟量,也将输出其波形。

一、下面开始使用STM32CubeMx做图形化配置

1、DAC的配置如下。配置很简单,只是开启了DAC通道1的输出使能,至于输出缓冲可根据具体情况来配置,这里将其使能了。

22.png

2、配置TIM6。主要是使用它的更新事件触发DMA,将数据从内存传输到DAC的寄存器。

33.jpg

3、ADC的配置。这里仅开启一个通道,TIM3更新事件作为ADC启动触发事件。ADC转换完成事件触发DMA传输,将ADC结果取走。

44.jpg

4、TIM3的配置。它的配置也很简单,给定适当时基参数,使能更新中断。

55.png

外设配置主要就上面这些,其它有关DMA、RCC的配置就不再贴图了。

二、配置完成后,生成初始化文件,然后添加用户代码

1、数据准备。因为要借助DAC输出一任意波形,可以先借助其它工具模拟一下输出波形。最便捷的就是使用EXCEL的数学函数功能模拟相关波形。这里使用几个三角函数叠加而成一个新的函数。基于该函数生成一个数据序列用于DAC输出。

66.png

2、添加用户代码。
要添加的用户代码就是下面几行,意思都很明确了,无须过多解释。其中length是宏定义过的一个常量,代表数据个数。下面代码基于STM32Cube库。

77.png

3、中断函数处理。
在TIM6的更新中断里加入如下代码,实时获取DAC输出数据。
DAC_Out=DAC1->DOR1;
在TIM3的更新中断里加入如下代码,实时读取ADC结果。
ADC_Res=(uint16_t)Adc_Value[Length-DMA1_Channel1->CNDTR];

三、针对MDK逻辑分析仪的配置

88.jpg

这里提醒下,那个Core_clock一定要跟你芯片配置的系统时钟一致。另外Trace Enable一定要勾选上。联机进入调试状态后,继续进行对逻辑分析仪的配置。下图中的红色数字1/2/3表示操作顺序。

99.png

点击箭头处添加我们之前准备好的全局变量并做适当配置。这里添加的两个变量都是模拟量,所以显示类型选Analog,显示颜色根据个人喜好。注意模拟量有最值的设定问题,太大、太小都不合适,这个不难理解。屏蔽处的配置根据要显示的数据范围来指定,本实验数据不会超过0xfff,所以就按图中配置了。

四、查看结果

下面的第一幅截图就是通过MDK自带的逻辑分析仪输出的两路波形。红色曲线是DAC输出的波形图,蓝色曲线是ADC转换后得到的实时结果波形图。

不难看出,两路波形是一致的周期性输出,但ADC的输出与DAC的输出存在相差,因为ADC的结果是对DAC输出进行采样转换后所得的结果,所以时序上存在滞后。第二幅图是调整时间观测宽度后的截图。

10.jpg


111.jpg

好,关于用MDK自带逻辑分析仪进行任意波形的输出就介绍到这里,顺便也简单介绍了STM32 ADC/DAC的一些配置与应用。
关于MDK自带的这个工具,如果会用了,有时还是会给我们的调试带来些方便。使用起来不难,有兴趣的话不妨试试。






回复

使用道具 举报

该用户从未签到

0

主题

252

帖子

0

蝴蝶豆

金牌会员

最后登录
2019-12-6
发表于 2019-10-31 15:54:34 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    48

    主题

    3245

    帖子

    338

    蝴蝶豆

    论坛元老

    最后登录
    2019-12-6
    发表于 2019-10-31 17:40:58 | 显示全部楼层
    不赖
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    110

    帖子

    0

    蝴蝶豆

    高级会员

    最后登录
    2019-12-6
    发表于 2019-10-31 19:58:10 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    50

    主题

    3106

    帖子

    47

    蝴蝶豆

    论坛元老

    最后登录
    2019-12-5
    发表于 2019-10-31 20:10:21 | 显示全部楼层
    好久好久没用过这个了,现在看着一点不记得了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    58

    帖子

    0

    蝴蝶豆

    中级会员

    最后登录
    2019-12-6
    发表于 2019-10-31 20:41:47 | 显示全部楼层
    不错
    回复

    使用道具 举报

    该用户从未签到

    31

    主题

    295

    帖子

    40

    蝴蝶豆

    金牌会员

    最后登录
    2019-12-3
    发表于 2019-11-1 00:06:52 | 显示全部楼层
    非常好
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2019-12-6 11:54 , Processed in 0.107427 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表