- 博客(23)
- 收藏
- 关注
原创 使用F1C200S从零制作掌机之2.8寸TFT触摸屏(芯片ST7789V和GT911)适配
在设计产 品时,要采用限流电路(通常加 10 欧姆左右的限流电阻),把背光源的总电流限制在 90mA 以内,防止背 光源长时间工作时发热,造成显示屏和背光源不可逆的永久损坏。使用cat /dev/urandom > /dev/fb0 又有时有反应。在抓时序的过程中,CS在片选的时候,中间会有拉高信号。使用cat /sys/class/graphics/fb*/name查看有2个设备。测试cat /dev/urandom > /dev/fb0。测试cat /dev/zero> /dev/fb0。
2024-07-25 14:32:16
659
原创 使用F1C200S从零制作掌机之摄像头OV2640
出现错误提示,需要修改设备树了,PE6引脚被占用。设备树去掉背光驱动部分内容。硬件去掉R44,改用R46默认上拉吧。将sun4i-csi和ov2640编译成模块,后面手动加载驱动。使用修改后的设备树,重新加载驱动:sun4i-csi.ko。在/dev/目录下出现media0和video0。拍的照片很糊,是R44电阻的影响吗?加载驱动:sun4i-csi.ko。如果不去R44电阻,被出现闪屏。加载驱动:ov2640.ko。
2024-07-16 20:57:11
313
原创 使用F1C200S从零制作掌机之USB从机
OTG做从机,实现使用RNIDS功能访问网络,实现模拟成U盘PC可访问。最后实现OTG的软件主从切换。
2024-07-13 21:22:31
842
原创 使用F1C200S从零制作掌机之debian文件系统完善NES
源码:https://files.cnblogs.com/files/twzy/arm-NES-linux-master.zip。使用builtroot2018构建的文件系统,使用InfoNES模拟器存在bug,搞不定,所以放弃,改用debian。在NES中是通过一些PCM的API操作音频的,具体的看代码吧。修改NES模拟器源码linux目录下的joypad_input.cpp,使其适配自己的无线手柄。在命令行执行:evtest,操作无线手柄可发现有按键事件上报。是遥控器,通过配置去掉。
2024-07-09 20:24:09
940
原创 使用F1C200S从零制作掌机之构建debian文件系统
前情:使用buildrootfs构建的文件系统调试了很久NES模拟器,执行InfoNES模拟器的时候一直黑屏,无内容显示,调不通了,所以改用debian系统试试。
2024-07-08 15:01:49
1014
原创 使用F1C200S从零制作掌机之移植USB无线网卡rtl8188eu
usb无线网卡型号:COMFAST CF-WU810N下载驱动:https://download.csdn.net/download/weixin_36117563/89504648。
2024-07-02 20:53:59
322
原创 使用F1C200S从零制作掌机之屏幕驱动_linux5.4.99
重新调试的原因:之前使用的内核和设备树没有办法同时使用音频和屏幕。使用资源下载地址:https://download.csdn.net/download/weixin_36117563/89494090。
2024-06-28 21:35:52
665
原创 使用F1C200S从零制作掌机之音频驱动
目前 linux 中主流的音频体系结构是ALSA(Advanced Linux Sound Architecture),ALSA在内核驱动层提供了alsa-driver,在应用层提供了alsa-lib,应用程序只需要调用alsa-lib提供的API就可以完成对底层硬件的操作。但是 ALSA 较为庞大,对于资源有限,可以满足需求的前提下,ALSA 的 简化版 tinyalsa 是个不错的选择。系统启动后,声卡默认是关闭的,需要配置一下通道开关、音量等。替换zImage,设备树和文件系统。从board下移植。
2024-06-26 21:31:05
799
原创 使用F1C200S从零制作掌机之LCD背光
可以将PE6的有效电平GPIO_ACTIVE_HIGH改为GPIO_ACTIVE_LOW,会发现屏幕背光不亮。焊接R44的0R电阻,此种情况通过PE6拉低关闭背光,拉高开启背光。linux内核中make menuconfig。LC-PI-200S板卡背光电路。默认背光使能引脚硬件上拉直接使能。此种方式可以配置背光亮度等级。直接配置设别树即可实现。重新编译设备树后替换。
2024-06-13 23:31:43
226
原创 使用F1C200S从零制作掌机之触摸ns2009驱动
LC-PI-200S板载的NS2009的中断引脚有接到F1C200S的PE12。lichee nano板载的NS2009的中断引脚未接,驱动需要轮询处理,太麻烦了。重新上电后未达到预期,屏幕无内容显示了。最后在设备树文件中发现,引脚冲突。需要将LCD驱动改为RGB565格式,省出触摸使用的引脚。在内核目录/drivers/gpu/drm/panel/panel-simple.c中,填写屏幕时序信息如下。重新启动设备,修改配置文件。所以这里使用LC-PI-200S测试。重新编译设备树后替换。
2024-06-13 22:40:52
350
原创 使用F1C200S从零制作掌机之移植LCD驱动
主要修改文件为内核目录/drivers/gpu/drm/sun4i/文件夹下的三个文件,分别为sun4i_tcon.c、sun4i_drv.c、sun4i_backend.c。使用make menuconfig打开图形化配置界面,打开Bootup logo,其中的三个选项全部选中。拷贝zImage和suniv-f1c100s-licheepi-nano.dtb之后,重启设备。使用自己下载的5.2版本Linux源码,参照官方设备树修改。LCD显示实验使用LC-PI-200S开发板。
2024-06-12 21:51:37
367
原创 使用F1C200S从零制作掌机之官方LCD驱动测试
正点原子4.3寸:https://blog.csdn.net/qq_41709234/article/details/128586204。正点原子7寸:https://blog.csdn.net/qq_27350133/article/details/124602894。在应用层中,用户可以将fb设备看成是显存的一个映像,将其映射到进程空间后,就可以直接进行读写操作,写操作会直接反映在屏幕上。源码下载:https://github.com/Lichee-Pi/linux/tree/nano-5.2-tf。
2024-06-12 13:32:00
608
原创 使用F1C200S从零制作掌机之修改调试串口为UART1
LC-PI-200S的调试串口使用的是UART1。在使用OV5640的时候会与UART0冲突。
2024-06-08 13:49:14
176
原创 使用F1C200S从零制作掌机之按键中断(定时器防抖)
举一个实际的例子,比如当你在电脑上运行程序时,CPU在执行程序的指令,但是你突然按下了一个键盘上的按键,这时就会触发键盘对的中断信号,使得CPU暂停执行程序,切换上下文,去处理按键的输入信号,并通知对应的程序按键的具体信息,然后CPU会重新回到原来的上下文,结合应用程序运行状态继续执行指令。例如,当按键被按下时,GPIO引脚的电平会发生变化,从而触发中断,系统就可以在中断处理函数中执行相应的操作,如启动计时器、记录事件等等。根据实际情况和外部信号变化的时机,可以选择适合的触发方式来实现对中断的响应和处理。
2024-05-06 23:20:49
732
原创 使用F1C200S从零制作掌机之定时器点灯&ioctl
ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。对I/O通道进行管理,就是对设备的一些特性进行控制。虽然在文件操作结构体struct file_operations中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数, 拓展一些file_operations给出的接口中没有的自定义功能,则需要使用到ioctl()函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。
2024-05-03 14:31:59
51
1
原创 使用F1C200S从零制作掌机之u-boot移植
除了bootz命令外,有些系统里面还可能存在一个叫做bootm命令,这是是对没有使用设备树内核的镜像启动命令,早期版本的内核没有引入设备树,因此对于早期的内核一般使用的是bootm,其命令格式为bootm内核地址,比如bootm x0x30008000,意思是从0x30008000开始启动内核,启动内核的过程其实是将pc指针指向该地址,这样处理器就会从该地址处运行代码。对于mmc (TF卡)而言,在u-boot有专门的命令load mmc,该命令可以将mmc中的代码从flash搬运到指定的地址处。
2024-03-26 21:47:22
1546
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人