DSI3协议 CRM模式通信讲解

博客以Elmos 521.42芯片为例,讲解DSI3调试。先介绍SPI调试,包括传输属性及验证方法,若调试不通需排查CLKREF等配置和外围电路。接着讲解DSI3 CRM格式,涵盖Master到Slave传输和Slave到Master响应的解析方式及验证方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此讲以Elmos 521.42芯片来讲解DSI3(没有用带DSI3外设的MCU)

521.42芯片是DSI3转SPI信号的转换芯片,所以调试DSI3前需要将MCU与521.42的SPI通信调通。

1:SPI调试

根据521.42Datasheet说明SPI传输属性如下:

                1) CS脚在传输开始时有高变低(低有效,但不能一直拉低,通信结束后需要拉高一段时间,此芯片有此规定,具体参数就不贴出来了,贴出来凑字数也没有意义,视你用的芯片而定)

                2) MSB先出、SCK转低时读MOSI、SCK转高时传MISO、传输完SCK置低、16位模式

 

以上想说的是,SPI遵循521.42要求设定就可以了,如何验证SPI通信是否正常呢,那就看写521.42寄存器的时候SPI同步回传的数据从第二笔数据开始依次对应的是你发的数据。(如下图格式)

 

 

针对521.42 SPI如果调试不通的话,那就排查排查,比如521.42需要配置的CLKREF(500K PWM)和其它外围电路设计是否正确,最多还有个Reset,其它也没有啥了。

2:DSI3 CRM 格式讲解和关键配置点

        首先老方式,需要先来讲解下CRM 格式。不然太白话文了,没人看啊。先来个图凑凑

        这张图上可以看出,传输和响应的格式是完全不一样的,那我们就需要来先说明下这两个格式的解析方式。

        1)Master -> Slave 传输

        在尝试解析传输命令的时候,你得先去百度了解下曼彻斯特编码。这我就不贴过来了,贴过来也是充字数的,百度还比我说的明白~~~算了,还是贴个解释的链接吧一篇文章让你读懂-曼彻斯特编码_0101XX0101的博客-CSDN博客_曼彻斯特编码

        解析呢我们就以8us的为例,起始段肯定就是电压由高变低咯,那第一个bit从哪里开始呢,下图的这个也就一眼可以看出来了,起始的低4us(1bit time的一半时间)开始计算。那接下来就是按个的数每个bit了,这个没啥偷懒的方法,慢慢数吧,反正也就32bit。

        当然了,下图你也可以看出来低电压不是0V,因为高低的电压差是2V。

        一样的,我们也来贴个波形图。偷个懒,就解析下前面16bit 

读出来二进制就0011 1101 0000 0000    =》 0x3D00    正常解析

        2)Slave -> Master 响应

        格式解析还是需要贴一下的,表示下我也看了的~~~

那对不对还是需要来个波形图验证下的嘛。。。

 白线是手动划分的,一共分八段,为啥手动呢,呃呃呃,工具有点Low没办法啊。

        因为是用的普通碳棒测电流,所以这里只能用电流引起的电压变化反推电流值。啥意思呢,也好理解,就是默认高电压的时候,也就是默认的没有通信时候的电流,那电压低一阶的是对应的电流 I ,电压低两阶的是对应电流 2 * I 。

        按照上面换算的方法解读出来的数据如下:

        102-211-110-110-110-110-110-110-120

        那查表对应的数据就是:21 00 00 0C 这个好理解。当然第一讲也说了,毕竟是用电压碳棒测量的,所以你需要多放大几倍才能看的出来变化。。。

好吧,第二讲就先到这里了,这里是讲述的是正常调试信息,那第三讲就开始来讲述DSI3遇到的坑吧,相信大家遇到问题的时候也是调试不通,正所谓一通百通。

### DSI波形图绘制方法及相关工具 DSI(Display Serial Interface)是一种用于显示设备的数据传输接口标准,其波形图的绘制通常涉及特定的硬件和软件组合来完成。以下是关于如何获取、分析以及绘制DSI波形的相关信息。 #### 使用示波器测量DSI信号 对于DSI协议中的控制信号(如HSYNC/VSYNC/DCLK),可以利用高性能示波器进行测量并观察这些信号的时间特性及其变化规律[^1]。通过设置合适的触发条件,能够捕捉到稳定的波形图像以便进一步研究。 #### 利用逻辑分析仪捕获数据线活动 除了基本同步信号外,还需要关注RGB或其他形式像素数据流的情况。这时可采用支持高速串行总线解码功能的逻辑分析仪器来记录完整的帧传输过程,并将其转换成易于理解的形式展示出来。 #### 软件辅助下的波形生成 一些专业的EDA(电子设计自动化)套件或者专门针对MIPI联盟制定的标准开发出来的应用程序也可以帮助工程师们模拟出预期中的DSI通信模式。这类程序往往具备图形界面操作简单直观的特点,允许用户自定义参数从而得到精确匹配实际应用场景需求的理想模型。 ```python import matplotlib.pyplot as plt import numpy as np # 假设这是经过处理后的部分DSI时钟周期内的电压值序列 time = np.linspace(0, 1e-6, num=1000) voltage_levels = [np.sin(2 * np.pi * f * t) for t in time] plt.figure() plt.plot(time*1e6, voltage_levels[0]) # 将时间单位转为微秒便于查看细节特征 plt.title('Example of Simulated DCLK Waveform') plt.xlabel('Time (μs)') plt.ylabel('Voltage Level') plt.grid(True) plt.show() ``` 上述代码片段展示了如何使用Python库Matplotlib创建一个简单的正弦波代表可能存在的DCLK波形实例。当然真实世界里采集回来的数据会更加复杂多变,因此仅作为概念演示之用途。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值