您尚未登录。

楼主 # 2022-03-12 22:35:55

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

全志V3X开发板从无到有调试记录

上图

QQ图片20220312200954.jpg

一、介绍

这款开发板用的芯片是全志的V3X,内置128MB RAM和一些其他的外设功能,具体就不介绍了,大家到坑网里去查找,里面资料比较详细。
原理图和PCB是立创EDA画的,已经在立创EDA硬件平台开源,大家自取。
附上开源平台链接:[开源平台]https://oshwhub.com/lengyuefeng/WjDpq0716tOAOC5GcuP36QcSxHj5hdwI


二、使用初衷

之前开源过一个全志V3S的开发板,并且我已经画了两版了,一款是开发板的形式,已经开源,还有一款是核心板加底板的方式,核心板是MINI PCIE接口的,这样主要是为了方便去画底板,方便自己DIY(暂未开源,以后会开)。

我为什么要使用V3X这款芯片呢,主要是因为我前面用V3s做的一个QT应用运行的时候出现了一点问题,具体是用V3S运行QT应用程序的时候,每当打开一个应用的时候运行比较卡顿,也就反应很长时间,使用效果很不好,但是在主界面滑动还是很流畅的,视频播放用480x272的分辨率播放效果还是可以的。首先我怀疑有两种可能性,一种就是写的QT应用程序不是很好,造成使用卡顿,还有一种就是处理器性能不够,可能是V3S的内存过小,吃不消。之前开源V3S的时候,晕哥给我发了大红包,还告知我有V3X的活动,之前没有需求就没有申请,因为V3X的RAM是V3S的2倍,我就想试试V3X运行效果是不是好一点,于是就找晕哥申请了两片V3X,在这里非常感谢晕哥。

三、画板

平时上班也没有什么时间,就抽上周末两天简单画了一下,主要参考的是我之前的V3S的原理图和晕哥开源的原理图。

[晕哥开源原理图]chrome-extension://ibllepbpahcoppkjjllbabhnigcbffpi/https://whycan.com/files/members/3907/Schematic_V3x_2021-12-06.pdf
[我开源的全志V3S]https://www.oshwhub.com/lengyuefeng/v3scopy_copy

电源部分使用的是EA3036,因为之前全志V3S用的也是这个芯片,比较熟悉。这次主要就是电压不同,这个芯片只需要修改电阻即可,可以根据这个公式计算。
**Vout=0.6x(1+Ra/Rb)**

画的时候加上了功放,使用的是8002B,这个比较便宜,就几毛钱,之前方案也验证过,用起来比较方便。
看晕哥的原理图用到了emmc,本来想加一个的,试了一下,4层板这个BGA根本扇不出来,索性直接不要了。
RGB屏幕用的是正点原子接口,有这个屏幕,没什么好说的。

原理图比较乱,也没有整理,随便看看吧。
PCB布线也比较随意,一些情况也没有注意,反正能用。
本来是打算上四层板的,但后来发现挤挤也能布下,就两层算了。

这里贴个3D预览图

QQ图片20220312201029.png

四、焊接调试

1.空板

周末画完板子之后,周一就发去打板了,板子是黑色的,我感觉是比较好看的,不得不说,嘉立创的速度可以,在周五下班的时候我顺利的拿到了板子,五块,做工很不错。
QQ图片20220312204300.jpg

2.焊接步骤

1.焊接芯片电源

下面给大家介绍一下我一般焊接的步骤。
首先拿到空板之后,我会先焊接电源部分,然后测量3路电压是否都正常。

我现在喜欢拿风枪直接吹,比较快速。
上锡膏,摆放器件,我布局的时候都是一块一块画的,所以应该比较好区分。
QQ图片20220312201021_20220312-2206.jpg
吹好之后是这样的。
QQ图片20220312201024.jpg
大家发现这个开关是没焊的,不是我不想焊,是我库存没有找到(真的是,之前还专门看了一下有没有缺什么东西)。
这里没办法,只好直接用锡把这两个引脚短接。

检测好没有短接之后就上电测试吧。

三路电压:
QQ图片20220312201017.jpgQQ图片20220312201006.jpgQQ图片20220312200959.jpg

不知道是焊工长进了还是运气好,反正一次成功,上电之后直接电压输出正常。

2.焊接芯片外围

电源测试OK之后,我们就可以焊接芯片外围电路了。

QQ图片20220312201013.jpg
QQ图片20220312201009.jpg
把正面和背面都焊接上。

