搜索
bottom↓
回复: 12

STM32F4驱动外置SRAM,发现会出现存入数据和读出不一致问题

[复制链接]

出0入0汤圆

发表于 2023-10-28 15:56:49 | 显示全部楼层 |阅读模式
实验器件:
MCU: STM32F407ZGT6
外部SRAM: IS62WV51216

1. 起因
        想用STM32F4做个照相机玩玩,奈何内部SRAM太小,存不下一帧高分辨率得数据,因此扩展一个外部SRAM将采集的图像数据先存进去,然后再写进TF卡中保存
2. 经过
        拍摄的图片惨不忍睹,太抽象了,地狱画风。因此怀疑:1.外置SRAM存取问题 2.通过DCMI读取ov2640的逻辑有问题,导致数据采集异常
3. 结果
        写了个外置SRAM测试程序,结果还真有问题,程序如果换成内部SRAM就没问题,思考许久不知为何,望请大佬支招

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出140入158汤圆

发表于 2023-10-28 16:01:56 | 显示全部楼层
IS62速度太慢,需要把FSMC的参数调很慢才行,而这么慢的速度,用作DCMI的缓冲又不行,换IS61吧

出0入0汤圆

 楼主| 发表于 2023-10-28 16:09:11 | 显示全部楼层
amigenius 发表于 2023-10-28 16:01
IS62速度太慢,需要把FSMC的参数调很慢才行,而这么慢的速度,用作DCMI的缓冲又不行,换IS61吧 ...
(引用自2楼)

你好,谢谢回复。图像数据我是先用DMA双缓冲先将DCMI读取到的数据放到内部SRAM中,满了之后再从内部SRAM搬到外部SRAM中,这个会不会也慢?

出140入158汤圆

发表于 2023-10-28 16:22:08 | 显示全部楼层
iS62,16bit的无记错的话 好像是45ns还是50ns,那个数据吞吐率只有可怜的20MB/s,您接2640也是读JPEG吧,估计还凑合。

出0入4汤圆

发表于 2023-10-28 18:43:33 来自手机 | 显示全部楼层
一个是参数要匹配,另一个是cache的影响
我之前用psram,写入再读出,发现有个别的数据不对,关闭cache就正常了

出0入224汤圆

发表于 2023-10-28 19:38:53 | 显示全部楼层
才发现用ESP32-S3的PSRAM是真爽,OSPI(8线),最高还能到120M。

出0入0汤圆

 楼主| 发表于 2023-11-3 10:27:51 | 显示全部楼层
谢谢各位指点,小弟悟了几天终于明白了,降低FSMC的速度就可保证数据的失真性,现在拍出来的照片杠杠的!

出3670入191汤圆

发表于 2023-11-4 07:59:17 | 显示全部楼层
耀风居士 发表于 2023-11-3 10:27
谢谢各位指点,小弟悟了几天终于明白了,降低FSMC的速度就可保证数据的失真性,现在拍出来的照片杠杠的! ...
(引用自7楼)

请问降低FSMC速度是指降低FSMC的时钟频率还是修改了SRAM的时序参数?

我翻了一下手册,STM32F407的FSMC参考时钟是AHB总线时钟(HCLK),也就是MCU主频,降低这个会影响总体性能。所以你是调节了SRAM的时序参数吗?

出100入312汤圆

发表于 2023-11-4 08:10:55 | 显示全部楼层
2楼大神专业

出300入477汤圆

发表于 2023-11-4 08:23:02 来自手机 | 显示全部楼层
Rabbitoose 发表于 2023-11-4 07:59
请问降低FSMC速度是指降低FSMC的时钟频率还是修改了SRAM的时序参数?

我翻了一下手册,STM32F407的FSMC ...

(引用自8楼)

肯定是改时序参数啊。自己选了低速ram,当然得把时序参数改慢一点。厂家给你可调的时序参数,就因为你用不同的sram通常都得调这些。
当然普通的异步sram怎么调都很慢,快不起来的。每次发片选,地址,读写线,取数据,收回片选,这么多步骤才能读写一个数据。然后下一个数据还要重复之前的所有操作。。。
如果有sdram控制器的话,用sdram可以快的多

出3670入191汤圆

发表于 2023-11-4 09:06:07 | 显示全部楼层
redroof 发表于 2023-11-4 08:23
肯定是改时序参数啊。自己选了低速ram,当然得把时序参数改慢一点。厂家给你可调的时序参数,就因为你用 ...
(引用自10楼)

嗯嗯好的。

我的一个板子用的就是SDRAM,开发小伙说也遇到过和楼主一样的问题。

出0入0汤圆

 楼主| 发表于 2023-11-5 17:46:20 | 显示全部楼层
Rabbitoose 发表于 2023-11-4 07:59
请问降低FSMC速度是指降低FSMC的时钟频率还是修改了SRAM的时序参数?

我翻了一下手册,STM32F407的FSMC ...
(引用自8楼)

降低时序参数

出0入362汤圆

发表于 2023-11-7 11:29:26 | 显示全部楼层
都上407ZG了... 直接用GD32F470VIT6得了, 内部768K RAM. 或者用GD32F450/470ZE, 配个10元不到的W9825什么的, 32M SDRAM, 不比SRAM香得多?

STM32这边比较爽的就是STM32H7B0, 内置1.4M SRAM, 而且有1M是连续地址空间,  比1M地址不连续的H750也好用多了.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 13:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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