新闻详情

新闻详情

首页 / 资讯中心 / 详情

BSP调试#11:MIPI DSI(全志T527)

发布时间:2026/9/26 6:49:05来源:尧图网络
BSP调试#11:MIPI DSI(全志T527)
文章说明本合集分享的我当初入门嵌入式 BSP 调试时调试生中第一块板子的原始笔记。调试前见前文《LVDS全志 T527》本文记录全志 T527 平台 MIPI DSI 屏幕从硬件、设备树到显示验证的调过程。硬件设计背光控引脚PI4背光使能引脚PI5件配置显示框架驱动文件bsp/drivers/drm/*背光驱动路径U-Boot./brandy/brandy-2.0/u-boot-2018/drivers/video/pwm_backlight.cKernel./kernel/linux-5.15/drivers/video/backlight/pwm_bl.cPanel驱动路径U-Boot./brandy/brandy-2.0/u-boot-2018/drivers/video/drm/panels/panel-lvds.cKernel./kernel/linux-5.15/bsp/drivers/drm/panel/panel-lvds.c使用内核来调试 LCD 屏。U-Boot 和内核都需要添加 LCD 驱动这样才能快速显示 logo但 U-Boot 不方便调所以可以先关闭 U-Boot 的显示驱动专心调试内核 LCD 驱动调好之后再移植到 U-Boot。这样的另个好处是可以在内核方便地修改 LCD timing——利用 U-Boot 命令的fdt修改 device tree而不需要重烧固件。因此适配屏幕之前可以在brandy/brandy-2.0/u-boot-2018/configs/sun55iw3p1_t527_defconfig中屏蔽如下配置#CONFIG_DISP2_SUNXIyBackLight DTS配背光电源、PWM 使能引确保背光节点状为okay并确认PI4、PI5与原理图一致。Panel DTSmipi_panelmipi_panel: mipi_panel0 { compatible allwinner,virtual-panel; status okay; power-delay-ms 10; power0-supply reg_cldo3; power1-supply reg_dcdc4; power2-supply reg_cldo1; enable-delay-ms 10; reset-gpios pio PJ 19 GPIO_ACTIVE_HIGH; reset-on-sequence 1 10, 0 20, 1 100; reset-off-sequence 0 100; dsi,flags MIPI_DSI_MODE_VIDEO; dsi,lanes 4; dsi,format 0; panel-init-sequence [ 35 00 02 80 8B 35 00 02 81 78 35 00 02 82 84 35 00 02 83 88 35 00 02 84 A8 35 00 02 85 E3 35 00 02 86 88 05 78 01 11 05 14 01 29 ]; panel-exit-sequence [05 00 01 28 05 78 01 10]; display-timings { native-mode timing0; timing0: timing0 { clock-frequency 74871600; hback-porch 48; hactive 1024; hfront-porch 40; hsync-len 48; vback-porch 48; vactive 600; vfront-porch 40; vsync-len 4; }; }; port { panel0_in: endpoint0 { reg 0; remote-endpoint panel_output_0; }; }; }; #### dsi1 dts dsi1 { status okay; pinctrl-0 dsi1_4lane_pins_a; pinctrl-1 dsi1_4lane_pins_b; pinctrl-names active, sleep; ports { dsi1_out: port1 { dsi1_out_panel: endpoint { remote-endpoint panel_input; }; }; }; panel: panel0 { compatible allwinner,virtual-panel; status okay; reg 0; ports { panel_in: port0 { reg 0; panel_input: endpoint0 { reg 0; remote-endpoint dsi1_out_panel; }; }; }; panel_out: port1 { reg 1; panel_output_0: endpoint0 { reg 0; remote-endpoint panel0_in; }; }; }; }; }; #### 其他显示节点 dts dlcd1 { status okay; }; dsi1combophy { status okay; }; vo0 { status okay; };内核置CONFIG_BACKLIGHT_PWMy CONFIG_AW_DRMy CONFIG_AW_DRM_DSIy CONFIG_PANEL_DSI_GENERALy CONFIG_DRMy调试程屏幕调试思路首先配置背光、复位以及屏连接相关引脚先点亮屏幕以排除硬件问题再确认驱动和屏参。关于背光与显示**结论**背光与显示是绑定的。背光驱负责获取和配置 PWM 引脚但不责使能使能动作交给 U-Boot 中的显驱动内核层显示驱动没有使能 PWM 背光的动作只负责获和配置。至于为什么 U-Boot 使能的 PWM 背光到内核仍然保持使能时的驱动实际逻辑还没有完全搞清楚。显示问题在uboot-board.dts增加配置手动高背光和使能发现屏幕有数据但显示仍有题需要进一步调整时钟和屏参。disp 与 drm 屏参转计算由于disp的lcd_hbp hbp hsync、lcd_vbp vbp vsync转关系如下disp 参数drm 参数lcd_ht * lcd_vt * 60clock-frequencylcd_hbp - lcd_hspwhback-porchlcd_xhactivelcd_ht - lcd_x - lcd_hbphfront-porchlcd_hspwhsync-lenlcd_vbp - lcd_vspwvback-porchlcd_yvactivelcd_vt - lcd_y - lcd_vbpvfront-porchlcd_vspwvsync-lenfdt 命令调屏参fdt print /mipi_panel0 fdt set /mipi_panel0/display-timings/timing0 clock-frequency 0x030a32c0 # 51M fdt set /mipi_panel0/display-timings/timing0 clock-frequency 0x04767330 # 74M boot屏参 1效果更差fdt print /mipi_panel0 fdt set /mipi_panel0/display-timings/timing0 clock-frequency 0x0384bb80 fdt set /mipi_panel0/display-timings/timing0 hback-porch 0x032 fdt set /mipi_panel0/display-timings/timing0 hfront-porch 0x03c fdt set /mipi_panel0/display-timings/timing0 hsync-len 0x0a fdt set /mipi_panel0/display-timings/timing0 vback-porch 0xb2 fdt set /mipi_panel0/display-timings/timing0 vfront-porch 0x50 fdt set /mipi_panel0/display-timings/timing0 vsync-len 0x02 boot问题解决最发现是 MIPI 时钟问题前面尝试了很多屏果都不大。最使用示波器发现DSI1-CKP/N有波形。进步排查时钟发现 U-Boot 与内核配置的时钟不同U-Boot 时钟是 51 MHzKernel 时钟是 74 MHz。统一修改为 74 MHz 后显示正。能验证背光测试echoX/sys/class/backlight/backlight1/brightness显示测试查看 DRM 设备ls/sys/class/drm/*花屏清屏试ddif/dev/urandom/dev/fb0ddif/dev/zeroof/dev/fb0调总结调试思路拿到一块屏幕后首先确认硬件电压以及线序。硬件确认无误后接上屏幕查看背光是否点亮背光不亮先解决背光问题然后根据屏幕参数修改 DTS 屏参、复位/使能脚以及时钟并确认具体屏驱及加载情况。最后根据 log 和现象解决题。MIPI 屏需要注意初始化代码相比 LVDS 步骤更多全志平台的显示分为 U-Boot 和内核两个阶段需要同时修改这两个阶段的 DTS。RK 平台显示共用一份屏参因此调试时只需关注内核阶段。排查思路背光不使用万用表对照原理图确认硬件路电压。使用示波器确认 PWM 背光脚是有波形输出并确用户层是否存在且控的背光节点。如果以上两步都没有问题换一块屏幕测试。背光亮但黑屏用示波器抓取时钟波形确认是否有输出如果有换屏测试如果没有继续排查。确认显示链路和图是否正确一般可以通过 log 查看。不同平显示链路和图会有所差具体排查手段参考原厂资料志平台要特别留意 U-Boot。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Python自动化报表生成:从数据提取到邮件分发的高效实践 2026/9/26 7:29:37

Python自动化报表生成:从数据提取到邮件分发的高效实践

好的,我看到你提供了非常完整的“角色与任务定义”,但似乎还没有提供具体的“输入内容”(即:项目标题: [这里需要填写你的标题]项目正文: [这里需要填写项目的详细描述]关键词: [这里需要填写关键词]摘要描述: [这里需要填写一句话…

阅读更多 →
Zabbix集中式监控实战:Windows服务器TCP连接数采集与运维方案 2026/9/26 7:29:37

Zabbix集中式监控实战:Windows服务器TCP连接数采集与运维方案

干运维这些年,服务器监控这事我从最早的脚本巡检一路折腾到集中式管理平台,中间踩过的坑能写满一个笔记本。今天要分享的是我刚落地的一套 V5.0 集中式监控方案。这个版本的核心思路就一句话:所有采集动作都收敛到监控服务器这一台机器上&…

阅读更多 →
从传统ETL到全域数据平台:架构演进、实时集成与湖仓一体实践 2026/9/26 7:29:37

从传统ETL到全域数据平台:架构演进、实时集成与湖仓一体实践

做了十几年数据集成,我越来越觉得ETL这个词已经装不下现代数据平台的复杂度。早年我们谈ETL,就是抽取、转换、加载,三个动词撑起一整套数仓。现在再聊数据集成架构,你得面对实时流、湖仓一体、数据血缘、数据服务化、元数据治理这…

阅读更多 →
Java开发者首选的中间件:Redis从入门到实战全攻略 2026/9/26 7:29:37

Java开发者首选的中间件:Redis从入门到实战全攻略

1. 为什么我把 Redis 列为 Java 学习者第一个必学的中间件做后端开发这几年,我带过不少实习生和转行的朋友,被问得最多的一个问题就是:“Java 基础学完了,Spring Boot 也会用了,接下来到底该学什么才能开始找工作/开始…

阅读更多 →
分布式锁选型与避坑指南:Redis、ZooKeeper、etcd深度对比 2026/9/26 7:29:37

分布式锁选型与避坑指南:Redis、ZooKeeper、etcd深度对比

1. 上篇讲了什么,这篇该重点读哪里如果你手边正同时开着 Redis、ZooKeeper 和 etcd 的文档,再对照着读这篇文章,说明你已经进入了分布式锁的正确状态。我在上篇把分布式锁最基础的东西讲透了,包括它用来解决什么问题、数据库行锁怎…

阅读更多 →
多模态AI安全如何落地?问境AIST打造智能体安全评估闭环 2026/9/26 7:29:31

多模态AI安全如何落地?问境AIST打造智能体安全评估闭环

1. AI安全正在变成“主赛道”,但传统手段已经带不动了1.1 为什么多模态AI把安全问题的复杂度直接拉爆这两年大模型一路从纯文本卷到图文、音视频,再到能自己调用工具、操作软件的AI智能体,整个行业都在追“多模态”这个概念。但说实话&#x…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