F1C100S自制开发板调试过程

article/2025/9/22 3:14:59

疫情,等了好久板子终于到了。

我这里使用的是坑网大佬提供的tiny200开发包,用的芒果派R3配置文件

1,配置其的介质,我板子上用的是nor-spi-flash,所以需要在设备树里面屏蔽掉nand-flash相关的节点,否则启动会有错误。

2,配置屏幕,这里我被困扰好久,其实只需要在uboot里面配置好屏幕参数即可,其他的无需修改,我想歪了,去修改panel,改了好久好多参数都灭有效果,钻牛角尖了,最后看到坑网小伙伴评论:F1C100s如何初始化LCD引脚 ?24bit如何修改成18bit。RGB666如何修改成565.。。。。 / 全志 SOC / WhyCan Forum(哇酷开发者社区)

linux如果用drm驱动,那么就和uboot无关。
linux如果用simplefb驱动,那么就是用uboot初始化的

我才恍然大悟,直接去uboot里面修改屏幕参数就行了

这个时候,我又有疑问了,这些le,ri,up,参数是个什么玩意,百度后找到了如下资料:

U-boot中通过ENV设置显示设备(如LCD)参数的方法与格式_韩半仙的博客-CSDN博客

/******************************************************************* 解析结构体******************************************************************/
struct ctfb_res_modes {int xres; /* 可见分辨率 */int yres;/* 时序: 所有值都以像素时钟为单位(当然除了像素时钟本身) */int pixclock; /* 像素时钟(单位:微秒) */int left_margin; /* 从行同步到图像左边沿的像素时钟数 */int right_margin; /* 从行同步到图像右边沿的像素时钟数 */int upper_margin; /* 从场同步到图像上边沿的行数 */int lower_margin; /* 从场同步到图像下边沿的行数 */int hsync_len; /* 行同步时间长度(像素时钟数) */int vsync_len; /* 场同步时间长度(行数) */int sync; /* see FB_SYNC_* */int vmode; /* see FB_VMODE_* */
};

 参数无效_lcd参数解释及刷新率计算,LCD时序_刘万祥ExcelPro的博客-CSDN博客

2d8dcc2ba9a563e576dd9864e7f994f2.png

4e4bba4f1f601a1a0910cbda331f3760.png

到这就知道参数怎么设置,以及参数的含义了。

最后看下测试效果:

3,通过控制台命令切换USB模式,参考下面帖子

主线Linux用shell命令切换 OTG(分享)tiny200/licheepi nano|zero均可以使用 / 全志 SOC / WhyCan Forum(哇酷开发者社区)​​​​​​

&usb_otg {dr_mode = "otg"; /* 三个可选项: otg / host / peripheral */status = "okay";
};##切换到host模式:
# echo host > /sys/devices/platform/soc/1c13000.usb/musb-hdrc.1.auto/mode
# [  117.758152] phy phy-1c13400.phy.0: Changing dr_mode to 1
[  118.414817] usb 1-1: new high-speed USB device number 3 using musb-hdrc
[  118.598193] usb-storage 1-1:1.0: USB Mass Storage device detected
[  118.611789] scsi host0: usb-storage 1-1:1.0
[  119.686198] scsi 0:0:0:0: Direct-Access     Mass     Storage Device   1.00 PQ: 0 ANSI: 0 CCS
[  119.703976] sd 0:0:0:0: [sda] 3842048 512-byte logical blocks: (1.97 GB/1.83 GiB)
[  119.725260] sd 0:0:0:0: Attached scsi generic sg0 type 0
[  119.739844] sd 0:0:0:0: [sda] Write Protect is off
[  119.771819] sd 0:0:0:0: [sda] No Caching mode page found
[  119.777288] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  119.801571]  sda: sda1 sda2 sda3
[  119.817224] sd 0:0:0:0: [sda] Attached SCSI removable disk#
##切换到device模式:
# echo peripheral > /sys/devices/platform/soc/1c13000.usb/musb-hdrc.1.auto/mode
[  123.880272] phy phy-1c13400.phy.0: Changing dr_mode to 2
# [  123.890905] usb 1-1: USB disconnect, device number 3

