DSI连续时钟和非连续时钟引发的DS90UB941低温(-40℃)黑屏分享

mipi的brust和non-brust的区别以及和时钟模式的搭配 MIPI协议相关的知识整理 阅读详情

结论

懒得看文章的直接看这里的总结:

问题现象:低温-40度下,941的superframe会出现一边屏幕黑屏,常温情况下正常

问题原因:8155及941没有正确设置为DSI 连续时钟模式

总结一下思路:

1,对比出现问题之后,port1上的相关寄存器(所有寄存器),找出差异点

2,发现大部分异常集中于clk相关寄存器

3,查看clk相关的配置,发现superframe使用dsi参考时钟时,一定要设置为连续DSI clk

4,确认SOC/ser是否都设置成了连续时钟

5,SOC可以通过配置设置,通过寄存器确认

6,  ser通过寄存器设置(此时由于TI手册编写错误,设置是错误的),通过示波器确认是否设置成功

7,保证SOC/SER都是正确设置的,问题解除

Background

当前系统为了满足实现一机多屏的需求,比较常见的使用了superframe/split mode这种方式来实现分屏。大致原理如下,SOC侧输出一幅较大的图像画面(superframe),然后在941侧进行切分为左右两个画面,分别通过port0(DOUT0)、port1(DOUT1)经FPD-Link III发送到解串器上(948 Des)达到实现分屏目的.

汽车行业中对于设备元器件的温度范围要求是-40°~120°,在这个温度区间内能正常工作的元器件可以称为符合车规级要求的元器件。同样941作为车规级芯片,也应该能够满足这个要求. 

Symptom

在测试过程中发现,在温度还未到达-40°之前,所有的板子的port1口都会出现没有图像输出的现象,而port0口输出则正常.

  • 出现问题之后,重新上下电整个板子,无法使得问题复归
  • 出现问题之后,单独对941 reset,重新初始化941,无法使得问题复归
  • 出现问题之后,不管对941 or 948 写入test pattern都没有任何输出(使用dsi参考时钟)
  • 出现问题之后,单独对941 reset,使用941内部clk产生 teset pattern,可以正常输出test pattern

Analysis

主要怀疑点

从DSI信号传输来看,整个传输链条分为下面几个部分:

  1. 8155 → 941
  2. 941 internal
  3. 941 → 948

对于怀疑点1,其实很容易排除,因为系统输出的是一张superframe,对于8155来说就是一张比较大的画面,如果这段出现问题,那么port0也应该无法正常显示。

对于怀疑点2,主要涉及到941硬件问题,以及941内部寄存器配置,所以是重点调查的方向

对于怀疑点3,进行交叉验证之后,可以直接排除(把port0、port1调换)

怀疑点分析

拆分怀疑点2,大致可以分为:

  • 软件方向
    • 941寄存器配置,重点调查的方向
  • 硬件方向
    • 941外围硬件问题
      • MODE SEL问题, 硬件工程师更换过各种MODE,但是无效果,问题依旧
      • 时钟问题,尝试使用外部晶振作为时钟源,但是无法匹配941要求
    • 941芯片本身问题

问题前后寄存器对比

在发生问题前后我们都dump了整个941 main register,可以参考文件port1_after.txt port1_before.txt

主要差异点及分析如下:

Part 1

 0x0A: This indicates that a CRC error occurred during the I2C read/write process.

0x0C: Indicate that pixel clock is not detect on port1

Part 2

 0x58: Indicate that Line Video Error

0x5A:indicate that DSI Frequency is NOT Stable AND No DSI Clock Detected for selected port.

0x5F:Indicate that NO DSI Pixel Frequency.

Part 3

 0x6D:BCC error relate to I2C read/write

Part 4

 0xC4:

0xC5:

0xC7:

There are No description for these registers on DS90UB941AS-Q1.pdf.

分析结论

从寄存器对比来看,问题比较有可能来自于DSI的时钟.

Review register configuration on 941

当前我们对941的寄存器配置如下:

