在线时间4072 小时
UID3441752
注册时间2017-11-21
NXP金币750299
TA的每日心情 | 开心 2024-3-26 15:16 |
---|
签到天数: 266 天 [LV.8]以坛为家I
管理员
- 积分
- 32091
- 最后登录
- 2024-5-8
|
I.MXRT 外接 SDRAM注意事项 问题描述:
I.MXRT1062用外挂的SDRAM,程序运行起来就异常,如果不用外部的SDRAM,只用内部的RAM,程序是可以正常启动。为什么? 解决方法:
去掉SEMC_DQS连接的电容,不管是Winbond,ISSI,美光还是钰创等厂家的SDRAM都能够正常运行。推荐 SDRAM用如下配置。
GPIO_EMC_39:SION = 1, MUX_MODE = ALT0 ,DQSMD = 1
需要保持 GPIO_EMC_39/SEMC_DQS 引脚为浮空状态。
在SEMC MCR寄存器里面有DQSMD位,如果DQS 模式是冗余的读DQS的回环,SEMC_DQS引脚需要配置,SION配置为SEMC_DQS的输入。如果外设信号没有输出到DQS,例如SDRAM外设器件。为了产生正确的延迟参考,SEMC_DQS应该被悬空。
如果DQS模式设置为内部环回,则SEMC_DQS引脚也不应当使用。在SDK例子代码中,SDRAM的默认配置DQS信号是内部环回的。基本上,semc_dqs用于冗余的读环路引脚。详细信息可以参考手册25.3部分。
在开发板上SEMC_DQS这个引脚是悬空的,外部的0.1uF电容是没有焊接的,DNP状态。
SDRAM接口(运行频率高达166mhz)是芯片的关键接口之一。SDRAM路由必须分为两组:数据组和地址/控制组。
•SEMC_DQS信号线应保持浮空。
•所有数据线和DM[x]
•所有地址线和控制线
SDRAM的寻址地址组成是RowAddress+BankAddress+ColumnAddress。
对于i.mxrt1050,SEMC可以支持的sdram至少需要9列地址线,而只有4个BANK。
对于i.MX RT1060,SEMC能够支持的sdram至少需要8个列地址线,有2个BANK和4个BANK。
例如:ISSI_SDRAM 如果是42s16100c1_6_5_x16_16Mb的型号,那么它可以用于i.MX RT1060,但不能用于i.MX RT1050。
因为IMXRT1050-EVKB是4层板设计,所以两个布局都参考GND平面用于阻抗控制。一个组在顶层布线(参照平面是第二层),而另一个组在底层布线(参照平面是第三层)。
所以,针对 RT1050/RT1060 SEMC 模块支持SDRAM接口,为了实现更高速的访问,SEMC_DQS 引脚(GPIO_EMC_39) 必须保持浮空。
针对 RT1050/RT1060 FlexSPI 模块支持 QSPI, FlexSPI_DQS 引脚(GPIO_SD_B1_05) 必须保持浮空来实现高速的访问。
RT1021 的SEMC只支持9 bit以上的Column Address,如果接一个8 bit Column Address的SDRAM,然后软件操作特意避开不存在的地址空间,SDRAM仅仅存储数据,不跑代码和程序变量,只通过软件访问,在软件上可以避开重叠地址空间吗?
比较8MB和16MB的SDRAM,8MB要便宜几块钱,但8MB 的SDRAM大部分是8位 Column Address的。Column Addres在SDRAM寻址的最后面,如果是16位数据线,可选的最小容量SDRAM是16MB,会认为16MB空间资源有点浪费了。接8位的话, 就变成这样了,256字节(可用)- 256 字节(不可用) - 256 字节(可用)- 256 (不可用),地址不连续,分配的变量就要全部指定位置了,同时对于RT1021来讲,访问0-255和256-511是两个地址段,但是对SDRAM 就是一个地址,会出现地址重叠。
|
|