OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3052|回复: 5

FSMC管理2个外部PSRAM的问题

[复制链接]

7

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2019-8-22
在线时间
173 小时
发表于 2019-8-23 09:27:07 | 显示全部楼层 |阅读模式
3金钱
本帖最后由 CKJJJJ 于 2019-8-23 09:44 编辑

如题,最近项目需要,需要外扩两个1Mb的psram(两个的原因是另一个备用),现在还没打算将变量等一些放到外部SRAM。我是用STM32F407ZG的芯片。原来是这样的,没有PSRAM,然后用的是SRAMCCM和SRAMIN来申请空间给EMWIN和程序。现在CCM的60K快满,所以增加两个PSRAM,节省引脚所以这两个PSRAM共用地址数据线,片选Nex一个接PC13,一个接PD7。参考原子哥的FSMC外扩SRAM的例子程序,参考着来做,先初始化一个PSRAM,分配到bank1_sram3,将外部的一个PSRAM分配给EMWIN,然后正常运行,后面增加另一个PSRAM之后,分配到bank1_sram2,起始地址是0X64000000,用这个sram2分配给EMWIN,运行程序就发现WMWIN白屏,程序在调用GUI_X_Config后就进hardfault。调试发现,外部PSRAM申请不了空间,返回0xffffffff了。网上查了好多,都是一个接屏,一个接SRAM。查到一个接近的,说要分两次初始化sram,想问问是否连malloc内存池那边也要分开做,如果分开,那初始化SRAM和malloc上是怎么分开。小白一枚,金币只有这么多了。大家有相同经验的么?或者有想法的给个思路。请不吝指教,感谢!

最佳答案

查看完整内容[请看2#楼]

意思是你FMSC总线上挂了三个外设,bank1_sram3->PSRAM,bank1_sram2->PSRAM和EMWIN,然后使用发现bank1_sram2上的两个外设工作不了,是这样吧。我猜是不是因为共用一条总线使用时没有操作好,另外一个使用一个区域应该对这个区域进行初始化,你看FSMC的PSRAM控制寄存器,每种寄存器都有四个对应四个区域(如图所示)。我是觉得可以把EMWIN分配到bank1_sram1或bank1_sram4上,这样使用时只要保证同一时刻只访问一个外设就行了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2019-6-15
在线时间
36 小时
发表于 2019-8-23 09:27:08 | 显示全部楼层
意思是你FMSC总线上挂了三个外设,bank1_sram3->PSRAM,bank1_sram2->PSRAM和EMWIN,然后使用发现bank1_sram2上的两个外设工作不了,是这样吧。我猜是不是因为共用一条总线使用时没有操作好,另外一个使用一个区域应该对这个区域进行初始化,你看FSMC的PSRAM控制寄存器,每种寄存器都有四个对应四个区域(如图所示)。我是觉得可以把EMWIN分配到bank1_sram1或bank1_sram4上,这样使用时只要保证同一时刻只访问一个外设就行了
reg.png
回复

使用道具 举报

4

主题

231

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2018-12-7
在线时间
131 小时
发表于 2019-8-23 13:49:17 | 显示全部楼层
帮顶   
回复

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-11-1
在线时间
11 小时
发表于 2019-11-14 14:10:46 | 显示全部楼层
感觉比我有经验,我现在也迷茫,选择存储芯片头疼,要引脚少,又要能当运行内存使用,都不知道咋搞,顶一个
回复

使用道具 举报

7

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2019-8-22
在线时间
173 小时
 楼主| 发表于 2019-11-14 16:17:18 | 显示全部楼层
千幻 发表于 2019-11-14 14:10
感觉比我有经验,我现在也迷茫,选择存储芯片头疼,要引脚少,又要能当运行内存使用,都不知道咋搞,顶一个

你叫硬件给你找不就行了么?然后看芯片手册呗
回复

使用道具 举报

7

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2019-8-22
在线时间
173 小时
 楼主| 发表于 2019-11-23 11:12:04 | 显示全部楼层
mvvm 发表于 2019-11-15 14:46
意思是你FMSC总线上挂了三个外设,bank1_sram3->PSRAM,bank1_sram2->PSRAM和EMWIN,然后使用发现bank1_sram ...

可能我描述问题不够清晰,但也谢谢回答。其实现在来看,两个PSRAM外设,一个备用,硬件切换两个片选线,就可以了。而emwin内存分配则有CCIN来给定。至于后面分析为什么外部PSRAM不能分配空间,其实是因为把PSRAM当flash来用了,需要当成ram才能申请空间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 10:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表