![]() 放暑假了.....躺在床上拿着手机一动不想动..... ![]() 但是开的坑还是要填...... ![]() 几天前发那个预告贴的时候其实对于这块屏幕并没有完全弄明白... 起码屏幕是接在车机主板上的.... 又忙了一晚上..... ![]() 历时四个月零三天.... 这个坑终于完美填上了 ![]() (我会说四个月零三天其实第一天把车机拆了,然后懒了四个月,最后用了两晚上做完了吗 ![]() ![]() ![]() 拆下来的车机显示屏是这样的 背面是排线插座,但是我不用排线了,只用排线座旁边的Testpoint... ![]() 这是接线图。我写的应该很清楚吧? ![]() ![]() 没拆正面的屏蔽罩翻起来看线路,完全是测量+分析+猜测 ![]() 本来画的图是挺漂亮...结果各种缩画质...伤不起 RESET复位脚,低电平有效,没啥好说的。 ![]() SLEEP那个脚,是控制高压电路和灯丝驱动的,接低电平或者悬空,DC-DC就不工作。高电平正常显示。 Serial DATA和Serial Clock是串行数据线和时钟线,这个没有疑问吧。 ![]() 那个Logic Supply是我的猜测。也许是VFD内部逻辑电路的电源。车机上给的是3.29V。你们敢上就用5V,我绝不拦着。 ![]() ![]() ![]() ![]() 这个线没有Testpoint,不好接。不接,在我这里能亮,但缺段,闪烁。我的解释是单片机上拉电阻通过数据线向驱动IC寄生供电。 VCC是屏幕的主供电,大概7-12V都行。车机是12V。 基本上电路要说的就这些。 关于Logic Supply那个脚,我有一个解决方法看图 ![]() 图里那个黑芝麻不是贴片三极管,是SOT-23封装的1117三端稳压器。 ![]() 放大十倍让大家看清楚,这根线的阻焊层已经让我刮开了一点点......线很细....刮开需要耐心....细心.... ![]() 正好三端稳压器焊接在这里。Input接在12V VCC那个测试点上,Output焊在这根线刮开的位置,GND飞了根线,飞到了屏蔽罩的位置。 ![]() 像这样 然后,按我前面那张图把线全部接好 ![]() 像这样 ![]() 把附件HEX文件刷进单片机。我用的是死特惨啊不,STC12C5A60S2 单片机随便做个最小系统就行了。晶体12M,11M都没影响 接线方式是 VCC--→12V电源 GND--→GND SDA--→P1^5 SCL--→P1^7 CS --→P1^2 SL --→P1^1 RS --→P1^0 然后你应该能看到这张图 ![]() ![]() ![]() ![]() 其实程序里面的东西全是用示波器从车机里面反向扒出来的 ![]() 基本上这幅图就看出来了。就是一个串口。串口么,道理都是一样的。 ![]() 网上找了幅时序图改了改,基本情况就是这样的。 既然都一样,当然用IO模拟串口也可,UART模式0也可,SPI也可。 我本来是用的UART,但是后来发现这个是LSB先发,但我用示波器解码的时候选的是MSB。懒得在读一遍,直接换了死特惨的硬件SPI 实际上在上电时屏幕是有初始化动作的,是很长一串命令,上电后用单次触发抓了很多次才抓到。 很长的一段。我抄下来了。其中cs/符号表示CS由低到高在到低。 ![]() 体现在程序里面就是这个函数 ![]() 附件里的示例程序包括三部分:主程序(main.c),串行接口(serialinterface.c),VFD程序(VFD.c) 主程序里面没什么东西。串行接口这里是网上搜来的一个STC SPI的例程,看起来写的不错顺便用示波器验证了一下符合要求就用在这里了,VFD.c里面是VFD驱动相关的函数。 ![]() 这是显示图片的那一部分。注意数据的格式是从上到下,LSB first,一次送完一帧。VFD里有显存,刷新是自动的,不需理会。其实这里应该是i<2024,因为是253*63的分辨率,屏幕不会理会列上多的那一位,所以应该是253*64/8=2024字节 Img2Lcd取模的示例 ![]() 因为目的是驱动显示,所以我只写了这么多,剩下的,大家自己琢磨去吧 ![]() ![]() 2015/8/6补充[重要] 有朋友下载工程包后发现无法编译通过 在重新审读工程文件之后 发现在Serialinterface.h文件中有 #include<datatype.h>; 语句引用到了外部文件"datatype.h” 此文件为本人私用的对于某些变量名的缩略语,放在编译器的/KEIL/C51/INC目录下,不在工程目录下,因此未被上传。因为这个原因,工程文件在其他电脑上不做处理直接编译将报错。 在整个工程中,用到了此文件中如下两行: typedef unsigned char uchar; typedef unsigned int uint; 可删除工程中包含的所有“#include<datatype.h>;”语句,并在开头加上上文的两个定义即可 这是我的疏忽。对因此给坛友带来的不便深表歉意。 (责任编辑:admin) |