MIPI DSI的linux kernel驱动原理

2023-11-19

为了点亮一块MIPI屏幕,我们除了要了解MIPI DSI的工作原理之外,大前提是要了解整个MIPI DSI图显系统的组成,更需要清楚点亮一块MIPI屏幕需要做哪些事情。

本文会捋顺各个环节所实现的功能以及基于RK3399来分析各个环节实现的原理和注意事项。

1. MIPI DSI图显系统组成

MIPI图显系统的硬件组成如下图表示,其涵盖了数据以及控制信号的数据通路。

MIPI DSI图显系统组成

图显处理器通过DPI接口将像素数据传输到MIPI DSI Host,MIPI D-PHY作为显示屏和DSI Host之间由物理媒介,将编码后的像素数据发送到MIPI显示屏。

对于MIPI DSI显示屏而言,无需MIPI信号转换的称之为panel,内部有数据信号转换桥片的称之为bridge。

整个MIPI图显系统除了基本的像素数据信号外,为了使整个显示系统能够正常工作,还包含其他与显示屏相关的控制信号,包括显示屏内部IC配置、显示屏背光配置、显示屏的复位和上电配置。

对于点亮一块MIPI屏幕而言,重中之重是要正确的配置显示屏参数,配置方式主要有如下3种:

  • I2C或SPI等总线配置
  • 显示屏内部集成的MCU完成配置
  • MIPI DSI DCS初始化序列

通过PWM来实现MIPI屏幕的背光控制,使用GPIO完成显示屏的复位、上电的控制。

在设备树中定义MIPI DSI图显系统的联结关系。

以RK3399为例,其提供

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

MIPI DSI的linux kernel驱动原理 的相关文章

  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 如何查找哪个 Yocto 项目配方填充图像根文件系统上的特定文件

    我经常与 Yocto 项目合作 一个常见的挑战是确定文件为何 或来自什么配方 包含在 rootfs 中 这有望从构建系统的环境 日志和元数据中得出 理想情况下 一组命令将允许将文件链接回源 即配方 我通常的策略是对元数据执行搜索 例如gre
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 检查已安装的软件包,如果没有找到则安装

    我需要检查已安装的软件包 如果未安装则安装它们 RHEL CentOS Fedora 示例 rpm qa grep glibc static glibc static 2 12 1 80 el6 3 5 i686 如何在 BASH 中进行检
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https