然后再焊接上主芯片。
QQ图片20220312201002.jpg

这个时候SD卡可以先不用焊接,可以先焊接USB,然后测试芯片是否通信。
大家发现我这个USB是很丑的,这是因为我这个是直插的,我画的封装是贴片的,只好掰弯了,也不是不能用。

3.上电USB测试

打开ubuntu,插上USB之后窗口会弹出USB设备,如果没有弹出,请检查电路。

我这里直接识别了。
然后执行

sudo sunxi-fel -l

命令

QQ图片20220312205857.png
这个状态就说明正确识别到了芯片。
这个时候一般没什么问题了,可以直接加载uboot在RAM里运行测试。

4.焊接其他外设

到这个时候了,你就可以一次性焊接所有外设,然后慢慢测试,也可以用到哪个焊接哪个,随意了。
QQ图片20220312200936.jpg

5.改头换面

当我们焊接好所有器件之后,我们可以用洗板水给板子擦拭一下,这样看起来就会很好看,我这里暂时没有洗,因为我买的器件还没到(USB贴片和开关),到时候换好之后再一次性洗吧。

先占位,后面补上。

五、软件调试

1.uboot

首先要先找一个uboot编译跑起来。
在坑网找了找,真的有所发现,坑网真是个好东西。

YSVQf5dct7J7kh2yHZKviEcJ2YKD2eAjvFRGME1v.png
根据这个步骤去编译,没有毛病,
编译成功之后当前目录下就有bin文件了。
GpoZxDZOk0RJG12GXBPN9mbonVxVZxT20qfs8Hub.png

然后执行这个可以在RAM中运行

sudo sunxi-fel uboot u-boot-sunxi-with-spl.bin

执行这个可以在SD中运行

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

具体参考[V3S uboot编译]https://blog.csdn.net/lengyuefeng212/article/details/118861717

启动的日志,我忘记截图了,后面有配置以太网的。

2.uboot编译以太网

为什么要编译以太网呢,因为我之前一直是用挂载文件系统的方式去调试程序的,感觉用起来比较方便。

参考链接:[编译以太网]https://blog.csdn.net/lengyuefeng212/article/details/120000952

在uboot中配置好之后,编译,出现了问题
9gG3j6Z7RYRPx145VpeTbcHHKCJyzkQmhrBVMHNd.png

不过我还是在坑网中找到了解决方法。
参考链接:[以太网编译问题]https://whycan.com/t_7269.html
RpgQjU3qiwLzq6ij9NJKLknTShnZSfbnmJJju1eC.png
我根据其中配置之后,然后就可以编译了。

设备树配置是否正确,编译是否完成,网络是否可用,其实是有一个可以看的地方,就是uboot在开始的打印信息。

当出现下面这个信息的时候,说明我们网络注册是成功的。
UCwBjZ2uk4EjtdB1t12ERW1inI4eLA8s5tzVgApP.png

编译成功之后我们要测试,网络是否可用。
先设置ip地址,注意要和自己ubuntu一个网段。

setenv ipaddr 192.168.31.105

然后ping自己电脑,如果是我下面这样的,说明网络正常。
KpTMS6E2J34uRtlX6vtpTOucYHAz0o8nUrOFWZHC.png
3.设置挂载文件系统

我们SD卡中只有一个uboot启动文件,是没有内核和文件系统的,我都是通过网络下载的。
关于tftp服务和nfs环境搭建这里就不说了。

我这里只设置环境变量。

要注意一下,默认编译的uboot的启动内核之前等待时间为0,这里要修改一下,方便测试。

setenv bootdelay 5
setenv ipaddr 192.168.31.50
setenv serverip 192.168.31.103

setenv bootcmd 'setenv bootm_boot_mode sec;setenv ipaddr 192.168.31.50;setenv serverip 192.168.31.103;tftp 41000000 zImage;tftp 41800000 sun8i-v3s-licheepi-zero-dock.dtb;bootz 0x41000000 - 0x41800000'

setenv bootargs root=/dev/nfs rw nfsroot=192.168.31.103:/home/luatao/luatao/nfs/rootfs ip=192.168.31.50:192.168.31.103:192.168.31.1:255.255.255.0::eth0:off init=/linuxrc console=ttyS0,115200

上面要根据自己的实际情况是配置。

最后执行saveenv保存变量。

保存的时候出现了问题。

Unknown command 'saveenv' - try 'help'

也就是这个命令不存在。
解决方法是

