• stm32——fmsc控制外部SRAM——小结


    近期项目中使用到了 IS64LV25616AL 的芯片,因此我要总结一下。

    IS64LV25616AL这个是256*16的的,数据格式是16位,所以一共有512KB的空间,比较大了,stm32F103zet6才64KB内部SRAM。
    可以使能byte enable,进行8位的访问,只要设置好了后,可以像片内的sram一样,随意访问的片外的sram,可以使用指针形式,可以at绝对地址定位的方式(ac5、ac6两种方式都可以,但是有所区别)。

    stm32把片内外设的1GB的空间用于访问 nor/psram nand pcsd等,也就是书上说的地址映射,而且每个块都是4*64MB,共4个,既4*4*64MB。而且在nor/psram这个bank1的区域又分为4个小区域,这个小区域都有地址分配的,可以参考stm32的参考手册,而且每个小区域有相应的NE片选引脚,可以在stm32cubemx中进行设置,所以NE引脚是要结合硬件设计手动来选择的,而且也不能随便设置。其他的地址线、数据线、信号线等等,stm32cubemx会自动设置好,我们只要关心NE片选即可,十分方便。

    另外stm32F103ze系列是有fsmc控制器的,引脚数目小于100的是没有的,其他高性能的stm32也是有的,具体就是要看芯片手册了。

    把外部SRAM当做外部存储器来使用,上面的步骤就结束了的,而如果把外部SRAM当做内存使用,或者把部分堆栈空间放到外部SRAM,还需要做一些其他的设置,可以参考安富莱的教程和strongerhuang的博客。

    网上的资料:

    STM32F103ZET(基于秉火开发板)+Cubemx(F1 V1.60库)+FSMC读写SRAM或者液晶屏的控制芯片

    首先说明下开发条件:

    1、开发板:秉火霸道,STM32F103ZET

    2、软件:Cubemx V4.23(F1 V1.60库)

    3、硬件:SRAM:IS62WV51216  1MByte  或者  ILI9341的液晶控制器芯片

    问题描述:读写SRAM时高字节无效!

    问题原因:Bytes使能选项没有选择!

    解决办法:

    捕获1.JPG

    因为SRAM是16位的数据线,需要高8位和低8位分别有效,所以这个选项需要选择上!

    如果是ILI9341的液晶控制器芯片的控制芯片则需要看您是使用哪根地址线模拟D/CX (数据/信号)的,根据具体情况进行选择!比如在控制液晶屏的时候就没有选择bytes使能,但是也没有出错,因为在数据传输的时候都是发送的8位!所以保险起见,应该将这个选项选上!

    捕获2.JPG

  • 相关阅读:
    Eygle力荐:Oracle 19c升级文档、视频、问答集锦
    每日一题 2020.05.11
    “前浪”数据仓库和大数据平台,到“后浪”数据中台的演变史
    面向对象例子
    super()调用父类方法
    iOS视图控制器初始化问题
    详解EBS接口开发之更新供应商付款方法
    oracle对大对象类型操作:blob,clob,nclob
    "ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
    错误 frm-40654 记录已经被另一个用户更新,重新查询以查看修改
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12359270.html
Copyright © 2020-2023  润新知