【硬件基础】DDR芯片数据线乱序问题

今天开始粗略学习arm+linux,用的是韦东山的IMX6ULL PRO开发板,按照惯例会先学习硬件原理图、开发板使用手册。在学习核心板电路图时发现了一个违反自己常识的情况:DDR片子的数据线出现了乱序的情况,如下图:
DDR
可以发现,地址线上与SOC时完全一致的,但是数据线却出现了乱序的情况,但是这不一定是一个错误,虽然在我之前学习STM32的SRAM相关的时候很清晰地知道地址线与数据线是不能乱序。
先来说说之前学习的一些扩充ram的手段吧。
【一】STM32 使用FSMC接口连接SRAM扩充外部ram(Gd32上叫EXMC)
SRAM
大多数初学者使用的都是这种占用引脚多且容量不见得大的SRAM,地址线和数据线加起来都超过32个引脚了,但是它的好处就是非常地快,虽然还达不到内部RAM的访问速度。在关于这个的学习上,我从来没有见过哪个开发板上的这种大SRAM芯片的数据线乱序接过,所以我的经验就是不能乱接,这大概率和STM32 上FSMC接口不让乱接有关系。
【二】PSRAM(伪SRAM),这个可以使用FSMC/EXMC中的PSRAM部分来驱动,也可以用SPI/QPI来驱动,但是这个东西最大的缺点就是慢,哪怕是QPI/SQPI模式也很慢。
我个人查阅过的PSRAM型号只有以下:LY68L6400、VTI7064、IPS6404;经过使用对比发现,其实PSRAM的协议都是差不多的,可能个别的型号不支持查ID而已。使用办法也就是两种:FSMC或者传统SPI。
但其实无论是哪种,都是基于SPI协议的,使用FSMC中的PSRAM QPI驱动也只是在QPI接口形式下拉高了时钟线的速度而已,并且也需要发送 读/写指令,规定模式等等。因为本文并不是专门写这个内容的,所以这里只是提一嘴,后面如果有人需要一篇文章专门来理清:SPI/Dual SPI/SQPI/QPI之间的关系以及如何使用FSMC PSRAM QPI驱动PSRAM,我再单独去理清楚。
PSRAM
PSRAM如图,是不是觉得它很像W28Q16那些flash芯片,实际上如果你直接用SPI驱动它,它和flash芯片也没啥区别,也就是掉电就丢数据嘛。它的优异点就是:相比于传统SRAM占用IO少,bom面积小,成本低。它这么小小的一片就可以拥有4Mb到16Mb的空间,性价比还是很高的。但它的问题,个人觉得就是如果单纯用SPI来驱动,受限于SPI时钟的限制,它和内部RAM比,慢的不是一点半点。如果使用FSMC PSRAM QPI来驱动,你说它快吧,其实也算快,但始终还是比内部RAM慢一些。up主之前在做一个摄像头项目时,曾经用它来做数据缓存区,内部ram可以完成VGA 60帧 raw 数据,但是使用这个PSRAM,理论上如果和内部Ram一样快的话,可以摸到 1080P 10帧,然而事实却是仅能支持到最多2帧。
一张VGA(640480尺寸)按照raw8格式接收的情况下,需要占用300Kb Ram。
一张1080P(1920
1080尺寸)按照raw8格式接收的情况下,需要占用2025Kb Ram。
单片机最大的ram才512Kb,所以我才能够流畅使用VGA,但没法使用1080P,所以才扩充RAM。
如果有哪个摄像头可以自己将1080P处理成JPEG格式,那么就可以大大的减小Ram的占用,不过当时没有找到这样的摄像头,即便支持Jpeg格式,但是输出尺寸都没能达到1080P。
--------------------------------------分割线---------------------------------------------
前面都是有关单片机的,现在说说为啥这个DDR可以乱序连接。
经学习,发现它并不是完全乱序,而是【字节内可以乱序】,并且连接也需要按照厂商给的参考来做,听说有的厂商的DDR的DQ[0:7]需要接到Soc的DQ[8:15],不过一般都是高字节和高字节接,低字节和低字节接。
可以完全顺序一样吗?当然可以。可以完全打乱顺序吗?【字节内可以乱序,但是不知道为什么我看了几个板子的原理图似乎DQ0和DQ15都没有按照乱序接,也许这是前人们踩过的坑】
目前的结论是:DQ[1:7]可以在本字节内的数据线上乱序接,DQ[8:14]可以在本字节内的数据线上乱序接。至于为什么不会影响功能,那是因为它即便顺序不一致,在传入的时候数据的顺序就会不一致,再读出来的时候同样也会不一致,在传入和读出的顺序只要一致,那就没有问题。判断数据线顺序是否可以调整的最基本原则就是保证读出顺序和写入顺序一致,并且从设备不带内部命令解析。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值