你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32模拟成EEPROM?有可能吗?

[复制链接]
mxzwish 提问时间:2017-4-23 19:38 /
我准备用stm32来实现,将内部的sram通过SPI Slave接口对外模拟成一种95512型号的SPI EEPROM(5MHz SPI时钟)
简而言之就是STM32变身称为一块8PIN的95512 SPI EEPROM

95512读数据的时序是这样的
readeep.png
我的疑惑是这样的,主机将CS拉低表示准备传输指令,在传输完 指令字节和地址字节之后,从机(EEPROM)会立即根据时钟返回数据比特。
立即返回数据,由于这种时效性特别讲究,用STM32这种单片机能否实现?
是不是必须要用CPLD或者FPGA才能达到这种时效性?


收藏 1 评论13 发布时间:2017-4-23 19:38

举报

13个回答
mark0668 回答时间:2017-4-23 22:02:05
5M速度,还是用的SRAM 应该没有问题的
asmhai 回答时间:2017-4-23 22:15:04
这个创意好!
asmhai 回答时间:2017-4-23 22:15:41
签到签到,支持。
衔胆栖冰 回答时间:2017-4-23 22:37:49
你这种所谓的实效,跟RAM或者rom扯不上多大关系,只是一个SPI的处理问题而已。RAM掉电数据消失,还得把数据写到flash中去。不嫌麻烦可以做,但意义不大。
mxzwish 回答时间:2017-4-23 22:45:40
mark0668 发表于 2017-4-23 22:02
5M速度,还是用的SRAM 应该没有问题的

5M的时钟,意思就是在接收完读指令之后,必须在 1/5000000 秒内,完成数据的读取操作,然后立即在CLK的下一个周期开始数据传送。
我觉得这个好像是不可能完成的任务
不知道是否有人实现过
mxzwish 回答时间:2017-4-23 22:46:33
衔胆栖冰 发表于 2017-4-23 22:37
你这种所谓的实效,跟RAM或者rom扯不上多大关系,只是一个SPI的处理问题而已。RAM掉电数据消失,还得把数据 ...

对啊,我说的就是SPI的处理问题,SPI Slave是否有能力在收到指令的 1/5000000秒内立即开始数据传送呢?
衔胆栖冰 回答时间:2017-4-23 23:06:20
mxzwish 发表于 2017-4-23 22:46
对啊,我说的就是SPI的处理问题,SPI Slave是否有能力在收到指令的 1/5000000秒内立即开始数据传送呢? ...

不是spi的问题,看你CPU的速度,CPU速度比外设快得的多,接收完后往SPI的发送寄存器中填入下一次要发送的数据,时钟来了自动发送出去。才5M,CPU干活不多应该能忙得过来,就怕你应用程序太啰嗦复杂。
mxzwish 回答时间:2017-4-24 12:02:07
衔胆栖冰 发表于 2017-4-23 23:06
不是spi的问题,看你CPU的速度,CPU速度比外设快得的多,接收完后往SPI的发送寄存器中填入下一次要发送的 ...

假设SPI时钟频率5M,CPU时钟72M

SPI的每个时钟间隔是 1/5M = 0.2us
那么0.2微妙这个窗口,CPU能跑多少个周期?其实很简单,72/5就算出来,是14.4个时钟周期

那么请问。14.4个cpu时钟周期够干啥?
你知道一个ARM指令占用多少个周期吗?
你想的太简单了too young too simple
mxzwish 回答时间:2017-4-24 12:09:04
这个问题不用讨论了。我已从别处某位高人那里得到了答案。
EEPROM在数据传输时5M的时钟不是连续的,在收到读指令后,CLK会有一段空白时间,这段时间取决于主机何时去读,最好的情况下是主机发了指令后,隔了足够久的时间,让Slave去准备数据,这个时间有多久,要具体情况具体分析,最好是上逻辑分析仪。
我分析了一下我的场景,这个时间是1微秒,但是1微秒的时间也只够CPU跑72个时钟周期
我要实现的功能就是通过STM32去劫持EEPROM的写入操作,当发现写入某个地址时,把写入动作丢掉。
对于这种实现,1微秒这个时间还是太少了,不足以让CPU去准备数据。

所以我决定放弃此方案,改用CPLD

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

mark0668 回答时间:2017-4-24 12:53:48
你都直接在RAM 取数据,这速度足足有余了
落月枫情 回答时间:2017-4-24 13:18:15
mark一下
zbber 回答时间:2017-4-24 17:20:00
你这种所谓的实效,跟RAM或者rom扯不上多大关系,只是一个SPI的处理问题而已
衔胆栖冰 回答时间:2017-5-2 20:46:55
mxzwish 发表于 2017-4-24 12:02
假设SPI时钟频率5M,CPU时钟72M

SPI的每个时钟间隔是 1/5M = 0.2us

你可以选择把你的这个回复撤回,或者我Mark一下你的ID

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版