耀风居士 发表于 2023-10-28 15:56:49

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

实验器件:
MCU: STM32F407ZGT6
外部SRAM: IS62WV51216

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

amigenius 发表于 2023-10-28 16:01:56

IS62速度太慢,需要把FSMC的参数调很慢才行,而这么慢的速度,用作DCMI的缓冲又不行,换IS61吧

耀风居士 发表于 2023-10-28 16:09:11

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

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

amigenius 发表于 2023-10-28 16:22:08

iS62,16bit的无记错的话 好像是45ns还是50ns,那个数据吞吐率只有可怜的20MB/s,您接2640也是读JPEG吧,估计还凑合。

liuqian 发表于 2023-10-28 18:43:33

一个是参数要匹配,另一个是cache的影响
我之前用psram,写入再读出,发现有个别的数据不对,关闭cache就正常了

yyts 发表于 2023-10-28 19:38:53

才发现用ESP32-S3的PSRAM是真爽,OSPI(8线),最高还能到120M。

耀风居士 发表于 2023-11-3 10:27:51

谢谢各位指点,小弟悟了几天终于明白了,降低FSMC的速度就可保证数据的失真性,现在拍出来的照片杠杠的!

Rabbitoose 发表于 2023-11-4 07:59:17

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

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

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

akey3000 发表于 2023-11-4 08:10:55

2楼大神专业

redroof 发表于 2023-11-4 08:23:02

Rabbitoose 发表于 2023-11-4 07:59
请问降低FSMC速度是指降低FSMC的时钟频率还是修改了SRAM的时序参数?

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

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

Rabbitoose 发表于 2023-11-4 09:06:07

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

嗯嗯好的。

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

耀风居士 发表于 2023-11-5 17:46:20

Rabbitoose 发表于 2023-11-4 07:59
请问降低FSMC速度是指降低FSMC的时钟频率还是修改了SRAM的时序参数?

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

降低时序参数

tomzbj 发表于 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也好用多了.
页: [1]
查看完整版本: STM32F4驱动外置SRAM,发现会出现存入数据和读出不一致问题