atbf中imu数据读取逻辑分析仪抓取

一、说明

使用逻辑分析仪抓区imu的spi和中断io的信号,从而侧面描述atbf在imu上的数据读取方式;

二、硬件说明

1、硬件材料

1、mcu

at32F437开发板

2、imu

icm42688p

3、逻辑分析仪

梦源逻辑分析仪

4、调试器

jlink

2、原理图

atbf中imu数据读取逻辑分析仪抓取_第1张图片

3、实物图

4、固件版本说明

V4.3.2

二、运行betaflight-configurator

1、电机界面截图

可以看到,imu可以正常读取数据,且陀螺仪的循环时间为125us;
atbf中imu数据读取逻辑分析仪抓取_第2张图片

2、status截图

atbf中imu数据读取逻辑分析仪抓取_第3张图片

三、逻辑分析仪截图

1、逻辑分析仪配置

分别设置逻辑分析仪的采样率和spi解码选项;
atbf中imu数据读取逻辑分析仪抓取_第4张图片

2、逻辑分析仪捕获数据截图

(1)中断io时间间隔

可以看到此处的上升沿的时间间隔是8k左右
atbf中imu数据读取逻辑分析仪抓取_第5张图片

(2)spi时钟频率

atbf中imu数据读取逻辑分析仪抓取_第6张图片

(3)8k与1K

atbf中imu数据读取逻辑分析仪抓取_第7张图片
上图为逻辑分析仪抓取到mosi的数据;
其中A5表示,此时mcu要读取到的是寄存器0x25的数据,也就是陀螺仪的数据,随后的6个ff,也就是读取陀螺仪6个字节的数据;
而9F表示,此时mcu要读取到的是寄存器0x1F的数据,也就是加速度的数据;
但是,每次需要间隔63个字节,才会读取一次加速度数据,
也就说,每次连续读取8次陀螺仪数据,才会去读取1次加速度数据;
正好也符合陀螺仪数据是8K,而加速度数据是1K的配置;
atbf中imu数据读取逻辑分析仪抓取_第8张图片

(4)先读加速度后读陀螺仪

atbf中imu数据读取逻辑分析仪抓取_第9张图片
大概每次7中断之后,第8次中断会先读取加速度数据,0x9F,
然后再读取一次陀螺仪数据,0xA5;
所以第8次中断间隔的125us中,会有两次spi通信;

(5)spi读取距离中断上升沿不等的现象

在上一篇的imu数据读取的文章中说到,当imu触发mcu的外部中断时,mcu才发起一次dma数据读取;但是从图中可以发现,从下图可以看到,实际的每次的spi数据读取距离中断上升沿的时间都是不同的;
atbf中imu数据读取逻辑分析仪抓取_第10张图片
atbf中imu数据读取逻辑分析仪抓取_第11张图片
atbf中imu数据读取逻辑分析仪抓取_第12张图片
atbf中imu数据读取逻辑分析仪抓取_第13张图片

你可能感兴趣的:(单片机,fpga开发,嵌入式硬件)