我有一块带有
STM32H7A3ZIT6Q 的定制板。它具有连接到 OCTOSPI1 引脚的 MT25TL256 NOR 闪存。
我正在尝试编写闪存加载程序/驱动程序。
在我们的应用程序中,我们不需要从该闪存执行代码。我们只需要它来获取数据。但是,如果有一种方法可以使执行工作,那也很好。
到目前为止,这是我想通的:
MCU 时钟频率为 270MHZ。
预分频器设置为 4(寄存器中的值为 3),因此 MT25TL256 在 DTR 模式下的时钟频率为 90MHz。
片选高电平时间 (CSHT) 很难找到,但由于所有类似的时序都 <= 5ns 这等于 1 个时钟周期,因此设置为 1
我们的 MCU 是带有 SMPS 的 Q 变体,因此并非 OCTOSPI2 的所有引脚都可用。
这是我正在努力解决的问题:
在 AN5050 Rev 7 的表 4 中,它表示闪存必须连接到 OCTOSPI2,但我们的连接到 OCTOSPI1。
在 DS13195 Rev 8 的表 1 中,它表示 nor flash 仅在多路复用模式下不受直接支持。
在 AN5050 Rev 7 的图 10 中,多路复用模式可视化。在此图中,存储器 2 连接到 OCTOSPI1,其 CSn 引脚 (S#) 连接到 OCTOSPI2。
在 RM0455 Rev 9 的表 6 中,NOR 闪存似乎可以映射到 OCTOSPI1(我假设第一个地址用于 OCTOSPI1),但“从不执行”设置为是,因此无法执行。
由于我们的内存有 CSn 连接到 OCTOSPI1 而不是两个,我想知道我们是否可以让它工作,有或没有执行支持,而无需更改硬件。
所以我的问题是:
1)我们可以在不改变硬件的情况下让这个芯片工作吗?如果,那又怎样?
2) 我应该为 FifoThreshold 使用什么值?