随机推荐

  • ABAP动态编程-动态生成报表、动态屏幕

    目录 前言 一 动态生成报表并调用 二 动态生成屏幕并调用 总结 前言 本文主要讲述ABAP编程中根据逻辑自动生成报表及屏幕 依托语句GENERATE DYNPRO 的实现示例及简单说明 一 动态生成报表并调用 代码示例 Create re
  • Map对象以及作用域

    首先我们要明白什么键值对 键值对 key value 顾名思义 每一个键会对应一个值 例 a 身份证号和你本人是绑定的关系 每一个身份证 键 会对应一个人 值 b 登录微信和游戏 需要输入手机号验证身份 手机号码 键 对应接收用户 值 每个
  • core_cm3.h文件报错问题

    D Software Keil5 ARM PACK Keil STM32F1xx DFP 2 1 0 Device Include stm32f10x h 483 error 5 cannot open source input file
  • mysql批量插入数据

    比较两种批量插入数据的方法 差距不是一般的大 方法一 最笨重的方法 一条一条的插入 sql语句如下
  • 假定CSomething是一个类,执行下面这些语句之后,内存里创建了____个CSomething对象。...

    CSomething a CSomething b 2 CSomething c 3 CSomething ra b CSomething d b CSomething pA c CSomething p new CSomething 4
  • Python自动化测试之异常处理机制知识讲解

    一 前言 今天笔者还是想要讲python中的基础 主要讲解Python中异常介绍 捕获 处理相关知识点内容 只有学好了这些才能为后续自动化测试框架搭建及日常维护做铺垫 废话不多说我们直接进入主题吧 二 异常处理合集 2 1 异常处理讲解 在
  • 四川百幕晟科技有限公司:抖音名称最多多少字?

    在抖音上 用户可以为其帐户选择昵称 该昵称显示在用户的个人资料中 不过 很多人好奇 一个抖音昵称到底能有多少个字 本文将深入探讨抖音昵称长度限制以及一些最吸引人的昵称示例 1 抖音昵称长度限制 抖音昵称的长度限制是一个相对灵活的规定 具体而
  • android判断一个Activity是否处于栈顶

    实际开发中我们需要很多情况需要判断某个activity是否位于栈顶 也许会给新的小伙伴带来困扰 那么直接上代码吧 也没几行 判断某activity是否处于栈顶 return true在栈顶 false不在栈顶 private boolean
  • Charles连接手机移动端的基本使用及教程

    一 Charles基本使用 1 打开 Help Local IP Address 查看本机的IP地址 2 设置手机 手机需要连接到和电脑在同一网络的 WIFI 依次打开 设置 无线局域网 点击已选wifi最右边的感叹号 填好以后 返回 打开
  • MySQL 8 group by 报错 this is incompatible with sql_mode=only_full_group_by

    文章目录 sql mode配置 ONLY FULL GROUP BY STRICT TRANS TABLES NO ZERO IN DATE NO ZERO DATE ERROR FOR DIVISION BY ZERO NO AUTO C
  • linux的设计模式属于,linux下GUI设计模式的有效性

    考虑到你在评论中如何解释你的应用程序 同时完全支持Qt 我也建议你考虑一下将你的应用程序变成一个web应用程序可能带来的许多好处 在 既然你说它是一个客户端服务器应用程序 它至少需要 至少 本地网络连接 所以通常针对web应用程序提出的第一
  • 多人实时对战网络同步方式研究

    写在开头 已经研究生毕业快一年半了 一直在一家游戏公司做客户端研发 至于这篇文章讲的却是服务端的东西 主要是因为以前一直没想写博客 学到的东西也一直记在本子上就得了 本人喜欢有剧情的东西 像RPG游戏 仙剑爱好者 有剧情的电视 电影 还有竞
  • 华为OD机试真题 Java 实现【开心消消乐】【2023 B卷 100分】

    目录 一 题目描述 二 输入描述 三 输出描述 四 Java算法源码 五 效果展示 1 输入 2 输出 3 说明 一 题目描述 给定一个N行M列的二维矩阵 矩阵中每个位置的数字取值为0或1 矩阵示例如 1 1 0 0 0 0 0 1 0 0
  • en结尾的单词_形容词加en前后缀变动词的英语单词

    1 hreat threaten恐吓 2 strength strengthen 使 变长 加强 巩固 使强大 3 loose loosen 使放松 4 tight tighten 使变紧 5 weak weaken 削弱 使 变弱 6 w
  • FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一 验证与门 二 验证与非门 三 验证二选一数据选择器 四 验证2 4译码器 五 验证半加器 六 验证全加器 0 初始化定义 1 第一个半加器 2 第二个半加器 3 得到最终进位Co 代码 0决定与 1决定或 一 验证与门 只要有一个
  • flask + 操作Mysql数据库

    安装flask sqlalchemy pymysql模块 1 pip install flask sqlalchemy pymysql Flask SQLAlchemy的介绍 1 ORM Object Relationship Mappin
  • JS字符串替换函数全部替换方法

    color olive JS字符串替换函数 Replace 字符串1 字符串2 1 我们都知道JS中字符串替换函数是Replace 字符串1 字符串2 但是这个函数只能将第一次出现的字符串1替换掉 那么我们如何才能一次性全部替换掉了 将上面
  • 程序员水平分级

    导读 近日 whattofix com刊登了一篇 DanielMarkham的文章 What Level Programmer Are You 文内将参差不齐的程序员按照技术水平分为从 只读 到 上帝 共十一个阶段 以帮助广大程序员找到自身
  • 结队练习源代码

    两个人结队练习源代码 我和同伴都不太适应 两人的习惯不同 在很多方面出现了分歧 但 结对编程还挺有意思的 感觉挺新鲜的 之前都没有这样过 我们轮流编程和监督 两人都参与到整个编程中 我编程时 她会指引编程的方向 提醒我出现的错误 像参数名
  • MIPI DSI的linux kernel驱动原理

    为了点亮一块MIPI屏幕 我们除了要了解MIPI DSI的工作原理之外 大前提是要了解整个MIPI DSI图显系统的组成 更需要清楚点亮一块MIPI屏幕需要做哪些事情 本文会捋顺各个环节所实现的功能以及基于RK3399来分析各个环节实现的原