0x01,0x08,      //Disable DSI
0x1E,0x01,      //Select FPD-Link III Port 0
0x4F,0x0C,      //Set DSI_CONTINUOUS_CLOCK, 4 lanes, DSI Port 0
0x5B,0x07,      //Force Splitter mode
0x56,0x80,      //Enable Left/Right 3D processing to allow superframe splitting
0x1E,0x02,      //Select FPD-Link III Port 1
0x4F,0x0C,      //Set DSI_CONTINUOUS_CLOCK, 4 lanes, DSI Port 1
0x5B,0x07,      //Force Splitter mode
0x56,0x80,      //Enable Left/Right 3D processing to allow superframe splitting
0x32,0x80,      //Set the line size to 1920(LSB)
0x33,0x07,      //Set the line size to 1920 (MSB)
0x1E,0x01,      //Select FPD-Link III Port 1
0x36,0x00,      //Set crop start X position to 0 (LSB)
0x37,0x80,      //Set crop start X position to 0 (MSB) and enable cropping
0x38,0x7F,      //Set crop stop X position to 1919 (LSB)
0x39,0x07,      //Set crop stop X position to 1919 (MSB)
0x3A,0x00,      //Set crop start Y position to 0 (LSB)
0x3B,0x00,      //Set crop start Y position to 0 (MSB)
0x3C,0xCF,      //Set crop stop Y position to 719 (LSB)
0x3D,0x02,      //Set crop stop Y position to 719 (MSB)
0x1E,0x02,      //Select FPD-Link III Port 1
0x36,0x00,      //Set crop start X position to 0 (LSB)
0x37,0x80,      //Set crop start X position to 0 (MSB) and enable cropping
0x38,0x7F,      //Set crop stop X position to 1919 (LSB)
0x39,0x07,      //Set crop stop X position to 1919 (MSB)
0x3A,0x00,      //Set crop start Y position to 0 (LSB)
0x3B,0x00,      //Set crop start Y position to 0 (MSB)
0x3C,0xCF,      //Set crop stop Y position to 719 (LSB)
0x3D,0x02,      //Set crop stop Y position to 719 (MSB)
0x40,0x04,      //Select DSI Port 0 digital registers
0x41,0x05,      //Select DPHY_SKIP_TIMING register
0x30,0x01,  //Disable port1 remote interrupt due to we use same hw panel for touch interrupt
0x42,0x3C,      //Write TSKIP_CNT value for 300 MHz DSI clock frequency
0x01,0x00,      //enable DSI

The TI team didn't provide a split mode specific configuration, but we found a example code from Splitter Mode Operations With the 941.pdf.

TI手册里面并没有给出具体如何配置split mode,但是可以从文档 Splitter Mode Operations With the 941.pdf 中找到一个示例配置.

从新审视我们的配置代码之后,我们发现了一个明显的问题:

From the description of 0x56:

当前我们使用的是DSI 参考时钟作为941的时钟源,所以 BRIDGE_CTL:DSI_CONTINUOUS_CLK必须要设置,但是配置中对于0X4F的配置却是0x0c:

但是这里的寄存器描述并没有告诉我们如何设置enable  DSI CONTINUOUS CLK(到底是bit 7 = 1 means Continuous clock or bit 7 = 0 means Continuous clock?)

为此我们在e2e.ti.com上提了一个case,同时ti也及时回答了我们的问题:

 Solution

设置0X4F寄存器为0X8C来enable DSI CONTINUOUS CLOCK.

需要注意的是,SOC侧的DSI输出也必须设置为连续时钟模式.在8155上你可以通过读取寄存器HWIO_DSI_0_CPHY_MODE_CTRL_DLN0_CONTINUOUS_CLK_MODE_EN_BMSK 位来确认,或者你可以在QNX侧的驱动中设置sDeviceConfig.bEnableClkLaneHighPwrMode = TRUE来保证开启DSI连续时钟输出.

8155上DSI连续时钟的寄存器是:HWIO_DSI_0_LANE_CTRL_ADDR.

