SF32LB523/525 挂载2个FLASH 存储芯片如何不冲突的读写
1.方案一,采用不同的SPI控制器,但是芯片引脚有限会导致引脚浪费;
2.方案二,采用同一个SPI控制器,使用不同的CS引脚选择,
在2个芯片都存储资源时 在应用程序上可以很好的分时控制CS达到分时读写的目的,
不会造成冲突,但是SF32LB523/525 芯片没有内置FLASH 存储固件,意味着固件也
存储在这2个FLASH中的一个上面,固件所在的FLASH芯片一般由XIP总线控制时序,
如果应用程序上也在相同时间内读写FLASH 特别是使用DMA传输时,有可能导致冲突
SF32LB523/525 是如何解决这一冲突,对外挂2颗FLASH的方式有什么更好的设计建议
来规避冲突,特别看到网络上使用SF32LB52X的芯片拆解的某米 某耀 方案后 他们都是外挂2颗 FLASH芯片 对如何实现冲突管理很好奇,考虑到后续电路设计也可能使用2颗FLASH芯片的情况
想咨询解决方案;
52外挂Flash应使用MPI2,而不是通用SPI。挂两个Flash的时候是通过不同CS选择,硬件上只需保证主Flash接到MPI2的CS,副Flash的CS接到另一个IO。XIP与DMA同时访问同一块Flash时,芯片硬件会自动仲裁。如果要访问副Flash,需由软件保证主Flash不会被访问。
您好 我这里主要疑惑的是 主FLASH 和副FLASH 有概率存在同时访问的情况 就是2个CS引脚有概率都拉低的情况 这里的冲突SF32LB52X是怎么规避处理的呢. 特别是CPU的XIP总线操作主FLASH的情况 应用程序可能是未知的 所以要怎么规避冲突 (当然我不确定SF32是否存在这个问题 以及如何处理冲突且不一下CPU程序运行)
cs片选是通过软件分别控制两个pin脚来实现的,从软件上规避了两个cs同时拉低的情况(这部分控制代码是加到了片内sram里的)。一个flash正在读写的情况下,另一片的cs脚是软件配置了拉高的。固件(code)是指定放在A区(主flash),支持xip。B区是不支持xip的,不会存固件。只会放资源。
SiFli 52x支持双Flash方案.pdf (636.6 KB)
1 个赞