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封装好的驱动直接调用就可以......小声)

相关推荐
北顾笙98039 分钟前
LLM学习-day04
学习
lzj_pxxw2 小时前
W25Q64存储芯片 软件设计刚需常识
stm32·单片机·嵌入式硬件·mcu·学习
Slow菜鸟3 小时前
AI学习篇(四) | AI设计类Skills推荐清单(2026年)
人工智能·学习
念恒123063 小时前
Python(列表进阶)
python·学习
QYQ_11274 小时前
嵌入式学习——杂项设备、Platform总线和设备树源文件
学习
wuxinyan1235 小时前
大模型学习之路03:提示工程从入门到精通(第三篇)
人工智能·python·学习
十安_数学好题速析6 小时前
【多选】曲线方程:四步避坑判断曲线类型
笔记·学习·高考
千寻girling6 小时前
五一劳动节快乐 [特殊字符][特殊字符][特殊字符]
java·c++·git·python·学习·github·php
波特率1152007 小时前
git指令学习
git·学习
eLIN TECE7 小时前
Golang 构建学习
开发语言·学习·golang