MIPI D-PHY的初始化(MIPI Alliance & Xilinx)

2023-10-31

    DPHY的基本介绍及使用已有很多文章,基本是基于《MIPI Alliance Specification for D-PHY 》的内容,学习时也以此为准,可参考CSDN上的文章。着重讲述MIPI D-PHY的初始化部分

1 D-PHY的功能及使用

        下面的文章讲的不错,既有理论,又有实际示波器抓取的波形。此处不再赘述。

MIPI 系列之 D-PHY_爱洋葱的博客-CSDN博客

2 初始化问题

2.1 Xilinx DPHY使用

在Vivado中使用MIPI D-PHY时,发现slave的clock lane进入ULPS,导致不能正常接收clock(通过ILA抓取IP的ulps指示信号)。

2.2 spec中的状态图

根据spec中的状态图,clk lane比data lane更容易进入ULPS。(贴图两者进入ULPS的图)

2.3 MIPI的初始化要求

    根据mipi dphy spec V1.1中需要master先完成init并驱动总线LP-11,slave再进行初始化可等到足够长的LP-11.

    在xilinx MIPI中 提到了系统级的复位初始化时序。LP-11最少要求100us:master可采用1ms,slave可采用100us。

解决方法:在master init完成后,再对slave DPHY复位初始化(同时在GUI中去掉对ULPS的支持)。若slave先初始化,总线上状态不确定,可能会造成IP进入ULPS而无法退出。

2.4 Xilinx DPHY退出ULPS的TX、RX时序

2.5 在Xilinx DPHY的GUI中去掉ULPS

        在Vivado中DPHY IP GUI中可以去掉对ULPS的支持,精简资源。避免异常进入。

2.6 在Xilinx DPHY的复位要求

3 校准问题

3.1 MIPI SEPC中关于校准

D-PHY 1.1的速率支持到1.5G,且不支持协议自动deskew,仅能通过硬件布线、FPGA中手动增加idelay的方式保证时钟/数据lane的对其关系。

速率更高时spec标准中规定需要校准,且有校准的流程。每次进入HS发送数据前都需要校正,校正模型先发送16'hffff,后接长的010101...(长度根据RX的要求,如2^13 UI),接收端根据01自动调整采样位置。

Xilinx DPHY中<=1.5G在7系列中的IP内,有idelay的参数可以调节,KU+的IP中没有提供。在KU+的IP中当速率>1.5G 时才有deskew的选项,且要求校准模型长度2^13 UI.

4 重点内容梳理

4.1  spec中6.13节的操作流程图

spec中的图,描述了data lane 和clock lane的完整工作流程。从LP进入/推出HS。

 时钟通道

 数据通道

4.2 数据通道与时钟通道的不同

图片来源见水印,原图中应该有笔误,已修正如下(data双向,clk单向)。

1)data 有Escape mode(其中又细分为UPLS,LPDT,Trigger等),进入时序比较复杂。此模式下不要clk lane,时钟从独热码的LP数据中可以恢复;clk lane只有UPLS且进入时序简单;

2)data可以双向,有turnaround,slave发数据给master(LP和HS都可以反向发数据,速率最大是正向的1/4);clk只能由Master发给slave,单向。

3)数据进入HS时有SOT,即在HS-0保持一段时间后+同步字节(在PHY中同步后剥离,不进入CSI-2)。退出时要根据最后一个数据bit翻转后保持一段时间后LP-11;clk进入HS-0后仅保持一段时间可发时钟,退出时也可保持HS-0即可。

4.3 Data lane 进入ESCAPE mode

1)trriger 模式类似中断,通过在LP模式时发送固定的字节,触发一个事件,如复位;

2)LPDT模式可以发送任意字节的数据;

3) trigger模式,ULP模式退出时要先进入wait模式;