在8155 android 平台或者单linux平台上,可以通过配置dts中的qcom,mdss-dsi-force-clock-lane-hs来开启连续时钟模式.

如何确认DSI输出的时钟是否为连续时钟:

CONTINUOUS CLOCK(probing on DSI0_CLKP)

NON-CONTINUOUS CLOCK sample (probing on DSI0_CLKP)



 

MIPI CSI-2笔记(2) -- 物理层Physical Layer CSI-2 lane管理层和D-PHY或C-PHY物理层连接。需要注意的是链路两端的接口必须要匹配:D-PHY发送器和C-PHY接收器并不能工作,反之亦然。 阅读详情

相关推荐

从 sensor 输出数据到 SOC mipi 接收

mipi CSI-2 协议是怎样的?sensor 的数据到底是怎样通过 mipi 传输到 SOC 的,本文一起学习 mipi CSI-2 协议。

chengwei_peng 1万+

TI DS90UB941内部时钟输出test pattern的方式

通常指的是测试画面,指的是由视频源输出单色/条纹/方格图像用以确认显示是否正常.下图是test pattern中的一种。

kill150的专栏 2913

RK3568平台 mipi csi接口_rk3568 mipi摄像头

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2301_82244623的博客 2084

LCD MIPI解析

MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写。MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。已经完成和正在计划中的规范如下:其中MIPI—DSI是一种Lane可扩展的接口,1个时钟Lane/1-4个数据Lane  • DSI兼容的外设支持1个或2个基本的操作模式:    • Command Mode...

ctx_ubuntu的博客 6462

MIPI的 DS90UB941 DSI 接口和 DS90UB940 CSI-2 接口的时钟频率计算

12倍关系(DSI):适用于常规 RGB 数据的串行传输,每个PCLK周期内的24位数据分配给多条数据线传输。14倍关系(CSI-2):考虑到额外的数据控制位,CSI-2 传输的数据比DSI更多,因此乘以14。这两种乘数反映了在不同的串行接口中,为了保持传输效率和数据完整性,所需的时钟频率调整。理解 MIPI DSI 接口中时钟频率的计算,可以从数据传输和时钟频率的关系来详细讲解。我们来逐步解释这个计算过程。

weixin_43199439的博客 1425

【fpdlink显示】DS90UB948关于941连接948 GPIO调试问题

