CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 17731|回复: 14

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

[复制链接]
发表于 2013-6-22 16:33:03 | 显示全部楼层 |阅读模式
本帖最后由 醉月 于 2013-6-22 16:38 编辑

免费使用论坛资源这么长时间,自己也试着分享一些学习笔记吧。
博客园地址:http://www.cnblogs.com/chineseboy/
----------------
下面分享我鼓捣VGA输出的时候的笔记总结,新人有需要可以参考下,高人略去了哈{:soso_e113:}

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

前题:由于公司某些方面的需要,于是就开始尝试了来通过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的文件,用记事本打开这个文件,在其中添上这么一行代码:
  1. disp.screen0_output_type=4
复制代码
那么修改后的uEnvt.txt文件可能就像下面这个格式了:
  1. 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]下面修改成如下的格式:
  1. [disp_init]
  2. disp_init_enable = 1
  3. disp_mode = 0
  4. screen0_output_type = 4
  5. screen0_output_mode = 4

  6. screen1_output_type = 2
  7. screen1_output_mode = 14

  8. fb0_framebuffer_num = 2
  9. fb0_format = 10
  10. fb0_pixel_sequence = 0
  11. fb0_scaler_mode_enable = 1

  12. fb1_framebuffer_num = 2
  13. fb1_format = 10
  14. fb1_pixel_sequence = 0
  15. 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

回复

使用道具 举报

发表于 2013-6-24 14:59:10 | 显示全部楼层

第一种方式我没见过,我都是用的第二种方式!
你的系统是android还是linux呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-24 15:11:33 | 显示全部楼层
f839903061 发表于 2013-6-24 14:59
第一种方式我没见过,我都是用的第二种方式!
你的系统是android还是linux呢? ...

linux的,其实第一种也可以,我已经试过好几次了,嘿嘿
回复 支持 反对

使用道具 举报

发表于 2013-6-24 15:24:52 | 显示全部楼层
醉月 发表于 2013-6-24 15:11
linux的,其实第一种也可以,我已经试过好几次了,嘿嘿

哦,我说呢!因为我这边修改hdmi   vga   lvds都是在这做修改的!
还有一个问题我想问一下A20是不是只能用phoenixsuit烧录,livesuit不管用了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-24 16:23:04 | 显示全部楼层
f839903061 发表于 2013-6-24 15:24
哦,我说呢!因为我这边修改hdmi   vga   lvds都是在这做修改的!
还有一个问题我想问一下A20是不是只能 ...

A20手边暂时还没板子,还没来得及尝试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-24 16:25:58 | 显示全部楼层
f839903061 发表于 2013-6-24 15:24
哦,我说呢!因为我这边修改hdmi   vga   lvds都是在这做修改的!
还有一个问题我想问一下A20是不是只能 ...

其实,第一种方法,android我没来得及尝试,linux下的话,是可以修改很多东西的,因为那个脚本里面放有很多内容,包括init,script.bin的位置,分辨率等等。当然,有的linux系统中不是uEnvt.txt,而是叫boot.cmd、boot.src,其中boot.cmd生成boot.src
回复 支持 反对

使用道具 举报

发表于 2013-6-24 16:52:58 | 显示全部楼层
醉月 发表于 2013-6-24 16:25
其实,第一种方法,android我没来得及尝试,linux下的话,是可以修改很多东西的,因为那个脚本里面放有很 ...

这个uEnvt.txt文件所在的位置是哪里啊?
回复 支持 反对

使用道具 举报

发表于 2013-6-24 18:24:32 | 显示全部楼层
我也是接上74hc04就不行,拿万用表测了一下,高电平正常,低电平是0.7v,不知道是不是这个原因
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-24 18:30:57 | 显示全部楼层
f839903061 发表于 2013-6-24 16:52
这个uEnvt.txt文件所在的位置是哪里啊?

如果是 lubuntu的话,就在tf卡的第一分区啊,这些脚本文件都在第一分区的,如果是其他linux的话,有可能是boot.cmd之类的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-24 18:32:24 | 显示全部楼层
xtone 发表于 2013-6-24 18:24
我也是接上74hc04就不行,拿万用表测了一下,高电平正常,低电平是0.7v,不知道是不是这个原因 ...

那你可以选择把这个芯片取掉,直接连接试试,我的就是这样成功了的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-24 01:49 , Processed in 0.026628 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部