• cubieboard 通过VGA点亮电脑屏幕笔记


    前题:由于公司某些方面的需要,于是就开始尝试了来通过VGA输出--因为不可能每个地方都是高清电视,这是其一;如果要买一个HDMI转VGA的话,成本上就有所上升:反正吧,各种理由,都觉得直接通过VGA输出是必须有的。当然,cubieboard本身也支持VGA输出,只是需要自己动手搞搞罢了。

    --------------------------

    硬件方面的准备:

    VGA的相关资料:

    1,首先VGA分为公头和母头,一般电脑屏幕是公头,那么就得自己准备母头,公母一配对,才会有下文。那么下面是VGA的线序图:

    VGA一共15个引脚,从宽到窄。每个引脚定义如下图:

    我们这里需要的是图形的输出,和图形的颜色的输出。这包括两方面的内容:

    a,图形的输出--图形的横坐标和纵坐标的输出,然后才会组成一幅图:于是这里需要行同步和场同步,当然也有叫帧同步的。

    b,图形的颜色输出--RGB三原色,然后三原色进行混杂就可以组成各种颜色了。

    由上面两点可以知道,我们需要VGA的1、2、3、13、14这几个引脚;同时,因为接地的原因,VGA上的所有的地引脚都要接上,于是6、7、8、10都需要接上地。当然,论坛上有的图中把5和11也接上的,这个不知道基于什么理由。

    --------------

    cubieboard板子上的接法:

    VGA是接到板子上的引出引脚上的,也就是那两排48根引脚,它们似乎都是直接从A10的芯片上引出来的,具体可参考如下链接的说明:

    http://linux-sunxi.org/Cubieboard

    这两排插针引脚的定义,上面都已经说了,在网口和USB之间的是U15,在SATA口旁边的是U14。而VGA的行和场的接线是接到U14的27号脚和30号脚上的;RGB和RGB的地线等都是接到U15上的,参看下面截图<来自官网>:

    那么接下来就开始连接,这个连接成功的过程我花了两天的时间,因为开始不知道是什么原因,到底是软件的原因还是硬件的原因。

    开始我是直接按上面的资料连接,使用的是杜邦线,直接插上去就算了,然后把软件修改好以后,用tf卡启动,屏幕不亮。于是怀疑是我的系统某些参数设置的不对,于是修改,还是不行。最后拿了另外一块扩展板来试,这个系统是可以从VGA输出的,那就确定了系统参数没问题,是接线可能有问题。于是按照论坛上提供的资料来做,在U14和VGA之间加了一个74hc04的芯片,然后在RGB和地之间各自加上R75的电阻,再然后怕插线不稳,索性就把它们直接焊接起来,这下可不能怪线的接触不良了。

    但是事情还是挺纠结的,VGA依然不可以输出。因为论坛上,网上已经有成功的案例了,他们有的是加了一些芯片,有的是直接连接的,不管怎么样,都已经成功输出了,最后犹豫了两个小时候,果断的拿掉74hc04芯片然后VGA和U14直接连接,保留RGB下面的电阻,接上一试,成功了,能通过VGA输出了。

    --------------

    接线图如下,是别人的:

    这个图上的VGA母头的13 和14是接到了U14的27和30两个引脚了,当然,这里它是加了芯片的,也成功了。这个图的来源可参考下面链接:

    http://www.cubieforums.com/index.php/topic,104.0.html

    ------------------------------------

    下面是系统参数需要修改的部分:<默认是HDMI输出>

    方法一,如果是lubuntu的话,直接把tf卡插到电脑上,会弹出第一分区的67M,在这67M里有一个uEnvt.txt的文件,用记事本打开这个文件,在其中添上这么一行代码:

    disp.screen0_output_type=4

    那么修改后的uEnvt.txt文件可能就像下面这个格式了:

    extraargs=console=ttyS0,115200 console=tty0 disp.screen0_output_mode=1440x900p60  disp.screen0_output_type=4 hdmi.audio=EDID:0 mmc0_led=1 mac_addr=ca:28:f0:49:3e:7d rootfstype=ext4 bootdelay=1

    方法二,也可以直接修改script.bin文件,先把script.bin 转换成script.fex文件,在[disp_init]下面修改成如下的格式:

    [disp_init]
    disp_init_enable = 1
    disp_mode = 0
     
    screen0_output_type = 4
    screen0_output_mode = 4
     
    screen1_output_type = 2
    screen1_output_mode = 14
     
    fb0_framebuffer_num = 2
    fb0_format = 10
    fb0_pixel_sequence = 0
    fb0_scaler_mode_enable = 1
     
    fb1_framebuffer_num = 2
    fb1_format = 10
    fb1_pixel_sequence = 0
    fb1_scaler_mode_enable = 1

    上面参数的意思,在linux-sunxi.org上是有解释的,详情可参看下面链接:

    http://linux-sunxi.org/Fex_Guide#.5Bdisp_init.5D

    而将script.bin转换成script.fex的方法,可参考下面的帖子,写的已经非常详细了:

    http://forum.cubietech.com/forum.php?mod=viewthread&tid=141&highlight=script

    当然,修改完整后,别忘记了将script.fex再转换成script.bin并放入tf卡的第一分区,然后插到CB上,上电开机,可以运行了。如果怀疑内核驱动没有VGA的话,可以自己选择编译一遍驱动,编译的方法都是一样的,网络资源较多,给一个链接作为参考:

    http://onefishum.blog.163.com/blog/static/5184730520131151385937/

    最后,感谢论坛中已经成功VGA输出并分享了资料的童鞋们,笔记中引用了很多他们的东西,当然这里我就不一一的给出链接了。

    2013/06/22

  • 相关阅读:
    Java实现OPC通信
    OPCServer:使用KEPServer
    OPCServer:使用Matrikon OPC Server Simulation
    OPC和DCOM配置
    jquery中attr和prop的区别
    jquery 操作checkbox是否选中的正确方法
    GPRS RTU设备OPC Server接口C# 实现
    Raspberry Pi 中安装Mono
    C#中DllImport用法汇总
    HTML <form> 标签的 method 属性
  • 原文地址:https://www.cnblogs.com/chineseboy/p/3149874.html
Copyright © 2020-2023  润新知