SPI接口的Flash是不是有最低时钟速度限制
有个项目上的MCU的主频比较低,Flash芯片的SPI时钟只有1MHz,无论读写都不行。但是只要将始终频率提高到4MHz,一切就正常了。用的是MCU的硬件SPI接口,用逻辑分析仪反复比对过接口信号,确认时序都是对的。
所以才怀疑到是不是有最低时钟频率的限制,怀疑的原因有两点:1、一般应用SPI接口的时钟频率都是几十MHz,厂家可能做了SPI接口的超时处理。2、Flash芯片的复位最低脉冲时间是1us,刚好是1MHz,可能和他内部的接口超时处理相关。 本帖最后由 wye11083 于 2024-3-30 14:37 编辑
什么牌子的?我们有个板子只能500khz写入。。目前据我所知,所有spi nor flash都是dc-133mhz左右。除非你用的是spi nand flash,可能存在超时机制。
手动验证spi时序时,是每个bit需要几秒的(手工单步改pin状态),所有spi nor都可以正确工作。 wye11083 发表于 2024-3-30 14:35
什么牌子的?我们有个板子只能500khz写入。。目前据我所知,所有spi nor flash都是dc-133mhz左右。除非你用 ...
(引用自2楼)
W25Q32JVSSIQ
WINBOND(华邦) hushaoxin 发表于 2024-3-30 14:44
W25Q32JVSSIQ
WINBOND(华邦)
(引用自3楼)
51单片机io模拟去读写都是正常的啊 hushaoxin 发表于 2024-3-30 14:44
W25Q32JVSSIQ
WINBOND(华邦)
(引用自3楼)
检查cs吧。cs,sck,mosi。估计软件做了超时或者哪里等待出错了。正常情况不会出错。 1a2b3c 发表于 2024-3-30 14:47
51单片机io模拟去读写都是正常的啊
(引用自4楼)
现在的51单片机,如果IO无等待的去操作,其实很快了,不止1MHz wye11083 发表于 2024-3-30 14:47
检查cs吧。cs,sck,mosi。估计软件做了超时或者哪里等待出错了。正常情况不会出错。 ...
(引用自5楼)
用逻辑分析仪都对比这看了的,时序是对的。
你说你们板子500kHz写入是最低值吗?再低就会出错? hushaoxin 发表于 2024-3-30 16:15
现在的51单片机,如果IO无等待的去操作,其实很快了,不止1MHz
(引用自6楼)
模拟的SPI被中断打断个几十微秒是很正常的事 应该是没有这个限制 本帖最后由 wye11083 于 2024-3-30 19:21 编辑
hushaoxin 发表于 2024-3-30 16:16
用逻辑分析仪都对比这看了的,时序是对的。
你说你们板子500kHz写入是最低值吗?再低就会出错? ...
(引用自7楼)
我们手工操作0.1hz都用过。。。
你看看手册,频率只写了上限。
如果读写都没反应,需要先写命令0x01,0x00,0x00解锁,注意任何写操作之前都必须先发Write Enable。因此可以推测你要么没有解锁,要么没有发write enable。空片子默认全0xff。你可以读rdid和rsds确认工作状态。
不排除个别指令有频率下限。 wye11083 发表于 2024-3-30 19:17
我们手工操作0.1hz都用过。。。
你看看手册,频率只写了上限。
(引用自10楼)
好的,谢谢!看样子还要抽空仔细分析一下时序问题 可能是片选失效的时候SPI还在传输过程中,这样可以解释速度快了可以慢了不行 SPI也看上升沿和下降沿的 估计是模式1和模式3搞反了 spi的flash我不清楚时钟到底什么情况。
我不会软件,曾经弄过几款spi的传感器,通过按键手动模拟时钟,led来显示返回的高低电平,也读到了正确数值。 wshtyr 发表于 2024-3-30 23:00
可能是片选失效的时候SPI还在传输过程中,这样可以解释速度快了可以慢了不行 ...
(引用自12楼)
这个不存在,用逻辑分析仪对比了看了,这种问题很容易看到 zx_85 发表于 2024-3-31 08:24
spi的flash我不清楚时钟到底什么情况。
我不会软件,曾经弄过几款spi的传感器,通过按键手动模拟时钟,led ...
(引用自15楼)
SPI接口的外设倒是经常用,也有比这慢得多的都没有啥问题,不过这个SPI的Flash确实有点不一样,目前我把频率提高了使用,没有啥问题,等哪天空了再接上逻辑分析仪看看
页:
[1]