1. 前言 使用一个941连接2 948显示: 941的GPIO0/1/2/3到前948的GPIO0/1/2/3和941的D_GPIO0/1/2/3到948的GPIO0/1/2/3。 设置gpio3输出,则941的D_GPIO3设置高,而948的gpio3设置不高; 但设置gpio3输入后,看到941的D_GPIO3跟随948的gpio3变化。 2. 原理图连接 3. 测试代码 static int du90ub941_enable_port(struct goodix_ts_d

jzwjzw19900922的博客 2555

csi mipi信号解析

1. 传输模式 LP(Low-Power) 模式:用于传输控制信号,最高速率 10 MHz HS(High-Speed)模式:用于高速传输数据,速率范围 [80 Mbps, 1Gbps] per Lane 传输的最小单元为 1 个字节,采用小端的方式及 LSB first,MSB last。 2. Lane States LP mode 有 4 种状态: LP00、LP01(0)、LP10(1...

chengwei_peng 4万+

MIPI接口调试经验总结

在调试MIPI(Mobile Industry Processor Interface)接口的过程中,理解其规范、协议及物理接口定义至关重要。以下是MIPI接口调试中的一些关键问题和建议。在调试MIPI(Mobile Industry Processor Interface)接口时,深入理解其规范、协议及物理接口定义至关重要。以下是MIPI接口调试中的关键问题、建议以及相关详细例子。

weixin_43199439的博客 3854

MIPI时钟的连续模式和非连续模式

MIPI时钟的连续模式和非连续模式各有优缺点。连续模式提供了稳定和可预测的时钟信号,但可能导致更高的功耗;而非连续模式通过在有需要时提供时钟信号来节省功耗,但可能会引入一些延迟。在选择使用哪种模式时,需要根据具体的应用场景和需求进行权衡。例如,对于需要实时性能和稳定性的应用,连续模式可能更合适;而对于需要优化电池寿命的移动设备,非连续模式可能更理想。

ISP行业的忠实粉丝 4271

学习记录-Simpack生成车轮不圆的几种示例

单阶、多阶和实测车轮多边形的添加教程

weixin_51965897的博客 3706

Buck电路中自举电容串联小电阻的作用

在Buck电路中,自举电容(Cboot)驱动高边MOSFET时,因寄生电感和电容会形成LC谐振回路,导致SW节点高频振铃,引发EMI问题。串联小电阻(Rboot)可引入阻尼效应,抑制振铃、改善波形和EMI性能,但会略微增加开关损耗。设计时建议预留可调电阻位(2Ω~20Ω),根据实测结果平衡效率与系统稳定性,提升电源可靠性。这一措施是优化开关电源EMC的常见实践。

硬核科技 625

MIPI简介

MIPI协议简介,工作模式

小菜菜13的博客 9204

从零开始的 AI Infra 学习之路

AI Infra(AI 基础设施)是指为上层的 AI 算法应用提供支持的 AI 全栈底层技术,通过合理利用计算机体系结构,可以实现 AI 计算的加速和部署。AI Infra 主要包括以下内容:AI 训练框架 & 推理引擎;AI 编译 & 计算架构;AI 硬件 & 体系结构。参考资料:;。

AI Infra / LLM / 软件开发 3万+

DBI接口与DPI接口与DSI接口

(1)DBI接口        A,也就是通常所讲的MCU借口,俗称80 system接口。The lcd interface between host processor and LCM device list as below,The LCM driver will repeated update panel display。MCU借口通过并行接口传输控制命令和数据,并通过往LCM模组自带的

zhandoushi的专栏 4万+

飞书多维表格+影刀RPA:我如何用3个指令搞定每周的销售数据自动汇总(附完整配置截图)

本文详细介绍了如何利用飞书多维表格和影刀RPA实现销售数据的自动化汇总,通过三个核心指令(建立链接、列出记录、更新记录)简化繁琐的手工操作。文章包含完整的配置截图和实战指南,帮助用户快速部署自动化流程,提升工作效率。

weixin_29273849的博客 285

微信小程序视频内容服务类目审核不过?绕过审核的两种思路!

虽然不推荐绕过官方审核,但在实际项目中,总有一些特殊情况:比如,最近开发的小程序涉及视频播放,提交审核时,被官方要求补充“教育服务 - 在线视频课程”类目。但我们的内容只是车辆使用介绍,并非教育课程,无法提供相应资质。该怎么办?很多开发者发现,小程序开发不是最难的,审核才是最难的。 微信为了规避法律风险,要求某些功能必须提供资质。例如:然而,并不是所有公司都能轻松申请到这些资质,甚至有些资质根本不适用于我们的业务,导致审核卡住,无法上线。就像我遇到的这个问题,官方要求我们补充“在线视频课程”类目,但实际业务

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3244

Investigation and Analysis of the Low Temperature Black Screen Issue with DS90UB941

In order to meet the demand for multi-screen display from a single machine, the current system commonly uses the superframe/split mode to implement split screens. The general principle is as follows: the SOC side outputs a larger image (superframe), then t

kill150的专栏 423

LeRobot 宇树人形机器人 G1 部署 GR00T 运动策略

本文详细介绍了Unitree G1人形机器人的完整设置流程。首先通过以太网连接机器人并进行SSH访问,然后配置WiFi网络实现无线连接。在机器人端安装LeRobot软件并运行服务器程序,最后在控制端配置IP地址并运行GR00T移动控制系统。指南涵盖了29自由度和23自由度版本G1机器人的配置方法,支持通过WiFi进行远程策略部署,提供双足行走与平衡控制功能,并详细说明了遥控器操作方式。

2506_90492529的博客 2172

液晶接口系列——MIPI之DSI时钟的计算和常见概念区分

文章目录总述时钟计算液晶基础时钟概念DSI时钟计算DSI的“模式”概念区分液晶屏的模式COMMAND模式和VIDEO模式VIDEO屏的三种模式数据传输HS MODE之间的LP MODE总结 总述 在上一篇DSI协议协议讲解后,相信很多人还是云里雾里,因为一个是概念太多,另一个是纯理论,没有结合实际项目分析,难以让人有深刻的理解。看完本篇章依旧会云里雾里。但是还是要讲。本篇章将讲述DSI协议的时钟计算和常见概念区分,结合实际的开发过程,把MIPI时钟的意义、计算方式以及DSI协议中的几个容易混乱的概念进行区分

carolven的博客 2万+

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1382

超级全的PCB LAYOUT高速信号走线指南——简化应用版

在PCB Layout中,几乎涵盖了所有的高速信号走线指南。包括了TF/SD、HDMI、LVDS、DVP、eDP、MIPI、USB2.0、USB3.0、MAC、BT.1120、PCIE高速信号等等。此版本为简化版。

bhxc809751502的博客 8548

MIPI DSI 驱动需要做哪些事情?

1、mipi dsi host init 1、set escape clock frequency = 20Mhz ( 2、dsi_dpi_config 、 display mode config 3、DSI_PCKHDL_CFG 4、dsi video mode config(DSI_VID_MODE_CFG) 5、dsi video packet config (DSI_VID_PKT_SIZE) 6、dsi command mode config (DSI_TO_CNT_CFG、DSI_B

qq_40629752的博客 1412

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

高通的LCD驱动

1、关键字: MDSS : Multimedia Display sub system DSI: Display Serial Interface qcom,mdss-dsi-force-clock-lane-hs; // faulse :clock每帧回lp11 ture: clock不回 qcom,mdss-dsi-hfp-power-mode; ...

jinron10的专栏 3311

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

高通LCD连续时钟修改为非连续时钟

一般默认的时钟都是连续时钟,但是有些情况下需要改为非连续时钟。 连续时钟: 非连续时钟: LK修改: 修改hfp的值,增大(多试几次看,修改到屏幕显示正常,修改不对会闪屏) static struct panel_resolution xxx_video_panel_res = { 800, 1280, hfp, 40, 20, 0, 16, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 修改非连续模式hfp-power-m

weixin_42432281的博客 1056

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

MIPI 打怪升级之DSI篇

如果外设需要额外的时钟来推进其逻辑状态,通过顺序缓冲区移动数据,或类似的,可能需要在 LP 传输中添加“虚拟”数据字节以实现状态机的前向进程或推进数据通过时序逻辑。在 DSI 链路的发送端,并行数据、信号事件和命令会在协议层中转换为数据包。由前面的结构图可知,底层为协议层将数据发给PHY层,但是协议层和 PHY 层之间没有握手,一旦传输开始,协议层就可以限制进出 PHY 层的数据传输。在PHY层之上有一个通道管理层,在发送端,负责数据的分发到每个 Lane,而在接收端,负责将多个 Lane 的数据合成。

joanna_xiao的博客 3128

MIPI D-PHY 理解

通道支持高速(HS)和低功耗(LP)两种工作模式。HS模式以低压差分信号传输高数据速率,而LP模式则以单端信号实现低功耗。HS 模式下采用低压差分信号,功耗较大,但是可以传输很高的数据速率(数据速率为 80M~4.5Gbps),支持 100mV 到 300mV 的电压范围;LP 模式下采用单端信号,数据速率很低(<10Mbps),但是相应的功耗也很低,支持0V到1.2V信号电平。上图中HS模式就是方波的 低脉冲期间,需要将低脉冲放大看,就可以看到低脉冲上的摆动了,见上面的第二张图。

qq_40642828的博客 1650
上一篇: Investigation and Analysis of the Low Temperature Black Screen Issue with DS90UB941
下一篇: 高通hypervisor display框架解析
norlan_jame
博客等级 码龄16年 4567粉丝 63原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值