4)进入ESCAPE时有专门的cmd,一个字节的数据。比clk lane进ULPS复杂。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MIPI D-PHY的初始化(MIPI Alliance & Xilinx) 的相关文章

  • STM32【复习串口】

    串口复习加深理解笔记 杂谈 USART FLAG TXE发送缓冲区空标志 说明可以往数据寄存器写入数据了 但并不代码数据发送完成了 USART FLAG TC发送完成标志 这个才是代表USART在缓冲区的数据发送完成了 即从机接收到了数据
  • Verilog中forever、repeat、while、for四类循环语句(含Verilog实例)

    当搭建FPGA逻辑时 使用循环语句可以使语句更加简洁易懂 Verilog中存在四类循环语句 如标题 几种循环语句的具体介绍和用法如下 1 forever 连续的执行语句 语法格式 forever
  • Verilog实例-AMBA(AHB)协议

    目录 一 简介 1 1 AHB 1 2 signal list 1 3 Bus interconnection 总线互联 1 4 Overview of AMBA AHB operation 1 4 1 Basic transfer 1 4
  • 紫光同创 FPGA 开发跳坑指南(三)—— 联合 Modelsim 仿真

    Modelsim 是 FPGA 开发中重要的 EDA 设计仿真工具 主要用于验证数字电路设计是否正确 紫光 Pango Design Suite 开发套件支持联合 Modelsim 仿真 这里作简要的介绍 添加仿真库 方法一 打开 Pang
  • 二、RISC-V SoC内核注解——译码 代码讲解

    tinyriscv这个SoC工程的内核cpu部分 采用经典的三级流水线结构进行设计 即大家所熟知的 取值 gt 译码 gt 执行三级流水线 另外 在最后一个章节中会上传额外添加详细注释的工程代码 完全开源 如有需要可自行下载 上一篇博文中注
  • 关于Keil中Memory中观察不到数据变化的问题以及启动文件栈的初始化

    关于Keil中Memory中观察不到数据变化的问题 在KEIL中观察Memory数据变化 一定要记得只能在RAM地址或ROM之内观察 如下图所示 RAM的地址设置在地址为0x20000000开始的地方 大小为0x20000 因此只有在这个范
  • 笔试

    文章目录 前言 40 复位电路设计 1 recovery time和removal time 2 同步复位和异步复位 3 异步复位同步释放 本文参考 往期精彩 前言 嗨 今天来学习复位电路设计相关问题 微信关注 FPGA学习者 获取更多精彩
  • FPGA的基本设计流程

    FPGA开发主要包括系统设计 设计输入 功能仿真 综合优化 综合后仿真 实现与布局布线 时序方针与验证 板级方针与验证 芯片编程与调试等9个部分 如下图所示 1 电路设计 在系统设计之前 首先要进行的是方案论证 系统设计和FPGA芯片选择等
  • 数码管电子时钟

    文章目录 前言 一 回顾数码管 二 任务描述 三 系统框图 四 模块调用 五 模块原理图 六 工程源码 6 2 时钟计数模块代码 6 2 数码管驱动模块代码 6 3 顶层模块代码 七 仿真测试 7 1 测试代码 7 2 仿真结果 八 管脚信
  • 小梅哥Xilinx FPGA学习笔记9——语法(阻塞与非阻塞赋值)

    阻塞赋值与非阻塞赋值详解 注意 阻塞赋值 1 设计文件 2 激励文件 3 原理图 4 仿真图 非阻塞赋值 1 设计文件 2 激励文件 3 原理图 4 仿真图 注意 阻塞赋值与非阻塞赋值 只有在时序逻辑中才有 不是阻塞赋值 也不是非阻塞赋值
  • 八、RISC-V SoC外设——GPIO接口 代码讲解

    前几篇博文中注释了RISC V的内核CPU部分 从这篇开始来介绍RISC V SoC的外设部分 另外 在最后一个章节中会上传额外添加详细注释的工程代码 完全开源 如有需要可自行下载 目录 0 RISC V SoC注解系列文章目录 1 结构
  • FPGA硬件工程师Verilog面试题(基础篇二)

    作者简介 大家好我是 嵌入式基地 是一名嵌入式工程师 希望一起努力 一起进步 个人主页 嵌入式基地 系列专栏 FPGA Verilog 习题专栏 微信公众号 嵌入式基地 FPGA硬件工程师Verilog面试题 二 习题一 多功能数据处理器
  • 吃透Chisel语言.18.Chisel模块详解(五)——Chisel中使用Verilog模块

    Chisel模块详解 五 Chisel中使用Verilog模块 上一篇文章讲述了用函数实现轻量级模块的方法 可以大幅度提升编码效率 Chisel中也提供了一些好用的函数 方便我们编写代码 也方便Chisel编译器优化生成的硬件电路 在Chi
  • 关于xilinx BRAM IP的延迟以及流程

    关于RAM IP的延迟 1 选择了output registers 可以在RAM输出端口添加register 也可以在core的输出添加 在primitives添加 降低clock to out到primitive的延迟 在core添加re
  • FPGA_时钟显示(时钟可调)

    1 实验说明 在数码管显示数据的基础上 让六位数码管显示数字时钟 并且通过按键可以对时间进行修改 实验目标 六位数码管分别显示时间的时分秒 且通过按键可实现加减调整时间及清零功能 key1 切换键 选择待调整的时间单位 时 分 秒 key2
  • 【Xilinx Vivado时序分析/约束系列4】FPGA开发时序分析/约束-实验工程上手实操

    目录 建立工程 添加顶层 模块1 模块2 添加约束文件 编辑时钟约束 打开布线设计 代码代表的含义 时序报告 进行时序分析 Summary 包含了汇总的信息量 Source Clock Path 这部分是表示Tclk1的延时细节 Data
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 基于FPGA的AHT10传感器温湿度读取

    文章目录 一 系统框架 二 i2c接口 三 i2c控制模块 状态机设计 状态转移图 START INIT CHECK INIT IDLE TRIGGER WAIT READ 代码 四 数据处理模块 串口 代码 五 仿真 testbench设
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • TRICONEX MA2211-100 芯片上相互连接

    TRICONEX MA2211 100 芯片上相互连接 TRICONEX MA2211 100 所有相同的组件 io的电源 处理器 和内存将需要 但是 你可以看到所有这些带存储器和处理器的OO板 针不能嵌入到一个小的单片机上 现在是 普拉克

