关于stm32h7b0的ospi外设挂载psram做映射读写的实践

电子说

1.3w人已加入

描述

这几天一直在捣鼓stm32h7b0 ospi外挂psram做映射读写,
群友“ART-Pi代言人”的测试平台是stm32h730,他反复测试了psram映射,在映射写的时候会进入硬件错误,
这几天我们两人交流了一下发现是stm32h7系列的几款单片机的ospi外的的一个bug导致的
(es0478-stm32h7a3xig-stm32h7b0xb-and-stm32h7b3xi-device-errata-stmicroelectronics.pdf)
(see errata 2.7.8 “Memory-mapped write error response when DQS output is disabled”)
,原文的意思是即使器件没有DQS引脚,在间接和映射写时也要开启DQS,而在间接和映射读时也要关闭DQS。

后续他的平台可以运行了。

我的stm32h7b0必须配置mpu关闭涉及cache的功能,总结如下:

单片机

对于psram映射的地址空间,mpu中TEX、C、B、S配置组合对应表中的Other attributes一列必须是空的,

不然会导致大量写入psram的数值存在错误。

下一步打算把程序存储在spi flash中,由mcu内部flash中的boot将spi flash中的程序拷贝到psram中运行,

剩余多余的psram存储空间就可以作为堆栈使用(不能配置cache,速度上会比较慢,希望后续的stm32型号能解决)。

目前已经实现boot从spi flash拷贝程序到psram并跳转到psram运行的工作。在keil下调试也可以了(已实现spi flash的下载算法)。不过要注意boot和app的时钟配置要合理,或者干脆一样的配置,避免不必要的错误。keil下代码重新编译过后再调试,需要手动点下载烧录,而不是调试的自动更新固件。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_32254630 02-21
0 回复 举报
请问一下在哪里能找到驱动OSPI的程序呢?如果利用OSPI的内存映射模式驱动PSRAM的化,是不是就不用管PSRAM本身的驱动时序图了呢? 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分