0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用笔记 | SPI读取数据的最后一位出错问题

STM32单片机 来源:未知 2023-08-18 18:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群


关键字:STM32F42xx,SPI,OSPEEDR,APB



目录预览


1.问题描述

2.问题的排查

3.原因的进一步分析



01

问题描述


客户在项目开发中使用STM32F427GT6的SPI连接外部Flash时,发现在常温下能正常读写,但是在高温下一段时间后(大概5分钟左右)出现读写异常的情况。读写异常时发生在发送0x5指令后,返回数据通过软件读取的是0,而硬件抓取的是1。同时也发现同一份代码,同样硬件,如果flash换成别的厂家的,在同样温度条件下又没有出现读写异常。


02

问题的排查


根据客户的描述,初期怀疑是否是不同Flash厂家的兼容性问题,现场进一步测试,发现客户软件在70℃环境温度下,除了program、erase时寄存器会读错数据,用只读指令0x03也会读错数据(0x55、0xaa会被软件读成0x54、0xab)。


根据这个结果,我们怀疑到tCLQV这个参数。看上去当前的软件是在flash输出数据时,在CLK下降沿时去采集flash MO数据的,所以高温引起的细微的tCLQV变化可能会导致软件采集出错。我们建议MCU在下一个CLK的上升沿去采集数据,此时flash MO数据已经稳定为1。



现场调整GPIO(即flash CLK/SI/SO)OSPEEDR速率后异常现象消失,GPIO速率调整后CLK信号斜率变大,tCLQV跟随变小,软件抓到错误数据的现象消失,这个实验结果也与上述tCLQV这个怀疑点相匹配。下面是不同GPIO速率下的测试结果。


GPIO_SPEED_FREQ_LOW,常温:tCLQV=5.584ns。

GPIO_SPEED_FREQ_LOW,70℃:tCLQV=6.064ns,FAIL

GPIO_SPEED_FREQ_MEDIUM,70℃:tCLQV=4.805ns。

GPIO_SPEED_FREQ_HIGH,70℃:tCLQV=4.577ns。


03

原因的进一步分析


进一步了解客户系统的初始化,其中clock配置信息如下:采用外部晶振为25MHZ,plln=360,pllm=25,pllp=2,pllq=8,系统主频:25/25*360/2=180MHz,APB2:180/2=90MHz,SPI的波特率为2.8MHz。SPI的引脚设置均为GPIO_Initure.Speed为low。


查找到STM32F42xx的勘误手册,我们发现有同样问题的描述:



对于文档推荐的2种workaround也和我们测试时发现的一样。



至此也是能较好的和客户解释了MCU底层的一些原理,并建议客户按照相应workaround的配置,去设定APB总线与OSPEEDR的关系,最终让问题得以解决。


完整内容请点击“阅读原文”下载原文档。

长按扫码关注公众号


更多资讯,尽在STM32

点击“阅读原文”,可下载原文档


原文标题:应用笔记 | SPI读取数据的最后一位出错问题

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663548
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371159

原文标题:应用笔记 | SPI读取数据的最后一位出错问题

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    掌握NFC标签批量读取,轻松提升数据采集效率!

    NFC批量读取技术解决传统单点读取效率低、成本高、易出错等问题,实现高效、自动化数据采集。
    的头像 发表于 09-23 16:11 362次阅读
    掌握NFC标签批量<b class='flag-5'>读取</b>,轻松提升<b class='flag-5'>数据</b>采集效率!

    GPDV6624C应用笔记1.0版

    电子发烧友网站提供《GPDV6624C应用笔记1.0版.pdf》资料免费下载
    发表于 06-06 17:20 0次下载

    了解ISL28022的电流和功率计算应用笔记

    本应用笔记讨论数字电源监控器(DPM) ISL28022的内部计算程序。它解释了数据寄存器的格式,并举例说明了内部数学处理器从测得的分流和总线电压导出电流和功率值的程序步骤。本应用笔记
    的头像 发表于 02-21 11:30 979次阅读
    了解ISL28022的电流和功率计算应<b class='flag-5'>用笔记</b>

    使用ADS8331 SPI通讯的SCLK为1K左右能正常读取数据,为10K 以上读到的数据都是去的?如何解决?

    您好!我使用ADS8331 SPI通讯的SCLK为1K左右能正常读取数据,为10K 以上读到的数据都是去的?请问如何解决?
    发表于 02-07 08:12

    CDK应用笔记

    电子发烧友网站提供《CDK应用笔记.pdf》资料免费下载
    发表于 01-16 16:17 0次下载
    CDK应<b class='flag-5'>用笔记</b>

    ES32VF2264应用笔记

    电子发烧友网站提供《ES32VF2264应用笔记.pdf》资料免费下载
    发表于 01-16 16:14 0次下载
    ES32VF2264应<b class='flag-5'>用笔记</b>

    ES7P0214应用笔记

    电子发烧友网站提供《ES7P0214应用笔记.pdf》资料免费下载
    发表于 01-16 16:06 0次下载
    ES7P0214应<b class='flag-5'>用笔记</b>

    ES7P0213应用笔记

    电子发烧友网站提供《ES7P0213应用笔记.pdf》资料免费下载
    发表于 01-16 15:26 0次下载
    ES7P0213应<b class='flag-5'>用笔记</b>

    AT32F423 PWC应用笔记

    电子发烧友网站提供《AT32F423 PWC应用笔记.pdf》资料免费下载
    发表于 01-15 15:30 0次下载
    AT32F423 PWC应<b class='flag-5'>用笔记</b>

    ADS1194调试串口输出,在定时间的转换后数据会少一位输出,为什么?

    调试的是ADS1194,每个/DRDY 接收转换数据并通过串口发送到串口助手中,先调试的CH1~CH4 通道,使用的是内部的Test_signal,增加了一位调试,即每进次/DR
    发表于 01-07 07:30

    S32K3xxICU应用笔记

    S32K3xxICU应用笔记
    发表于 12-30 15:38 2次下载

    ADS1292R检测到DRDY有下降沿的时候,读取数据,读出的数据一位都代表什么啊?

    请教TI技术支持: 当检测到DRDY有下降沿的时候,读取数据,读出的数据一位都代表什么啊
    发表于 12-27 07:42

    使用STM32F407的硬件SPI接口去读取ADS8694的18ad数据怎样才能读取出来?

    使用STM32F407的硬件SPI接口去读取ADS8694的18ad数据怎样才能读取出来,因为STM32F407的硬件
    发表于 12-27 06:23

    ADS1299读取数据出错的原因?

    寄存器正确。用/DRDY下降沿触发中断,在中断程序内读取24+8*24Byte(1个状态+8个通道) 但是读出来的数据,只有第个24状态为0xC00000,后8个24
    发表于 12-25 06:48

    DS90UB954出错后就不能继续收图图,怎么解决?

    在使用过程中出现DS90UB954出错后就不能继续收图现象. 出错时候0x4D提示:[0x4D] : 0x30 或者是0x33 手册提示是: Bi-directional Control
    发表于 12-16 08:27