随机推荐

  • SQL 从字符串中提取数字

    一基础使用 声明一个nvarchar类型的变量并赋值declare Name nvarchar 50 set Name 我正在123学 习22 SQL中11 的一些函数 patindex函数返回所查内容在字符串中第一次出现的内容print
  • 敏捷开发 宣言 思想 认识误区

    敏捷软件开发 Agile software Development 敏捷开发是一种软件开发方法 基于迭代和增量开发 通过自组织 跨团队 沟通协作完成开发工作 敏捷宣言的诞生 2001年2月11日到13日 17位软件开发领域的领军人物聚集在美
  • C语言 系统调用操作内核信号集

    使用内存映射可以拷贝文件 对原始文件进行内存映射 创建一个新文件 把新文件的数据拷贝映射到内存中 通过内存拷贝将第一个文件的内存映射区拷贝到第二个文件的内存映射区 释放资源 匿名映射 不需要文件实体来进行内存映射 只能用于有血缘关系的进程间
  • 【Python 1-14】Python手把手教程之——详解函数的高级用法

    作者 弗拉德 来源 弗拉德 公众号 fulade me 传递列表 你经常会发现 向函数传递列表很有用 这种列表包含的可能是名字 数字或更复杂的对象 如字典 将列表传递给函数后 函数就能直接访问其内容 下面使用函数来提高处理列表的效率 假设有
  • Filter过滤器的作用和工作原理

    对于一个web应用程序来说 过滤器是处于web容器内的一个组件 它会过滤特定请求资源请求信息和响应信息 一个请求来到时 web容器会判断是否有过滤器与该信息资源相关联 如果有则交给过滤器处理 然后再交给目标资源 响应的时候则以相反的顺序交给
  • ubuntu 查看USB对应的串口

    dmesg grep tty conner conner W65KJ1 KK1 dmesg grep tty 0 000000 console tty0 enabled 4 599129 usb 1 6 2 ch341 uart conve
  • FAT32下和NTFS下永久性删除文件的恢复

    FAT32下和NTFS下永久性删除文件的恢复 查看文件系统类型 FAT32下永久性删除文件的恢复 NTFS下永久性删除文件的恢复 注意事项 总结 查看文件系统类型 右键磁盘点击属性 就可以看到文件系统 如果没有FAT32文件系统 可以创建虚
  • 外包干三年,必废!

    点击上方 Java基基 选择 设为星标 做积极的人 而不是积极废人 源码精品专栏 原创 Java 2020 超神之路 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 Rock
  • Anaconda环境配置常见报错与解决方案汇总

    Anaconda指的是一个开源的Python发行版本 其包含了conda Python等180多个科学包及其依赖项 因为包含了大量的科学包 Anaconda 的下载文件比较大 约 531 MB 如果只需要某些包 或者需要节省带宽或存储空间
  • Windows 环境安装Scala详情

    为了进一步学习Spark 必须先学习Scala 编程语言 首先开始Scala 环境搭建 温馨提示 本文是基于Windows 11 安装Scala 2 13 1 版本 第一步 确保本机已经正确安装JDK1 8 环境 第二步 Scala 官网下
  • python里unexpected eof while parsing_[人人都会编程]Python代码报错看不懂?记住这20个报错提示单词轻松解决bug...

    1 syntaxerror invalid syntax语法错误 无效语法 1 syntax s nt ks 语法 句法 2 error er r 错误 3 invalid n v l d 无效 2 syntaxerror unexpect
  • ChatGPT爆火背后的真相:学编程已经成为必选项

    这一阵最热门的话题 莫过于人工智能新选手 ChatGPT 在推出后只用了两个月就积累了1亿用户 它的出现在科技圈掀起了一阵 惊涛骇浪 有人称ChatGPT的意义 堪比当年蒸汽机的出现 它足以爆发新一轮的 工业革命 它的出现 和我们每个人的生
  • 有关@string

    android label string app name gt 什么意思 有何作用 android label string app name gt 意思是应用的名称 还有一个是主活动的名称 label表示标签 表示引用 string a
  • 计算机视觉教程核心版(三)优化中篇反向传播展示

    目录 介绍 简单的表达式 模块化 反向传播中的模式 多个分支梯度相加 介绍 在本节中 我们将对反向传播 这是一种通过递归的应用链式法则计算梯度表达式的方法 进行直观而专业的理解 理解反向传播的过程以及其中的细节对我们理解 有效开发 设计和调
  • linux系统 nginx服务 多个vue项目配置-超详细

    linux系统 nginx服务 多个vue项目配置 超详细 linux系统 nginx服务 多个vue项目配置 超详 首先了解nginx路由配置注意事项 nginx安装 vue项目配置后缀 nginx安装配置 重启nginx服务 配置好后出
  • 市场火爆的NFT 应用场景分析与NFT开发技术搭建

    NFT 的应用 NFT 可以表征数字资产本身 也可用于表征某种特殊用途的凭证 房产证 护照 门票 优惠券等 因此它的使用场景是极其广泛的 当下主流的 NFT 应用为链上原生的游戏道具和艺术收藏 去中心化域名服务也是 NFT 的一个发展方向
  • Element-UI

    Element UI 组件 Tree 树形控件 用清晰的层级结构展示信息 可展开或折叠
  • 学习vue3系列computed

    响应式API中 computed 和之前的 computed 选项用法类似 对于任何复杂逻辑 我们都可能使用计算属性 比如翻转字符串
  • windows下secureCRT远程连接Linux错误

    描述 The server has disconnected with an error Server message reads A protocol error occurred The connection is closed by
  • MIPI D-PHY的初始化(MIPI Alliance & Xilinx)

    DPHY的基本介绍及使用已有很多文章 基本是基于 MIPI Alliance Specification for D PHY 的内容 学习时也以此为准 可参考CSDN上的文章 着重讲述MIPI D PHY的初始化部分 1 D PHY的功能及