当前位置: 首页 > news >正文

全志A133 android10 LVDS幅值调节

一,问题现象

系统使用LVDS接口屏幕,进入系统有些界面会闪,图像抖动;


二,解决办法:

1.调试

调节LCD0的LVDS电压幅度,寄存器地址是0x06511220(具体是在User Manual中的LCD LVDS Analog Register 0),bit19:bit17控制差模电压大小,bit10:bit8控制共模电压大小。

kernel调试命令:

echo 0x06511220 >/sys/class/sunxi_dump/dump&&cat /sys/class/sunxi_dump/dump
echo 0x06511220 0xc1fe0320 > /sys/class/sunxi_dump/write

2.代码固化

参考如下,uboot和kernel都需要修改,然后读取寄存器检查是否设置成功。

diff --git a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd.c b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd.c
index a8335b8072..493e654c64 100644
--- a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd.c
+++ b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd.c
@@ -380,10 +380,10 @@ s32 lvds_open(u32 sel, struct disp_panel_para *panel)if (sel == 0)lvds_combphy_open(sel, panel);
#endif
-               lcd_dev[sel]->tcon0_lvds_ana[0].bits.c = 2;
+               lcd_dev[sel]->tcon0_lvds_ana[0].bits.c = 3;lcd_dev[sel]->tcon0_lvds_ana[0].bits.v = 3;lcd_dev[sel]->tcon0_lvds_ana[0].bits.pd = 2;
-               lcd_dev[sel]->tcon0_lvds_ana[1].bits.c = 2;
+               lcd_dev[sel]->tcon0_lvds_ana[1].bits.c = 3;lcd_dev[sel]->tcon0_lvds_ana[1].bits.v = 3;lcd_dev[sel]->tcon0_lvds_ana[1].bits.pd = 2;
@@ -414,10 +414,10 @@ s32 lvds_open(u32 sel, struct disp_panel_para *panel)if (sel == 0)lvds_combphy_open(sel, panel);
#endif
-               lcd_dev[sel]->tcon0_lvds_ana[0].bits.c = 2;
+               lcd_dev[sel]->tcon0_lvds_ana[0].bits.c = 3;lcd_dev[sel]->tcon0_lvds_ana[0].bits.v = 3;lcd_dev[sel]->tcon0_lvds_ana[0].bits.pd = 2;
-               lcd_dev[sel]->tcon0_lvds_ana[1].bits.c = 2;
+               lcd_dev[sel]->tcon0_lvds_ana[1].bits.c = 3;lcd_dev[sel]->tcon0_lvds_ana[1].bits.v = 3;lcd_dev[sel]->tcon0_lvds_ana[1].bits.pd = 2;@@ -445,6 +445,7 @@ s32 lvds_open(u32 sel, struct disp_panel_para *panel)
#if defined(SUPPORT_COMBO_DPHY)if (sel == 0) {lvds_combphy_open(sel, panel);
+                       lcd_dev[sel]->tcon0_lvds_ana[0].bits.c = 3;} else {lcd_dev[sel]->tcon0_lvds_ana[0].bits.c = 2;lcd_dev[sel]->tcon0_lvds_ana[0].bits.v = 3;
@@ -467,7 +468,7 @@ s32 lvds_open(u32 sel, struct disp_panel_para *panel)}
#else{
-                       lcd_dev[sel]->tcon0_lvds_ana[sel].bits.c = 2;
+                       lcd_dev[sel]->tcon0_lvds_ana[sel].bits.c = 3;lcd_dev[sel]->tcon0_lvds_ana[sel].bits.v = 3;lcd_dev[sel]->tcon0_lvds_ana[sel].bits.pd = 2;

3. 检查

读取寄存器检查值是否为所设值

echo 0x06511220 >/sys/class/sunxi_dump/dump&&cat /sys/class/sunxi_dump/dump
http://www.lryc.cn/news/474803.html

相关文章:

  • 弃用 RestTemplate,来了解一下官方推荐的 WebClient !
  • 西圣、倍思、品胜电容笔孰强孰弱?多维度对比测评三款平替电容笔
  • VS2022配置调试Qt源代码
  • Python 的 Pygame 库来开发一个游戏
  • diffusion model 学习笔记
  • 【C++题解】1967. 输出字符的ascii码
  • Java入门9——类和对象+this+构造方法
  • Django目录结构最佳实践
  • npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  • 后端:Spring、Spring Boot-实例化Bean依赖注入(DI)
  • C++ 数据结构 静态顺序表、动态顺序表。
  • QML旋转选择器组件Tumbler
  • 在工作中常用到的 Linux 命令总结
  • 反射、枚举和lambda表达式
  • Stable Diffusion Web UI 1.9.4常用插件扩展-WD14-tagger
  • java 第19天 Lambda、jdk8.0新方法、Optional
  • 江协科技STM32学习- P31 I2C通信协议
  • 6、liunx目录的功能
  • 挑战Java面试题复习第5天,无人扶我青云志
  • 大规模语言模型:从理论到实践(1)
  • C#如何锁定和解除鼠标及键盘BlockInput
  • Stable Diffusion 3.5发布:图像生成新纪元,多模态AI的突破!
  • MySQL超大分页怎么优化处理?limit 1000000,10 和 limit 10区别?覆盖索引、面试题
  • RabbitMQ 实现消息队列负载均衡
  • 嵌入式linux中HTTP协议原理基本分析
  • thinkphp和vue基于Workerman搭建Websocket服务实现用户实时聊天,完整前后端源码demo及数据表sql
  • 浅谈射频应用
  • SAP(PP生产制造)拆解工单业务处理
  • 《Python游戏编程入门》注-第4章2
  • deque