LA5016逻辑分析仪抓取STM32串口信号

前言

逻辑分析仪用于有时序要求的通信中,抓取通信过程中的信号,分析信号是否符合通信协议和信号的完整性。

正文

一、实验前准备
1.安装好逻辑分析仪上位机软件KingstVIS
在这里插入图片描述

2.准备好一块单片机开发板(我用的是STM32F4)
3.准备好一个逻辑分析仪(我用的是LA5016)
二、硬件连接
1.将逻辑分析仪和电脑端口连接
2.将逻辑分析仪和STM32共地
3.将逻辑分析仪的采集通道和单片机发送信号的通道相连(我连接的是USART1_TX)。
在这里插入图片描述
三、软件设置
有四要素,
1.阈值电压:区分高低电平的间隔。例如标准3.3v单片机的高低电平阈值为1.65,高于1.65为高电平,低于1.65为低电平。(这里设置为CMOS 3.3V,即阈值电压为Vth=1.65V)
2.采样率:每秒钟采集信号的次数。这个和采样精度相关,采样率越高精度越高,一般采样率要5倍于待采样的信号频率,才能完好的还原出信号,当然最好是能10倍于待采样信号频率。在不知道待采样信号频率的时候,可设置为最高采样频率(我这里设置为500Mhz)
3.存储深度:一次采集能够存储的采样点数。深度越大,一次采集的数据量越大。数据采集时间=存储深度/采样率。(我这里采样深度为500MSa,所以采样时间为1s)
4.触发条件:高低电平或者边缘触发。(串口通讯拉低为起始信号,所以设置为下降沿触发)
在这里插入图片描述

四、开始采样
1.KingstVIS开启单次采样,等待串口触发
在这里插入图片描述
2.STM32串口发送

	USART_SendString(USART1, "AT+01");  
	delay_ms(20);
	USART_SendString(USART1, "CSDN");  

3、采样结果
在这里插入图片描述
五、结果检验
1.首先检验两次接收信号时间间隔是否为20ms
在这里插入图片描述
通过时间标尺我们可以看到两次时间间隔为20.01203ms,符合我们程序设定的延时20ms。
2.检查传输的两次信号是否失真
首先要先搞清楚”AT+01“和“CSDN”对应的16进制ASCII码(其实直接对ASCII码也行)
在这里插入图片描述
在这里插入图片描述
然后打开KingstVIS的解析器,选择UART/RS232/485。
在这里插入图片描述
解析结果如下
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
可以看到,抓取的结果和stm32发送的信息是一致的。

六、扩展
在这里插入图片描述
我们把采集到的信号放大并变为二进制,从波形可以得出以下结论:
1.串口传输数据时先传送字符的低位,后传送字符的高位。
2.串口通讯中是一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。停止位和空闲位都规定为高电平。

最后,附上逻辑分析仪上位机软件KingstVIS和STM32测试程序,有需要的小伙伴自行下载。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44850779

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值