[AT32F403/403A] AT32F403A驱动复用PSRAM

[复制链接]
4902|12
 楼主| lrrtl 发表于 2021-1-24 19:47 | 显示全部楼层 |阅读模式
AT32F403A驱动复用PSRAM
实验目的:
最近使用AT32F403A做项目,需要外扩PSRAM用来存储程序运行中间数据,所以记录一下心路历程。开干!

实验步骤:
1.      硬件选型
主控芯片:看题目就知道啦,就是雅特力科技的AT32F403A系列。注意的要使用AT32F403A系列的XMC驱动PSRAM必须选用100脚封装的芯片,小封装的芯片脚位不够哦。

PSRAM选择:选择的是Winbond的W957D6HB系列,此系列address线的低16bit和Data线是复用的,具体出pin可看下图:
11.png
2.      驱动代码准备
PSRAM这边没有初始化的步骤,在使用上电默认的异步模式时,只需将脚位正确与MCU的脚位接在一起即可。驱动程序也主要是MCU这边的配置了。
1)  配置MCU XMC外设
XMC是AT32F403A芯片的一个外设,主要用于驱动外部存储器;其实这个外设就是大家所熟知的某MCU厂商的FSMC啦,哈哈!

这里需要注意的几点是:1.PSRAM的总线宽度是16bit,所以XMC的数据总线宽度要配置为16bit;2.由于此颗PSRAM是复用的,所以XMC要配置为复用模式;3.其他细节就可以看附件的驱动程序了。
2)  XMC脚位一览

XMC所使用到的pin脚可以看如下表格:
22.png
需要将表格中的PIN脚配置成AF_PP模式,那么在开启XMC的时钟后,这些PIN就被XMC驱动了。
3)  时序配置

现在就是时序配置了,具体时序需要对照PSRAM的Datasheet中的时序参数,这里就不啰嗦了,我用的这颗PSRAM的时序配置就在代码中了。

实验结果:
为了验证正确性,使用雅特力科技的BSP中相关例程稍作修改;先写数据到PSRAM某个地址,然后读出来对比。写入和读出的数据相符,实验成功!!!这里实验ok了就可以移植进项目中了。如果有兴趣的同学,可以将附件中的代码解压到雅特力官方BSP的下面路径即可编译下载哦: AT32F4xx_StdPeriph_Lib_V1.x.x\Project\AT_START_F403A\Examples\XMC


PSRAM.zip

21.01 KB, 下载次数: 80

呐咯密密 发表于 2024-6-12 10:18 | 显示全部楼层
例程完整,外扩PSRAM很方便
清芯芯清 发表于 2024-8-3 12:30 | 显示全部楼层
外扩真的很有用啊,可以实现一些GUI了
twinkhahale 发表于 2024-8-3 13:36 | 显示全部楼层
我觉得这个复用PSRAM非常好啊
hight1light 发表于 2024-8-3 14:42 | 显示全部楼层
这是不是就是ST的fmsc这种逻辑?
suiziq 发表于 2024-8-3 15:46 | 显示全部楼层
可以玩玩,这种拓展存储可以当个设备存储操作使用
ewyu 发表于 2024-8-3 17:03 | 显示全部楼层
不错,例程写的很清晰明了
yuliangren 发表于 2024-8-3 18:10 | 显示全部楼层
内置的SRAM容量有限,而PSRAM可以提供更大的存储空间,这对于需要处理大量数据的应用(如图像处理、音频处理、数据记录等)非常有用
gongqijuns 发表于 2024-8-3 19:30 | 显示全部楼层
PSRAM的读写速度通常比内置SRAM慢,但在某些情况下,通过合理配置和优化,可以实现接近内置SRAM的性能,从而提高数据处理速度
canfeil 发表于 2024-8-4 09:16 | 显示全部楼层
使用外部PSRAM可以减少对内置SRAM的需求,从而降低芯片的成本。对于成本敏感的应用,这是一个重要的考虑因素
nqty 发表于 2024-8-4 11:22 | 显示全部楼层
外部PSRAM的容量可以根据需要选择,这为系统设计提供了更大的灵活性。如果未来需要更多的内存,只需更换更大容量的PSRAM,而不需要更换整个微控制器
hhdhy 发表于 2024-8-4 12:55 | 显示全部楼层
在某些操作系统或高级应用中,动态内存分配是必要的。外部PSRAM可以作为动态内存分配的存储空间,提供更大的灵活性和功能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部