进入uboot配置文件
KUTnEHdE0BhAiRZN6H3SVXuFxcP5whcbtXR9Rbfi.png

把1去掉,把2勾上,这里一定把1去掉,不然会报错Saving Environment to nowhere... not possible
Xg16UqErtwRFCoK2AT2EEekTwp9xrXQZPzmKTLEE.png
之后编译,再重新烧录uboot启动就可以了。
0fCToBwETA2LVVo2Yr6CGsRqcnODCTFp5fUxhM7F.png


4.启动内核日志
W7bh9iATZQBfBiFRNIk5LsT4H7mDaC05YdJ382ba.png

。。。
XXXzP272S5sfEGpsmPVzoFBjIZ46WqltnA3SxdwL.png

然后就可以愉快的玩耍了。

六、外设调试
七、出现暂未解决的问题

首先,今天测试的时候,挂载文件系统之后,播放视频只有声音屏幕没有驱动。linux内核和rootfs用的都是v3s的,查看设备中没有/dev/fb0。之前用v3s是没有问题的,难道是uboot造成的印象吗?暂时还未解决,明天再继续找找原因。

上文中的屏幕显示的图片是烧录的小智的镜像,能显示,说明我的屏幕硬件是没有问题的。[小智链接](https://whycan.com/t_7248.html)

八、应用程序

QT程序。以后再来填

九、未完待续

其他附加功能,如3D外壳等。

离线

#1 2022-03-13 00:10:57

sblpp
会员
注册时间: 2018-02-14
已发帖子: 164
积分: 54

Re: 全志V3X开发板从无到有调试记录

感谢楼主分享~~~
我的也开始搞起来啦

离线

#2 2022-03-13 10:28:20

leefei
会员
注册时间: 2020-12-19
已发帖子: 53
积分: 75

Re: 全志V3X开发板从无到有调试记录

没有fb0的话,真相只有一个。就是linux的设备树上的RGB节点被我删掉了

离线

#3 2022-03-13 10:31:09

leefei
会员
注册时间: 2020-12-19
已发帖子: 53
积分: 75

Re: 全志V3X开发板从无到有调试记录

leefei 说:

没有fb0的话,真相只有一个。就是linux的设备树上的RGB节点被我删掉了

节点的具体内容,你可以下载小智的一键buildroot的文件,找到dts文件

离线

楼主 #4 2022-03-13 10:59:20

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

Re: 全志V3X开发板从无到有调试记录

leefei 说:

没有fb0的话,真相只有一个。就是linux的设备树上的RGB节点被我删掉了

你好,给你简单说一下我的运行环境。

下面是我用V3S和V3X分别运行观察出来的区别。

V3S和V3X用的是同一个zImage和rootfs。只有uboot是不同的

这个是用V3S打印的屏幕的信息,但是用V3X是没有输出的
log.png

感觉应该是uboot影响的。

离线

楼主 #5 2022-03-13 10:59:54

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

Re: 全志V3X开发板从无到有调试记录

leefei 说:
leefei 说:

没有fb0的话,真相只有一个。就是linux的设备树上的RGB节点被我删掉了

节点的具体内容,你可以下载小智的一键buildroot的文件,找到dts文件

好的,我去看一下。感谢。

离线

#6 2022-03-13 14:05:37

leefei
会员
注册时间: 2020-12-19
已发帖子: 53
积分: 75

Re: 全志V3X开发板从无到有调试记录

@lengyuefneg
因为V3s的屏幕参数是从uboot传递过去的。。所以你使用同一内核,V3s有fb0是uboot传过去的。小智开源V3x的uboot并没有屏幕参数配置,而是只在内核中做的驱动,而我的板子用spi的屏幕,如果不处理RGB屏的设备树节点,会有fb0和fb1,所以我删了

离线

楼主 #7 2022-03-13 15:22:53

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

Re: 全志V3X开发板从无到有调试记录

@leefei
多谢大佬指点,那我在linux里面添加设备节点应该就可以了吧。

离线

楼主 #8 2022-03-13 16:28:22

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

Re: 全志V3X开发板从无到有调试记录

@leefei
添加设备树节点之后,可以找到fb0了,但是播放视频报下面的错误。

Starting playback...
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xdf42d0]bicubic scaler, from yuv420p to bgra using C
[swscaler @ 0xdf42d0]No accelerated colorspace conversion found from yuv420p to bgra.
[swscaler @ 0xdf42d0]using unscaled yuv420p -> bgra special converter
VO: [fbdev] 800x450 => 800x450 BGRA
Can't put VSCREENINFO: Invalid argument
FATAL: Cannot initialize video driver.
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xdf42d0]No accelerated colorspace conversion found from yuv420p to bgra.
VO: [fbdev] 800x450 => 800x450 BGRA
Can't put VSCREENINFO: Invalid argument
FATAL: Cannot initialize video driver.
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xdf42d0]No accelerated colorspace conversion found from yuv420p to bgra.
VO: [fbdev] 800x450 => 800x450 BGRA
Can't put VSCREENINFO: Invalid argument
FATAL: Cannot initialize video driver.
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xdf42d0]No accelerated colorspace conversion found from yuv420p to bgra.
VO: [fbdev] 800x450 => 800x450 BGRA
Can't put VSCREENINFO: Invalid argument

