没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
4页
客户在项目开发中使用 STM32F427ZGT6 的 SPI 连接外部 Flash 时,发现在常温下能正常读写,但是在高温下一段时间后(大概 5 分钟左右)出现读写异常的情况。读写异常时发生在发送 0x5 指令后,返回数据通过软件读取的是 0,而硬件抓取的是 1 。同时也发现同一份代码,同样硬件,如果 flash 换成别的厂家的,在同样温度条件下又没有出现读写异常。
资源推荐
资源详情
资源评论
LAT1269
Local Application Tips
LAT1269 – Rev 1.0 – Feb. 2023
SPI 读取数据的最后一位出错问题
关键字:STM32F42xx, SPI, OSPEEDR,APB
1.问题描述
客户在项目开发中使用 STM32F427ZGT6 的 SPI 连接外部 Flash 时,发现在常温下能正常读写,但是
在高温下一段时间后(大概 5 分钟左右)出现读写异常的情况。读写异常时发生在发送 0x5 指令后,返回数
据通过软件读取的是 0,而硬件抓取的是 1 。同时也发现同一份代码,同样硬件,如果 flash 换成别的厂家
的,在同样温度条件下又没有出现读写异常。
2.问题的排查
根据客户的描述,初期怀疑是否是不同 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
3.原因的进一步分析
进一步了解客户系统的初始化,其中 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 的勘误手册,我们发现有同样问题的描述:
资源评论
冻结的鱼
- 粉丝: 1200
- 资源: 156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功