4,移植wifi

        这段时间把wifi移植了一下,我买了几个rtl8189es模块,自己作了一个tf卡接口,直接插到板子上的tf卡接口上去。

        驱动的话我从github上找了一个可用的,克隆到自己的仓库了,

测试下来延迟挺大的,不过没有加天线,自己随便画的,暂时能用就行。

5,今天搞了下触摸,拆的屏幕,自带触摸芯片是GT911,sdk里面的分辨率是800x480的,弄上去触摸到的位置有偏差,想到应该是触摸芯片的配置文件不对,查看源码,发现是驱动在创建的时候写入了一个配置文件,名字是goodix_911_cfg.bin,发现就是一个配置数组,数组内容下面这个链接有介绍,至此我们就直接简单粗暴修改下尺寸,但是发现不行,报错。

http://www.doczj.com/doc/bb14276644.html

#include <stdio.h>unsigned char GT911_CFG_TBL[] =
{
0x42, 0xE0, 0x01, 0x10, 0x01, 0x0A, 0x3D, 0x00, 0x01, 0x08, 0x28, 0x08, 0x5A, 0x46, 0x03, 0x05,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1A, 0x1E, 0x14, 0x89, 0x2A, 0x09, 0x57, 0x5C,
0xB5, 0x06, 0x00, 0x00, 0x00, 0x02, 0x01, 0x1D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x46, 0x82, 0x94, 0xC5, 0x02, 0x07, 0x00, 0x00, 0x04, 0x96, 0x4A, 0x00, 0x85,
0x54, 0x00, 0x77, 0x5F, 0x00, 0x6A, 0x6C, 0x00, 0x5F, 0x7A, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x10, 0x12, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x04, 0x06, 0x08, 0x0A, 0x0F, 0x10, 0x12, 0x16, 0x18, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22,
0x24, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x01 
};unsigned char calcChecksum(unsigned char *buf, unsigned char len) {unsigned char ccsum = 0;for (unsigned char i = 0; i < len; i++) {ccsum += buf[i];}return (~ccsum) + 1;
}int main() {unsigned char sub = 0;sub = calcChecksum(GT911_CFG_TBL,sizeof(GT911_CFG_TBL)-2);printf("sub:%x\n",sub);return 0;
}

下一步就是调试摄像头了。 

如何查看摄像头支持的格式

Ubuntu 下如何测试 USB 摄像头支持的分辨率、压缩格式,并使用 OpenCV 按正确的格式读取出来?_斜雨踏歌的博客-CSDN博客_usb摄像头输出格式

使用命令行拍照测试

1,查询摄像头支持的格式和分辨率

v4l2-ctl -d /dev/video1 --list-formats-ext

2,设置格式

media-ctl --set-v4l2 '"ov2640 0-0030":0[fmt:YUYV8_2X8/640x480]'

3,开始拍照

fswebcam -d /dev/video0 --no-banner -r 640x480 -S 10 1.jpg


http://chatgpt.dhexx.cn/article/DXDDXxbD.shtml

相关文章

F1C100S(Lichee Nano)触摸屏 (GT9147)

1、前提 Ubuntu 环境版本 (18.04) Linux ubuntu 5.4.0-131-generic #147~18.04.1-Ubuntu SMP Sat Oct 15 13:10:18 UTC 2022 x86_64 x86_64 x86_64 GNU/LinuxARM GCC版本 gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)F1C100S Linux版本 (linux-nano-5.2-tf) 链接 …

全志F1C100s主线linux入坑记录 (5)LVGL8.2移植