是不是还需要修改驱动什么的

离线

楼主 #9 2022-03-17 11:48:59

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

Re: 全志V3X开发板从无到有调试记录

@lengyuefneg
刚才看了一下,立创开源平台那边没有源文件,这里上传一下。
ProProject_全志V3X_2022-03-17.zip

离线

楼主 #10 2022-03-18 09:01:52

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

Re: 全志V3X开发板从无到有调试记录

执行

echo hello luatao > /dev/tty0

显示

.jpg

离线

#11 2022-05-10 17:34:30

wy2011095
会员
注册时间: 2022-03-25
已发帖子: 10
积分: 5

Re: 全志V3X开发板从无到有调试记录

你的电源丝印是有问题的,哎,我板子都好了,上电才发现

离线

#12 2022-05-10 17:39:11

wy2011095
会员
注册时间: 2022-03-25
已发帖子: 10
积分: 5

Re: 全志V3X开发板从无到有调试记录

R3、R11、R1、R10,哎

离线

#13 2022-05-10 17:41:38

wy2011095
会员
注册时间: 2022-03-25
已发帖子: 10
积分: 5

Re: 全志V3X开发板从无到有调试记录

C12、C26也是反的

离线

楼主 #14 2022-05-11 12:33:51

lengyuefneg
会员
注册时间: 2021-07-18
已发帖子: 29
积分: 41.5

Re: 全志V3X开发板从无到有调试记录

wy2011095 说:

你的电源丝印是有问题的,哎,我板子都好了,上电才发现

刚看了一下,这个确实是有问题的,真是不好意思。

离线

#15 2022-08-24 20:27:30

非吾愿
会员
注册时间: 2020-01-31
已发帖子: 2
积分: 3

Re: 全志V3X开发板从无到有调试记录

@lengyuefneg
今天我自己编译的主线5.2kernel和buildroot也遇到这个问题,请问你解决了吗?而且我使用framebuff测试程序是可以红绿蓝刷新屏幕的。

已解决,使用mplayer -vo fbdev2 -vf scale=800:480 456.mp4就可以播放了,-vf scale=800:480相当于手动设置播放画面大小,原因还不是很清楚

最近编辑记录 非吾愿 (2022-08-24 21:48:31)

离线

#16 2022-09-24 22:09:11

jeffron
会员
注册时间: 2022-09-12
已发帖子: 1
积分: 31

Re: 全志V3X开发板从无到有调试记录

@非吾愿
我也是同样现象。
1)在4.15内核下,自己编译的Mplayer1.0rc3(没有用buildroot里的),能够使用下列命令正常播放
mplayer -vo fbdev2 sam.mp4

2)在5.2内核下,同样的环境,用上面的Mplayer1.0rc3,使用mplayer -vo fbdev2 sam.mp4报错:Can't put VSCREENINFO: Invalid argument,
用了mplayer -vo fbdev2 -vf scale=800:480 sam.mp4,仍然报错。

3)在5.2内核下,同样的环境,重新编译一个Mplayer1.4,可以使用mplayer -vo fbdev2 -vf scale=800:480 sam.mp4正常播放。

最后发现,sam.mp4分辨率852x480,大于800x480,因此mplayer报错要求指定缩放,并且必须缩放到800x480以内,如果视频分辨率本来就在800x480以内,那么使用1.4版的mplayer -vo fbdev2 sam.mp4可以直接播放。
ms在Mplayer1.0rc3中会自动使用-vf缩放,因此不带-vf也可以播放,而Mplayer1.4就不行了。但是Mplayer1.0rc3在5.2内核下好像又不能起作用。

最近编辑记录 jeffron (2022-09-24 22:11:45)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn