前两天看到晕哥帖子里面提到,如果想做基于V3x的开发板,并在哇酷社区开源的话,就可以得到两片免费的芯片,本着将白嫖(bu yao lian)进行到底的精神,果断找晕哥要了两片,所以开始吧。
--------------------------------------------------------------------------------------
原理图
V3x.pdf
效果图
当前pcb正在验证中,谨慎使用
-----
华秋打样的PCB
板子很精致(自恋)
早上5点起来开始焊接,不要多问,问就是早睡早起
焊接
成品展示
---
目前的问题:
1.LCD屏的背光电路好像有问题(最近和屏幕电路犯冲),接入电路后 核心、内存、主路电压高的飞起,应该是有一片V3x阵亡了。
2.因为没找到合适的测试镜像,参考https://whycan.com/t_6986.html 这个帖子第一种方案,做了一个u-boot,上电毫无反应,但是晶振旁边的电容电压为1.5V,应该是工作了,目前没有公对公USB线,所以没法测试fel是否可用。
---
使用V3s的镜像启动,卡在初始化内存了,正常,V3x使用的是ddr3
最近编辑记录 twzy (2021-12-18 09:13:24)
离线
touchey 说:@twzy
另问V3x目前有没有比较容易上手的TF卡镜像呢?
多谢,我晚上试试
离线
资本家大善人 说:touchey 说:@twzy
另问V3x目前有没有比较容易上手的TF卡镜像呢?多谢,我晚上试试
使用测试镜像已经成功执行,
那从u-boot移植开始吧,但是在此之前,需要分析一下背光电路,为啥会造成升压。
会不会是我把PT4103 焊反了?
离线
那应该是没接错,但是为啥会造成其他路电压猛增呢?
离线
twzy 说:替换了D1 ,使用SS14,输出背光电压为5v,其他正常了。所以升了个寂寞,后续研究修改一下
https://whycan.com/files/members/6376/QQ图片20211218212330.jpgD1S管脚跟V3X兼容吗?pin2pin
这是两种芯片吧,不兼容
离线
终于把心心念念的LCD屏驱动起来了
-------------------
全部硬件资料如下
V3x硬件资料.zip
目前调试进度:
------------------------
[ ]以太网卡未验证
[x]wifi已验证
[ ] 蓝牙未验证
[x]USB驱动已验证
[x]音频已验证
[x]LCD屏幕已验证
[ ] LED灯珠验证失败,大概是V3s中没有定义PC4~PC10,而我在V3x中定义LED灯珠为PC8\PC9\PC10,所以无法控制,另外我把丝印写错了。
离线
软件部分
--------------------
u-boot
https://gitee.com/byleefei/uboot-2021.07-v3x
如果想要通过直接在u-boot中配置bootcmd和bootargs
方法如下:
make ARCH=arm mipi-v3x_defconfig
make ARCH=arm menuconfig
关闭通过配置文件启动,取消图中的配置
配置参数
cmd
load mmc 0:1 0x41000000 zImage;load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-with-480x272-lcd.dtb;bootz 0x41000000 - 0x41800000;
args
console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk rw
--------------
执行make 命令编译,烧写到TF卡,就可以启动了,对于内核和文件系统配置和V3s一致,就是需要注意PC4~PC10,和PD引脚的使用。
离线
内核以太网卡驱动成功
来源于:
https://wiki.sipeed.com/soft/Lichee/zh/Zero-Doc/Drive/Ethernet.html
因为使用的主线5.10.81 已经在设备树做了相关配置。只需要修改
arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
使能以太网
&emac {
phy-handle = <&int_mii_phy>;
phy-mode = "mii";
allwinner,leds-active-low;
status = "okay";
};
复制zimage 和dtb文件到tf卡,上电以后,启动中就可以看到以太网灯已经亮了
进入系统,启动网卡
root@SnailPi:~# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@SnailPi:~# ifconfig eth0 up
[ 87.868047] dwmac-sun8i 1c30000.ethernet eth0: PHY [0.1:01] driver [Generic PHY] (irq=POLL)
[ 87.879265] dwmac-sun8i 1c30000.ethernet eth0: No Safety Features support found
[ 87.886622] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[ 87.894407] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
[ 87.901964] dwmac-sun8i 1c30000.ethernet eth0: configuring for phy/mii link mode
[ 87.985489] dwmac-sun8i 1c30000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
root@SnailPi:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether d6:80:0d:77:87:5b txqueuelen 1000 (Ethernet)
RX packets 51 bytes 7408 (7.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 46
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
配置IP
root@SnailPi:~# udhcpc -i eth0
udhcpc: started, v1.30.1
udhcpc: sending discover
udhcpc: sending select for 192.168.3.107
udhcpc: lease of 192.168.3.107 obtained, lease time 86400
root@SnailPi:~#
root@SnailPi:~#
root@SnailPi:~#
root@SnailPi:~# ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=53 time=14.5 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=53 time=14.0 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=53 time=14.4 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=4 ttl=53 time=14.0 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=5 ttl=53 time=14.5 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=6 ttl=53 time=14.5 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=7 ttl=53 time=14.1 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=8 ttl=53 time=14.6 ms
离线
u-boot,内核、Debain文件系统都在这里面了
链接:https://pan.baidu.com/s/12HrPDX7nl6pfvupotlY6Iw
提取码:00bv
1. rootfs用户名root密码123456
2 .拷贝 rtl8723bs_nic.bin 到根文件系统的 /lib/firmware/rtlwifi/ 目录下.
最近编辑记录 twzy (2021-12-21 13:14:44)
离线
尝试使用lvgl,结果出现一种似花非花的尴尬局面
https://gitee.com/socbis/linux-lvgl/#lvgl-for-frame-buffer-device
git clone https://gitee.com/socbis/linux-lvgl.git -b lvgl-s5p6818
离线
根据这个帖子的提示 https://whycan.com/t_7650.html
PC8~PC10 配置的LED灯已经可以点亮了
(ps 图中的丝印错了,PC应该对应的是64 ,PC8~PC10 应该是72~74)
把荔枝派的设备树文件包含的#include "sun8i-v3s.dtsi"换成#include "sun8i-v3.dtsi"就可以了
另外我在编译的时候报错了
我把sun8i-v3.dtsi文件中的
&mdio_mux {
external_mdio: mdio@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
};
};
注释了
离线
https://whycan.com/files/members/6376/QQ图片20220110165110.jpg
使用Lvgl做的demo 为啥会分为左右两部分?
已经成功处理了,我是没想到竟然要修改
lv_conf.h
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
#define LV_COLOR_DEPTH 32 // 16
可以愉快的玩耍了
离线
背光自动开启已经好了
#include "sun8i-v3s-licheepi-zero.dts"
/ {
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 0 1000000 0>;
//brightness-levels = <0 30 40 50 60 70 100>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <6>;
//新增部分
enable-gpios = <&pio 1 4 0>;
post-pwm-on-delay-ms = <10>;
pwm-off-delay-ms = <10>;
};
……
离线
配置触屏驱动
1. 配置NS2009代码
下载NS2009驱动代码
ns2009.zip
根据原理图修改中断脚
#include <linux/input.h>
#include <linux/input-polldev.h>
#include <linux/input/touchscreen.h>
#include <linux/i2c.h>
/* polling interval in ms */
#define POLL_INTERVAL 148 //PE20 ****注意修改这里******
/* this driver uses 12-bit readout */
将代码放置到
drivers/input/touchscreen/ns2009.c
配置同一目录下kconfig,添加NS2009选项
config TOUCHSCREEN_NS2009
tristate "Nsiway NS2009 touchscreen"
depends on I2C
select INPUT_POLLDEV
help
Say Y here to enable Nsiway NS2009 resistive touchscreen
controller support.
If unsure, say N.
To compile this driver as a module, choose M here: the
module will be called ns2009.
配置同一目录一下的Makefile,添加编译条目
obj-$(CONFIG_TOUCHSCREEN_NS2009) += ns2009.o
2.配置设备树
修改 arch/arm/boot/dts/sun8i-v3s.dtsi
在SOC/PIO节点下添加
i2c1_pins: i2c1-pins {
pins = "PE21", "PE22";
function = "i2c1";
};
在soc节点下添加如下代码
i2c1: i2c@1c2b000 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x01c2b000 0x400>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_I2C1>;
resets = <&ccu RST_BUS_I2C1>;
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
修改arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts,使能i2c1,屏配置驱动
&i2c1 {
status = "okay";
ns2009: ns2009@48 {
compatible = "nsiway,ns2009";
reg = <0x48>;
};
};
通过menuconfig配置驱动
启动内核如果有如下类的代码输出那么就可以断定驱动已经好了
[ 1.372548] i2c /dev entries driver
[ 1.378800] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pe not found, using dummy regulator
[ 1.390243] input: ns2009_ts as /devices/platform/soc/1c2b000.i2c/i2c-1/1-0048/input/input0
3.安装应用层触控驱动tslib-1.22
tslib-1.22.tar.gz
这部分在开发板上完成
安装一些组件
apt-get install autoconf automake libtool libffi-dev
mkdir tslib
chmod -R 777 tslib # 该步骤一定要做
cp tslib-1.22.tar.gz ~/tslib #将驱动复制到新建的目录中
cd tslib
tar -xvf tslib-1.22.tar.gz #解压
#开始编译
cd tslib-1.22
./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" > arm-linux.cache
./configure --prefix=/root/packet/tslib --cache-file=arm-linux.cache
make
make install
复制刚才生成的组件
# 拷贝动态库到根文件系统
cd ~/tslib
cp lib/* /lib -d -rf
cp etc/* /etc -d -rf
cp bin/* /bin -d -rf
# 拷贝动态库到交叉工具链
cp -rf include/* /usr/include
cp -d -rf lib/libts* /lib
修改配置文件
cd /etc
nano profile
export TSLIB_TSDEVICE=/dev/input/event0 #指定触摸屏设备
export TSLIB_FBDEVICE=/dev/fb0 #指定显示器设备
export TSLIB_CONFFILE=/etc/ts.conf #指定tslib配置文件的路径
export TSLIB_CALIBFILE=/etc/pointercal #指定校准文件的存放位置
export TSLIB_PLUGINDIR=/lib/ts #指定tslib插件文件的路径
export LD_LIBRARY_PATH=/lib #添加 tslib 库
export TSLIB_CONSOLEDEVICE=none #设备控制台文件名
4. 触屏校准
cd ~/tslib/tslib-1.22/tests
./ts_calibrate #执行校准
./ts_test # 进行测试
最近编辑记录 twzy (2022-02-08 10:15:53)
离线