基于keil仿真波形分析以及逻辑分析仪真实波形抓取

目录

 

一、keil5仿真

1.1 新建debug.ini文件

1.2 打开keil小魔法棒

1.3 进入调试界面

1.4 波形结果

二、逻辑分析仪真实抓取分析

2.1 插入逻辑分析仪

2.2 实物连线图

2.3 抓取串口数据

2.4 抓取LED0,PB0的数据

2.5 抓取LED1,PB1的数据

2.6 抓取I2C协议

2.7 抓取SPI协议

三、总结


一、keil5仿真

分析背景:基于stm32cubemx下移植的uC/Os操作系统,并实现三个task任务,两个LED任务加上串口输出任务。

具体工程可查看博客

基于stm32cubemx移植uC/OS-III操作系统_Laul Ken-Yi的博客-CSDN博客

1.1 新建debug.ini文件

新建文本文件

输入以下debug配置,否则keil仿真会报错

map 0x40000000, 0x40007FFF read write // APB1
map 0x40010000, 0x400157FF read write // APB2
map 0x40020000, 0x4007FFFF read write // AHB1
map 0x50000000, 0x50060BFF read write // AHB2
map 0x60000000, 0x60000FFF read write // AHB3
map 0xE0000000, 0xE00FFFFF read write // CORTEX-M4 internal peripherals

并且另存为工程目录下.ini文件,切记将保存类型改成所有文件

1.2 打开keil小魔法棒

处将刚刚创建的debug文件加入。

1.3 进入调试界面

设置要观察对应的引脚,在前面博客提到的使用串口1,PB0,PB1口。

  • 知识点:

GPIOB_IDR是GPIO的IDR寄存器功能为读对应的I/O口的状态:

如:GPIOA->IDR & 0x0001 即为 PA-1的电平状态,IDR寄存器的16位对应了该GPIO的P0-P15

1.4 波形结果

分析:先看串口输出,一个格子对应1s当经过两个格子即2s串口输出一次信号,对于PB0,在工程中设置的是1s亮1s熄灭,由仿真图可以看出刚好是1s为高电平,1s为低电平。对于PB1,通过数格子可以看到是3s一次高电平,3s一次低电平,与工程中设置3s一次对应。

串口详情:

 

二、逻辑分析仪真实抓取分析

2.1 插入逻辑分析仪

可以看到标题处变成了connected,start simulation也变成了start。

设置成下降沿输出

2.2 实物连线图

2.3 抓取串口数据

将对应管道夹道对应的管脚

可以看到串口真实输出波形与仿真波形一致,它的间隔也是接近于2s,虽然它是1.999s有1ms的差距。

2.4 抓取LED0,PB0的数据

 可以看出它的高电平低电平持续时间是1s钟,它的频率是0.5HZ,T=2s,占空比为50%,与仿真波形完全吻合。

2.5 抓取LED1,PB1的数据

可以看出它的高电平和低电平持续时间是3s钟,有一定的误差这里是3.001s,有1ms的偏差,占空比为50.02%,T=6S,频率为0.1667HZ。

2.6 抓取I2C协议

基于I2C的AHT20温度采集工程。具体过程参考博客:基于I2C的AHT20温度采集器以及基于SPI协议OLED显示_Laul Ken-Yi的博客-CSDN博客 

 这里设置要分析的I2C协议,这样可以设计想通过哪些通道观察对应的SDA和SCL通道。

逻辑分析仪与电路板接线图:

逻辑分析仪开发板
CH0PB8(SCL)
CH2PB9(SDA)
GNDGND
  • 结果:

由图中绿色小点代表信号开始采集,红色代表结束

当 SCL 线是高电平时 SDA 线从高电平向低电平切换,这个情况表示通讯的起始。当 SCL 是高电平时 SDA线由低电平向高电平切换,表示通讯的停止。

对于I2C协议前面有所提到,当SCL为高电平时,SDA才有作用, 每一个上升沿读取一个bit,则第一个波形对应的二进制信号为01110001,而最后一个是I2C协议的一个应答信号,当SDA为低电平时表示ACK希望继续接收信号,当SDA为高电平表示NAK表示不接收信号了。

但是相比之前博客,在真实抓取过程中出现了毛刺现象

这个毛刺是由于悬空时并且还插着杜邦线所造成的容性串扰(串饶是两条信号线之间的
耦合、信号线之间的互感和互容引起线上的噪声。)但在这里表示的是ACK信号。

2.7 抓取SPI协议

基于SPI的OLED显示工程。具体过程参考博客:基于I2C的AHT20温度采集器以及基于SPI协议OLED显示_Laul Ken-Yi的博客-CSDN博客 

逻辑分析仪与电路板接线图:

逻辑分析仪开发板
CH0PB15(MOSI)
CH2PB13(CLK)
CH3PB12(NSS)
GNDGND

Analyzers选择SPI协议

  • 结果:

当CH3即NSS为低电平时SPI协议开始工作,而当CH2即时钟信号在上升沿则MOSI和MISO同步开始发送和采集信号。占空比为67.09%,频率为101.3kHZ。

三、总结

通过对波形的仿真与通过逻辑分析仪抓取最真实的波形,更加深层次的理解了协议的工作原理,可以看出仿真波形与实际波形基本是一致的,心里还是挺高兴的,一次就成功了,加强了自己的动手能力,以及查阅资料的能力。

参考文献:零死角玩转 STM32F103—指南者.pdf

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值