LVGL8.2移植 百度网站 文章目录 LVGL8.2移植一、安装VScode二、安装lvgl模拟器二、F1c100s 移植lvgl参考 一、安装VScode 进入VScode官网下载安装包&#xff0c;如果最新版本安装有问题可以安装老版本的 https://code.visualstudio.com/使用命令行安装VScode sudo dpkg -i …

全志F1C100s主线linux入坑记录 (7)GBA模拟器移植

GBA模拟器移植 百度网站 文章目录 GBA模拟器移植一、下载gpsp 源代碼二、gpsp环境配置参考 一、下载gpsp 源代碼 gpsp源码 解压文件 7z x gpsp.7z 二、gpsp环境配置 gpsp需要SDL环境我们先在bulidroot中添加SDL包 make menuconfigTarget packages ---> Graphic libra…

9、Lctech Pi(F1C200S)开启I2C0(CherryPi,Mangopi,F1C100S)

本次主要参考&#xff1a; https://github.com/mangopi-sbc/buildroot-mangopi-r https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html &#xff08;如果方便请给这几位大佬一个关注&#xff09; 注意代码块之间的空行 配置设备树文件 1、打开linux-5.7.1/a…

全志F1C100s主线linux入坑记录 (3)适配其他分辨率的LCD

适配其他分辨率的LCD 百度网站 文章目录 适配其他分辨率的LCD一、修改U-boot屏幕参数二、修改linux内核文件三、测试效果 一、修改U-boot屏幕参数 修改对应屏幕的参数&#xff08;我这里是1024*600的屏幕&#xff09; 修改 -> ARM architecture -> Enable graphical ub…

全志F1C100S从零开发记录(1)

1.刚买到板子&#xff0c;开箱如下图所示&#xff1a; 2.管脚焊接&#xff08;焊接串口&#xff0c;用来看串口打印信息&#xff09;&#xff0c;5v供电&#xff1a; 3.通过usb转ttl接到电脑上&#xff1a; . 4.设置串口波特率115200 &#xff0c;打开串口&#xff0c;上电出…

7、Lctech Pi(F1C200S)开启RNDIS,通过USB与电脑联网(CherryPi,Mangopi,F1C100S)

本次主要参考&#xff1a; 荔枝nano开启RNDIS驱动&#xff0c;无需补丁。 https://github.com/peng-zhihui/Planck-Pi#head23 https://github.com/mangopi-sbc/buildroot-mangopi-r https://www.cnblogs.com/listenscience/p/13758272.html &#xff08;如果方便请给这几位大佬…

全志F1C200S F1C100S 介绍

很久以前发现了一颗性价比极高而且比较好玩的SOC&#xff0c;加群请仔细阅读本博客&#xff08;见DKTool界面&#xff0c;请备注“来自博客”&#xff09; 那就是全志F1C100S F1C200S&#xff0c;其中F1C100S内置32MB DDR1内存&#xff0c;F1C200S内置64MB DDR1内存。 这个片…

6、Lctech Pi(F1C200S)4.3寸(480*272)16位RGB565LCD屏驱动适配(CherryPi,Mangopi,F1C100S)

本次主要参考&#xff1a; https://blog.csdn.net/wending1986/article/details/106837597/ http://blog.chinaunix.net/uid-20543672-id-3246283.html https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html 李山文大佬 &#xff08;如果方便请给这几位大佬一个…

【F1C100S】编译启动所需的uboot,kernel,rootfs

个人画了块没有连接任何其他模块的F1C100S开发板&#xff0c;没有链接任何外设&#xff0c;本文是编译所有启动所需的三大件。&#xff08;只要编译出三个东西复制到sd卡就可启动&#xff0c;不需要制作成镜像img文件&#xff09; 环境&#xff1a;使用安装了ubuntu18的电脑进…

荔枝派nano(f1c100s)从零开始TF卡启动(附源码下载)

本文所使用的所有文件都已打包到SDK中&#xff0c;可以直接使用&#xff0c;有些细节我已省略&#xff0c;直接使用我包里的文件即可。 (无需积分&#xff0c;免费下载&#xff0c;里面的东西都来源于官方&#xff09; 觉得可以的&#xff0c;可以点个赞、点个关注&#xff0…

