
F1C200S小小Linux屏幕开发板【双层板+Qt4.8.7】
简介
基于全志F1C200S核心的Linux小开发板with 4.3寸480*800 RGB666屏幕。本项目已移植好系统,uboot荔枝派、内核linux5.7.1、rootfs:Debian11
简介:基于全志F1C200S核心的Linux小开发板with 4.3寸480*800 RGB666屏幕。本项目已移植好系统,uboot荔枝派、内核linux5.7.1、rootfs:Debian11开源协议
:CC BY-NC-SA 4.0
描述
1. 项目简介
本项目基于全志F1C200S SOC设计制作了一个带4.3寸480*800 LCD的低成本Linux开发板,主要用于Qt4.8.7或Lvgl等图形化界面开发。开发板搭载256Mbit SPI Flash、ESP8089 WIFI(SPI接口)、RGB666 LCD、IIC触控接口、耳机接口、USB2.0&UART(typec)等,能够满足Linux开发的大部分需求。
参考项目:https://oshwhub.com/fanhuacloud/f1c200s_lcd_backup
2. 硬件设计简述
该SOC需要提供1.1V、2.5V及3.3V的数字供电及2.8V的模拟供电。数字部分使用EA3036三路DCDC芯片、模拟2.8V使用RT9193-28GB LDO提供(注意购买时该LDO的输出电压)、以及LCD的背光恒流驱动使用SGM3732实现。
所有硬件经验证均可使用!PCB实物图如下:
本文使用的LCD屏幕是“耀元鸿科技“的4.3寸800*480 GT911触摸芯片的LCD屏幕,如果不想修改kernel和uboot的屏幕时序可以直接到淘宝购买同款。
3. 软件移植
软件和驱动移植全文参考教程:https://blog.csdn.net/qq_41709234/category_12158774.html
首先建议配置好系统环境和编译器。本人使用Ubuntu20.04编译UBOOT和Kernel,编译器为arm-linux-gnueabi(gcc version 7.2.1 20171011)、但是需要提前说明的一点,由于f1c200s内核为armv5架构后续不管是编译tslib还是qt都需要更老版本的编译器,但qt5以上的版本需要gcc版本更高,所以老编译器过不了故只能移植qt4.8.7。如果继续使用上述编译器,那编译好的软件放到板子上运行会“illegal instruction”报错。后续在移植时更换为ubuntu16&arm-none-linux-gnueabi(gcc version 4.8.3 20140320),该版本编译后的程序可以在F1c200s上正常运行。(uboot和kernel还是在较新编译器下编译的,没尝试都用老的)
3.1 UBOOT的拉取和编译
参考荔枝派教程:https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/get_started/first_eat.html
sudo apt-get install git git clone https://gitee.com/LicheePiNano/u-boot.git cd u-boot
# 查看分支 git branch -a # 切换到 Nano 分支 git checkout nano-lcd800480
# 此处告知make采用arm-linux-gnueabi下的所有交叉编译工具,目标架构为Arm,设定各项默认配置为 nano 的spiflash支持版 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- f1c100s_nano_uboot_defconfig
uboot下修改默认串口到串口1:
1. /arch/arm/dts/suniv-f1c100s-licheepi-nano.dts:
aliases {
//serial0 = &uart0;
serial1 = &uart1;
};
chosen {
//stdout-path = "serial0:115200n8";
stdout-path = "serial1:115200n8";
};
&uart0 {
//pinctrl-names = "default";
//pinctrl-0 = <&uart0_pins_a>;
//status = "okay";
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins_a>;
status = "okay";
};
2. /arch/arm/dts/suniv.dtsi:
+#define SUNIV_GPA_UART1 5
+#define SUNIV_GPE_UART2 3
sunxi_gpio_set_cfgpin(SUNXI_GPE(0), SUNIV_GPE_UART0);
sunxi_gpio_set_cfgpin(SUNXI_GPE(1), SUNIV_GPE_UART0);
sunxi_gpio_set_pull(SUNXI_GPE(1), SUNXI_GPIO_PULL_UP);
+#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUNIV)
+ sunxi_gpio_set_cfgpin(SUNXI_GPA(2), SUNIV_GPA_UART1);
+ sunxi_gpio_set_cfgpin(SUNXI_GPA(3), SUNIV_GPA_UART1);
+ sunxi_gpio_set_pull(SUNXI_GPA(3), SUNXI_GPIO_PULL_UP);
+#elif CONFIG_CONS_INDEX == 3 && defined(CONFIG_MACH_SUNIV)
+ sunxi_gpio_set_cfgpin(SUNXI_GPE(7), SUNIV_GPE_UART2);
+ sunxi_gpio_set_cfgpin(SUNXI_GPE(8), SUNIV_GPE_UART2);
+ sunxi_gpio_set_pull(SUNXI_GPA(8), SUNXI_GPIO_PULL_UP);
#elif CONFIG_CONS_INDEX == 1 && (defined(CONFIG_MACH_SUN4I) || \
defined(CONFIG_MACH_SUN7I) || \
defined(CONFIG_MACH_SUN8I_R40))
+#define CONFIG_CONS_INDEX 3
x:800,y:480,depth:18,pclk\khz:25000,le:8,ri:8,up:16,lo:16,hs:4,vs:4,sync:3,vmode:0 (时序参数配置请根据自己的LCD修改)
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/opt/tslib/bin
export TSLIB_ROOT=/usr/lib/arm-tslib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so
export LD_LIBRARY_PATH=/lib:/usr/lib:$TSLIB_ROOT/arm-tslib/lib:/home/steve/arm/aa
rm-qt/lib
export QT_ROOT=/home/steve/arm/arm-qt
export QT_QWS_FONTDIR=$QT_ROOT/lib/fonts
export QT_QWS_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QWS_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib:$QT_ROOT/lib:/usr/lib/arr
m-linux-gnueabi/lib
export QWS_MOUSE_PROTO=tslib:/dev/input/event0



WIFI测试:(很慢就是了)
关于上传的文件:
首先网页后续的附件中编译好的arm-qt & arm-tslib包,可直接解压到根文件系统中进行配置;
datasheet为相关芯片的数据手册(f1c100s有详细的寄存器和中断等信息;
uboot、kernel、rootfs、编译器(gcc4.8.3)、qt4.8.7源码等由于体积较大故上传百度云盘,地址:
通过网盘分享的文件:f1c200s
链接: https://pan.baidu.com/s/1v4qLWt4PDbzkcm0mK4IMMg?pwd=twtj 提取码: twtj
设计图

BOM


评论