数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 9887|回复: 26

[STM] 实验证明,STM32F103的SPI响应时间是能在指令级别时间粒度感知到的

[复制链接]
发表于 2021-9-17 14:15:01 | 显示全部楼层 |阅读模式
题目可能有点绕,说白了就是内核运行过快,进行了数据发送后立即访问SPI状态寄存器会因为SPI响应不过来导致状态读取失败。所以提交数据给SPI发送后,最好延迟几个指令周期再去访问SPI当前状态,然后可以知道SPI是否发送完了数据,是否出错啥的。:sweat:

我现在搞个DAC7311的工程,需要通过SPI接口写入数据从而改变DAC的输出。我的程序逻辑就是先开启SPI,然后写入要发送的数据到发送寄存器中,等待SPI状态寄存器的Busy位置0代表发送完成;然后再写一个数据,再次进行Busy位检查,最后关闭SPI接口,完成一次写DAC的操作。结果DAC输出不正常,用示波器一看好家伙,SPI的时钟只输出了8-9个脉冲就结束了,而且有时候8个,有时候9个。当时就怀疑是不是程序判断逻辑出错没有正确等待Busy置0完成当前数据发送就进行下一步操作了,检查了几遍,没发现问题。

后来又进行在线调试,直接在检测Busy的部分加断点,然后运行到该处分析状态。好家伙,直接得到了下图结果:


结果显示,如果全速运行到读取SPI_SR那一步,会发现读出来的数据全0,当时你可以通过Keil的外设窗口看到SPI_SR的寄存器是有TXE和RXNE置位的,证明这次读取出错了。然后如果在写入发送数据那一步增加一个断点,先运行到发送数据那一步,停止,然后再全速运行到读取SPI_SR那一步,可以看到,读出的值变成0x02了,正好SPI_SR中的TXE置位了,证明读取没有出错。

基于上面的实验,接着给写入数据到读取状态这一系列操作增加空指令延时,结果显示当NOP的数量为3时,全速运行到读取SPI_SR那一步数据仍然全0出错,当NOP数量大于4时,就可以得到非0的正确的结果,如下图所示:


于是,最终加了4个NOP,故障排除,DAC输出正常波形,示波器检查了SPI接口时序检测没有再出现任何问题。:victory:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 2家元 +80 收起 理由
jf201006 + 20 謝謝分享 没遇到过
家睦 + 60

查看全部打赏

 楼主| 发表于 2021-9-17 14:19:33 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2021-9-17 14:41:34 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-17 15:40:27 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +20 收起 理由
家睦 + 20 歡迎探討

查看全部打赏

回复 支持 2 反对 0

使用道具 举报

发表于 2021-9-17 16:37:47 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-17 18:23:55 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-17 21:10:43 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 00:46:45 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 00:52:58 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 00:55:41 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-18 07:50:53 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 08:41:03 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-18 09:02:19 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-18 09:52:51 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 1 反对 0

使用道具 举报

发表于 2021-9-18 10:00:39 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-18 10:07:34 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-9-18 10:08:10 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 10:15:43 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 10:17:22 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-18 10:24:12 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-3 02:17 , Processed in 0.171601 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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