全志F1C100s使用记录:u-boot linux rootfs 编译与烧录测试(基于SD卡)

文章目录 目的基础准备硬件准备开发环境 制作toolchain和rootfs设置编译工具链 u-boot & linux编译u-bootboot.scrlinux 测试程序文件烧录分区设置分块烧录 上电测试系统镜像制作镜像文件使用镜像文件 可能会遇到的问题SDK数据包总结 目的 这篇文章中将测试在 F1C100s 中运…

【f1c200s/f1c100s】RGB接口 LCD驱动适配

【f1c200s/f1c100s】RGB接口 LCD驱动适配 RGB模式介绍F1C200s/F1C100s RGB LCD驱动适配设备树修改源码修改结果 RGB模式介绍 RGB 模式就是我们通过说的 RGB 屏&#xff0c;以 RGB&#xff08;TTL 信号&#xff09;并行数据线传输&#xff0c;广泛的应用于 5 寸及以上的 TFT-LC…

全志F1C100s入坑与填坑 uboot Linux Kernel 与buildroot

全志F1C100s 入手了几块全志的板子准备玩一玩随便记录一下&#xff01;&#xff01; 如图 是一块荔枝派 Nano 从sipeed官网可得如下介绍 官网传送门-----》 sipeed Nano 硬件参数# 硬件参数 CPU&#xff1a; 全志 F1C100s&#xff0c; ARM 926EJS , 最高 900MHz 内存&#xf…

全志F1C100S声卡驱动探究

如果有问题&#xff0c;请加QQ群 891339868 进行交流 最近刚上手全志的F1C100S这个片子&#xff0c;听一下音乐&#xff0c;本来想着挺简单&#xff0c;内核配置一下驱动就OK&#xff0c;谁知道上来就一闷棍&#xff0c;主线内核不支持内置声卡&#xff0c;经过多方面的研究&am…

【f1c200s/f1c100s】全志f1c200s开发板设计(含原理图和PCB)

f1c200s开发板设计 芯片特征开发板包含资源 开发板如图所示&#xff0c;模仿树莓派取了一个mango-pi的名字&#xff0c;haha~。 硬件主要参考了荔枝派nano和正点原子开发板。经过测试&#xff0c;全部功能正常。 芯片特征 全志F1C200s与F1C100s的区别为F1C200s含有64M SIP RA…

全志F1C100s使用记录:资料索引与基础说明

文章目录 前言资料来源u-boot & linux基础特性启动过程FEL模式电路设计 前言 最早接触到F1C100s是前两年的一个文章&#xff0c;里面使用F1C100s制作了一张可以运行Linux的名片&#xff0c;就是下图这个。下图上实际电路部分就占用角落一点点面积&#xff0c;当时觉得蛮有…

MySql 内连接与外连接 作用和 区别

内连接&#xff1a;指连接结果仅包含符合连接条件的行&#xff0c;参与连接的两个表都应该符合连接条件。 外连接&#xff1a;连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。 左外连接&#xff1a;左边表数据行全部保留…

php左内连接,内连接和外连接的区别是什么

内连接和外连接的区别&#xff1a;1、连接结果不同&#xff0c;内连接的连接结果仅包含符合连接条件的行&#xff0c;而外连接的连接结果包含了符合连接条件的行&#xff1b;2、注意事项不同&#xff0c;内连接需要注意区分在嵌套查询时使用的any以及all的区别&#xff0c;外连…

Mysql内连接和外连接的区别

内连接 简单来说&#xff1a;就是根据交集的部分来链接到一条完整的数据&#xff0c;以此来完成查询 以两张表相同的部分来链接上两张表的数据&#xff0c;而不是说&#xff0c;内连接查询的就是交集的部分&#xff0c;那样查询出来的不就是表的id信息了或者仅仅是关联的信息 …