• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32快扩RAM注意事项

川楠 2018-08-02 浏览量:1209

之前在调研STM32F4 处理摄像头数据,并通过WIFI 传输出来的时候,

有个说法引起了我的注意:扩大单片机的RAM,有利于提高图像的显示帧率。

所以,我的问题是:

1、这个说法正确不?

2、STM32外扩RAM的时候硬件上要用到单片机的那些资源?

3、在编写程序的时候,能否做到单片机的内部RAM与外部RAM的连贯使用?

4、在进行程序开发的时候,与不外扩RAM的程序开发有那些区别,keil开发环境。

1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1 特定情况下正确。如果减小像素的话,在MCU内部的RAM里缓存会更快。但是,你想要缓存大图对吧,内部RAM就不够了。
    首先,单片机内部的RAM最多只有几百K,容量比较小,做图片缓存的话,如果要多缓存几帧,就需要牺牲图片分辨率。
    如果使用外置的SDRAM芯片,就可以扩大程序可以访问的内存,而且不影响速度。
    比如ST公司的F746G DISCO评估板,使用了一片外置的128兆SDRAM芯片来做各种需要大内存应用的缓存。

     
    2 硬件上要用到FMC系列接口的硬件资源。原理图

    sdram接口.JPG

    3 并不连贯。与内部RAM不同的是,SDRAM在使用前要有代码启用FMC并初始化,也就是定义外部SDRAM的物理地址。显然,这个地址不是紧接着内置RAM的地址。实际使用的时候,需要使用SDRAM类里定义的函数来访问这部分内存空间。
    比如:
    sdram.WriteData(SDRAM_DEVICE_ADDR + WRITE_READ_ADDR WriteBuffer BUFFER_SIZE);
    sdram.ReadData(SDRAM_DEVICE_ADDR + WRITE_READ_ADDR ReadBuffer BUFFER_SIZE);
    在操作上,是不是有点像读写SPI FLASH。但是它的速度要比SPI FLASH快很多。

     

    4 没区别,把SDRAM库引用了,然后这些函数都能用。然后码代码,编译并烧写。

    • 发布于 2018-08-02
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:4
  • 1、正确的,由于图像传输的时候一般要做一个缓冲区,如果缓冲区太小,采集图像的速度就无法快
    2、一般用FSMC总线
    3、可以,但是要先初始化外部RAM
    4、编译的时候要配置一下

    TIM截图20180802223251.png

    • 发布于2018-08-02
    • 举报
    • 评论 0
    • 1
    • 0

  • 这个是正确的,初始化是要先配置RAMS的大小才可以使用的
    • 发布于2018-08-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 扩大RAM的确可以提高图像的帧频,

    扩大需要用到单片机的FSMC总线,

    可以做到内部和外部的RAM连贯使用,

    没有什么区别,在编译的时候配置一下就好了。

    • 发布于2018-08-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 外扩RAM要根据你的地址来操作,最好是根据你的地址进行设置然后再使用
    • 发布于2018-08-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32快扩RAM注意事项