DSMC通信协议理解,以及如何在FPGA上实现DSMC从设备(1)

本篇文章用来记录自己对DSMC通信协议的理解。

1.DSMC概述

Double Data Rate Serial Memory Controller(DSMC),双倍速率串行存储器控制器,通过命令、地址、数据线分时复用,数据上下沿传输,具有少引脚数、高带宽的特点。

2.DSMC硬件接口介绍(RK3576)

详细接口如下(主机侧)

| 强制接口 ||||

引脚 方向 电平 说明
CLKP CLKP O - 通信时钟,差分时钟用于1.8V设备,3.0V以上设备只使用CLKP 主机发送数据和时钟交叉沿中心对齐(从机在时钟跳变沿采样)
CSn0~CSn3 O - 片选,支持4个从设备
DQ0~DQ15 I/O - 双向数据总线
DQS0 DQS1 I/O - RWDS读写选通信号,CA命令期间用来向主机表示是否需要额外延时 主机读数据期间和数据信号沿对齐用于主机获取数据 主机写数据期间用于数据掩码(localbus模式下无效)
可选接口
RESETN O 上拉 复位信号
RDYN I 开漏 从机准备好信号
INTn0~INTn3 I 开漏 中断信号

3. DSMC总线模式(支持的协议)

.Hyperbus PSRAM、

.Xccela PSRAM

.Local bus

4.DSMC读写时序介绍(以HyperRAM为例)

4.1读操作

1.主机会判断CS high、CLKP low、CLKN high,都符合则进行开始进入读操作

2.拉低片选,随后传输48bit CA指令,传输指令同时主机监测DQS电平判断是否插入额外延时

3.在到达延时时间后读取DQS信号,读取对应数据

*在整个读事务期间DQS信号都由从机控制

4.2写操作

1.主机会判断CS high、CLKP low、CLKN high,都符合则进行开始进入写操作

2.拉低片选,随后传输48bit CA指令,传输指令同时主机监测DQS电平判断是否插入额外延时

3.从机在接收完CA指令后释放DQS信号,主机需要在延时结束前将DQS驱动至有效低电平,从机在到达延时时间后读取DQS信号和数据信号

*写事务中DQS作为掩码功能使用,高电平指示数据写入(在零延时写入模式下主机从机都不再关心DQS信号)

4.3零延时写操作

零延时写操作和普通写类似,区别在于写入CA指令后立刻传输数据字节,同时主机从机不再关注DQS信号。

5.DSMC CA指令格式

5.1 HyperBus模式下的CA指令结构

5.2 LocalBus模式下的CA指令结构

主设备参数配置和寄存器表这里还没看懂暂时不写了(反正是RK封装好的驱动直接调用就可以......小声)

相关推荐
个 人 练 习 生18 分钟前
C++:模板初阶详解
开发语言·c++·经验分享·学习
辣知22 分钟前
辣知·化智69 西周青铜器何尊的宅兹中国
学习
AOI小白新手上路27 分钟前
韦东山 3-5 I.MX6ULL 的 LED 编程 · 学习笔记
arm开发·笔记·单片机·学习·架构·硬件架构
知识分享小能手29 分钟前
C++ 学习教程,从入门到精通,C++类继承 — 完整知识点详解(13)
开发语言·c++·学习
szxinmai主板定制专家44 分钟前
RK3568+FPGA+CODESYS异构控制方案:赋能半导体设备与工业自动化升级
人工智能·fpga开发·自动化·rk3576·半导体设备
Joe_Wang51 小时前
【从0到1学习JVM · 25】同样都要停顿所有线程,Parallel比Serial到底强在哪
java·jvm·学习·垃圾回收
M78佐菲1 小时前
ARM学习笔记(9)
linux·arm开发·笔记·嵌入式硬件·学习
阳光九叶草LXGZXJ2 小时前
达梦数据库-学习-67-SSL加密认证
linux·运维·数据库·sql·学习·ssl
東隅已逝,桑榆非晚2 小时前
priority_queue的介绍和使用
c++·经验分享·笔记·学习
量子-Alex2 小时前
【大模型强化学习后训练】强化学习后训练算力应投向何处?模型规模、搜索、学习与反馈
人工智能·学习