今天小编要和大家分享的是控制,MCU相关信息,接下来我将从MCU在扩展的SDRAM上可以运行吗,c7846a c3913a q1887a 64mb 100pin sdram for hp laserjet这几个方面来介绍。

控制,MCU相关技术文章MCU在扩展的SDRAM上可以运行吗c7846a c3913a q1887a 64mb 100pin sdram for hp laserjet

控制,MCU相关技术文章MCU在扩展的SDRAM上可以运行吗

在使用MCU的嵌入式系统设计中,当程序或者数据内存占用太大而无法放入片上闪存或SRAM时,开发者通常考虑使用SDRAM。

别问我为什么你的MCU不支持SDRAM。

SDRAM是同步动态随机存取存储器的缩写。在微控制器应用中,微控制器通过使用外部存储控制器(EMC)操作访问SDRAM ,SDRAM时钟频率通常为100MHz或133MHz。

外部存储控制器通常不支持DDR SDRAM, 数据只是单边沿采样,即并行数据总线可以接受一个命令并在每个时钟周期传输一个数据字。

在SDRAM中执行程序是使用SDRAM的一种典型用法, 小编这里就介绍一下SDRAM中执行程序的方法和SDRAM执行程序的性能基准。

SDRAM初始化

SDRAM必须在使用前进行配置,SDRAM初始化分为6个步骤。

配置EMC寄存器的SDRAM时钟频率、字节顺序和时序参数。

SDRAM的时序比较复杂,用户需要通过查阅相关SDRAM芯片的手册获得时序参数(如刷新周期、预充电命令周期、自刷新退出时间、写恢复时间等等)。

发送NOP命令

发送预充电命令

发送两次自动刷新命令

设置SDRAM模式

发送正常运行命令

系统启动时,SDRAM尚未初始化。理论上,程序在系统启动后的任何时刻都可以进行SDRAM初始化。然而,由于SDRAM初始化过程比较复杂,使用的系统资源较多,SDRAM初始化必须在所需的系统资源初始化完成后再进行。

具体上讲,开发者在芯片刚刚启动时(如Reset_Handler中)初始化SDRAM需要留心以下细节:

由于SDRAM初始化函数使用系统堆栈或全局变量,开发者必须确保系统堆栈或全局变量所在的物理内存上电及时钟使能。

在程序跳转到主程序启动之前,全局变量未清零或初始化,如果在主函数之前执行SDRAM初始化,开发者必须手动初始化变量。

举个例子,在LPC5460x中,开发者需要在SystemInit函数中初始化SDRAM,该函数(SystemInit)由Reset_Handler调用。在调用系统初始化之前,要通过设置AHBCLKCTRLSET0寄存器将SRAM时钟使能。

Reset_HandlerPROC EXPORTReset_Handler [WEAK] IMPORTSystemInitIMPORT__main ;clock control SRAM1/SRAM2/SRAM3 for stack LDRr0, = 0x40000220 ; AHBCLKCTRLSET0 MOVr1, #0x38 STRr1, [r0] LDRr0, =SystemInit BLXr0 LDRr0, =__main BXr0 ENDP

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查