首页 » 科学 » 高能炫技爱折腾!奥迪Q5车机加装AV视频输入可玩游戏“坦克大年夜战”_存放器_暗记

高能炫技爱折腾!奥迪Q5车机加装AV视频输入可玩游戏“坦克大年夜战”_存放器_暗记

乖囧猫 2024-11-19 02:54:05 0

扫一扫用手机浏览

文章目录 [+]

在北京大柳树鬼市买的七寸DVD导航车机,20元。
买回来接电源开机,创造卡在logo不动,奥迪Q5的。
估计是第三方机器

找遍网络没找到这款机器的资料,当时买的时候以为是安卓系统,有视频等输入,结果创造竟然是wince系统,视频输入是lvds数字式的。

高能炫技爱折腾!奥迪Q5车机加装AV视频输入可玩游戏“坦克大年夜战”_存放器_暗记 高能炫技爱折腾!奥迪Q5车机加装AV视频输入可玩游戏“坦克大年夜战”_存放器_暗记 科学

心想,翻车了呗!
拆开看了一下, 还是比较繁芜,主控赤色核心板,其他ic一大堆。

高能炫技爱折腾!奥迪Q5车机加装AV视频输入可玩游戏“坦克大年夜战”_存放器_暗记 高能炫技爱折腾!奥迪Q5车机加装AV视频输入可玩游戏“坦克大年夜战”_存放器_暗记 科学
(图片来自网络侵删)

内部情形

大致梳理了一下机器的ic和构造。
惊喜的创造,TFT屏幕驱动芯片tw8816支持仿照旗子暗记输入。
仿照旗子暗记支持复合视频,色差,RGB,可惜没有引出。

查了一下芯片的pdf,该当做适当的设置,就可以改成av输入旗子暗记了

大致剖析了一下电路构造。
该机分两块电路板,下面一块是soc核心板和tft驱动(B板),上面一块是各种电源,音频,单片机,接口(A板)等等。

lvds串行数字旗子暗记从A板输入,然后接到B板通过max9218,将lvds转成并行dtv数据,然后接入到tw8816的dtv数字电视并行接口中。
tw8816再处理成tft lcd的驱动旗子暗记。

A板

B板

个中核心板的wince系统直接可以驱动lcd,tw8816的lcd驱动和核心板的lcd驱动通过两片fst16233进行切换。
也便是用户选择是显示lvds的视频还是wince的视频。

为了让屏幕显示tw8816的内容,直接短接fst16233旗子暗记切换引脚到地,逼迫选择从tw8816的旗子暗记作为lcd驱动

接下来结合芯片资料,摸索着焊接了i2c接口线和av复合视频输入线,并在视频输入上串上了75欧姆阻抗电阻和耦合电容,接上了莲花头,找了台红白机作为视频旗子暗记源

引出的单片机和莲花头:

由于tw8816中有大量关于tft lcd屏幕参数的设定,然而我并不想详细理解。
既然机器能开启并显示奥迪logo,就解释tw8816中的各种设置是OK的。
要做的便是读出来就行了

TW8816大概有几百个寄存器,分成256两页:

通过跑线路,tw8816的i2c总线来自于A板上的一颗STM8单片机,它对tw8816进行了寄存器的设置事情

用接口神器“Bus Pirate”接在tw8816的i2c接口上,然后进入i2c的嗅探模式。
上电的一瞬间,所有i2c上的写入寄存器的操作全部拿下

bus pirate界面:

嗅探到的i2c通讯内容:

用“Bus Pirate”考试测验了一下操作I2C向tw8816的寄存器写入内容,读取内容都没问题。
于是开始参照手册设置一些寄存器的内容,以便能支持仿照旗子暗记输入

通过不懈的努力,终极须要对输入选择,输入旗子暗记格式,各种缩放,边距等寄存器的设置。
终极让接入的av旗子暗记,正常的显示在了屏幕正中

这个时候,A板的唯一的用场便是上面的stm8单片机向B板的tw8816做寄存器设置,以及一些12v转5v。
如果去掉A板,用一片单片机取代,然后直接在B板输入5V该当就可以做到的

为了验证这个想法,须要自己先用分开A板的单片机,手动设置几百个寄存器的值。
看看是否可行

手动设置的事情量太大,这个时候也不可能直接就上单片机编程。
于是就用神器“Bus Pirate”的python库来实现

下图是python环境jupyter-nb的界面:

大概便是用电脑操作“Bus Pirate”,写入所有寄存器的值。
python很方便易用,是俺的紧张编程工具之一。
几下就完成了验证事情。
验证的结果便是,分开了A板单片机,直接通过“Bus Pirate”的i2c向tw8816设置寄存器后,画面可以精确显示。

但过程中有一些插曲,去掉A板后创造背光不亮,结果创造是还有屏幕12V的背光供电掌握,直接接地即可亮屏。
其余便是设置完所有寄存器后还是白屏,折腾一天创造是VGH VGL电压没出来进屏幕。
这个也是受控于A板的,直接找到这部分电压驱动,飞线强行启动。

分开A板和B板的排线:

分开A板后,拆下B板上的核心板和蓝牙模块用不上了:

下一步便是单片机编程了。
程序功能大略,便是写一堆数据到i2c就行了

随便找了一片8脚的pic单片机pic12f675,网上找了一个gpio仿照i2c的程序

把从“Bus Pirate”嗅探到的数据,改成C措辞的格式,编程二维数组。
tw8816的寄存器几百个, 分成两个page。
写到变量page00和page01中。
个中二维数组第一个元素表示寄存器号,第二个是值。
比如const char page00[][2]={ {0x00,0x22},{0x01,0x83},

表示0号寄存器内容0x22,1号寄存器内容0x83

为了让程序都雅(紧张是显摆俺的C措辞功底),用指向二维数组的指针的数组const char (page_buff[])[2]={page01,page00};来进行两页数据循环写入。
这样写可以方便的进行page和额外数据组的添加。

程序紧张部分(由于二维数组指针数组的数据定义很好,以是程序简洁都雅):

一阵调试,烧写,测试,改程序的漫上进程之后。
这片pic单片机开机上电就对tw8816进行设置。
一阵操作猛如虎,画面完美呈现!

所有电路和软件方面的验证事情都OK了,下一步便是装回和改外壳等常规操作了,估计一两天后再进行!
本文完!

感激不雅观看!

浏览更多精彩内容请登录数码之家网站

技能互换请联系原作者

作者:orsonzou

本文来源:数码之家

相关文章

TVS选型指南_电压_电流

图1 常见的 TVS 管类型TVS 是一种二极管形式的限压型过压保护器件。当 TVS 的两极受到反向瞬态高能量冲击时,它能以 10...

科学 2025-01-06 阅读0 评论0

木府,历史沉淀与现代传承的交融之地

在云南省丽江市古城内,有一座历史悠久、文化底蕴深厚的建筑——木府。木府不仅是中国古代建筑的典范,更是中华民族优秀传统文化的载体。本...

科学 2025-01-06 阅读0 评论0

本科生代码,新时代人才培养的引擎

随着我国经济社会的快速发展,高等教育已经进入了一个崭新的时代。在这个时代,本科生代码作为一种创新的人才培养模式,正逐渐成为新时代人...

科学 2025-01-06 阅读0 评论0