OpenEdv-开源电子网

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

关于f407如何利用自带的初始化调用外部ram IS62WV51216自测好用

[复制链接]

9

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2017-5-9
在线时间
17 小时
发表于 2017-11-23 11:08:29 | 显示全部楼层 |阅读模式
最近,一直在使用f407的最小系统版做大数据量处理,需要使用到外部ram,看了正点原子的外部sram以及内存管理方法,根据与f103的对比找到了一种方法
利用f407 systeminitl.c 内的函数调用1M的IS62WV51216。
发现:systeminitl.c自带的  SystemInit_ExtMemCtl(); 有问题,与正点原子的接线并不匹配。
下面我就对比说一下这个程序改法。
1、使用的硬件连接方式是正点原子的接线方式,从图中我们可以看出IS62WV51216的CE接在NE3就是PG10就是第三区地址为0x6800.。。
微信截图_20171123104439.png
2、systeminitl.c
程序
首先需要打开#define DATA_IN_ExtSRAM,使得初始化可以进入外存初始化配置
微信截图_20171123105046.png
3、下面我对比着说一下自带的和我改的void SystemInit_ExtMemCtl(void)(重点)
(1)官方配置的:
官方配置是PG9的NE2二区地址为0x6400.。。。。且FSMC的寄存器配置也不一样,说明官方函数并不是为正点原子的外部ram IS62WV51216而设计的配置
(2)我配置的:

绝大多数用户使用的是正点原子配置我就按照正点原子的修改程序:

更改PG9的NE3三区地址为0x6800.。。。这样就需要把GPIO_G口重新配置一边

微信截图_20171123105858.png

下面更改三个寄存器,三区对应的是【4】【5】,然后特别注意BTCR这个寄存器,我是用的902,9和2是控制hclk的周期数,这里我没有理解为什么,这个数是我试出来的,保证数据能够完整读写。

微信截图_20171123110035.png

疑惑需要讨论:

我的处理数据长度是32k长度的float型,最疑惑寄存器BTCR的设置,RD高电平与低电平时间(就是hclk周期数也就是BTCR寄存器的ADDSET[3:0]:地址建立时间 与 DATAST[7:0]:数据保持时间。)应该如何确定,我觉得这个和时序与hclk有关请高手说一下。







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 02:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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