手搓一台主机很难吗?我花200多做出来了_泰山_接口
实在这个像“手办”一样的方块,是一个迷你主机。
主打一个超超超便携!
开源网址:https://oshwhub.com/flyn/flpc
它还有带屏显的拓展版本,摇身一变,便是手机
开源网址:https://oshwhub.com/flyn/flpc
为什么要做这个主机?
本项目的初衷是想以“泰山派”开拓板为核心打造一个PC主机,期望制作过程可以进行linux的意见意义学习和开拓。
然后,在打造过程中,又顺便设计了:
——2块扩展板,用于增加接口
——内置了 散热风扇、扬声器、咪头
——转接出 GPIO排座
虽然一开始,是随着泰山派演习营活动边做边学,命令也是边翻文档边敲。但还是走通了嵌入式学习与开拓的全体流程,完成了项目制作。可喜可贺~
一、迷你主机的参数/亮点?
利用立创泰山派开拓板设计如果你已经有泰山派,DIY这个项目的总本钱可以压缩到100多元!(该本钱需节约液晶屏和外壳)便携,能轻松揣兜里!
出差旅游都能带!
整机尺寸为5.4X5.2X11.3(cm)扩展出M.2硬盘、千兆网口、USB等多种接口,可运行Ubuntu和Android系统。CPU: RK3566,4核Cortex-A55,主频1.8GHzGPU: ARM G52 2EE内存: 2GB LPDDR4存储: 16GB EMMC其他接口: TF卡座、MicroHDMI、2.4G wifi、蓝牙、USB2.0 1、Type-C 1、debug串口 1拓展板 存储接口:M.2接口硬盘 (2242尺寸,SATA协议)拓展板 其他接口:3.5mm耳机接口、Typ-c口 1、USB2.0 3、千兆网口 1、Typec电源接口、GPIO扩展排座拓展板 显示屏:3.4寸 412x960 RGB 电容屏运用处景:PC主机、桌面摆件、智能家居中控、NAS存储
想制作一个这样的主机,如何硬件设计?如何将泰山派开拓板的浸染发挥出来?
二、硬件部分(14张电路设计图)
本项目撤除泰山派开拓板外共有2块PCB板(如果要显示屏还要做一块转接板),我将其命名为EXP扩展板和IO扩展板。
顶部盖板
EXP拓展 - POWER
EXP拓展 - GMAC
EXP拓展 - POGO
EXP拓展 - HPJ
EXP拓展 - USB2.0
EXP拓展 - SSD
EXP拓展 - PCB
io扩展-事理图
io扩展-PCB图
lcd_adapt-事理图1
lcd_adapt-事理图2
lcd_adapt-PCB图
io_extend_hj
1.EXP扩展板
该板紧张通过FPC排线和弹簧顶针 (POGO PIN)从泰山派开拓板上引出电源接口、网口、USB口、SATA接口、耳机接口 等。各接口如下所示:
(1)如何实现拓展接口功能?有什么设计把稳事变?
USB扩展芯片利用SL2.0A,是一颗支持1转4的HUB芯片。
紧张浸染:将EXP接口中的USB3扩展出4个usb2.0口,方便外接 u盘、键盘、鼠标、usb摄像头(支持开拓)。
设计把稳事变:
①USB3原来是3.0接口,其部分引脚和sata1是共用的,不能同时利用,需在设备树里将其修正为2.0接口,只利用USB3_HOST1_DP和USB3_HOST1_DN两只引脚。
②主控的SATA1引出了M.2接口,可接入2242尺寸 SATA协议 的硬盘。测试时不要买成mSATA硬盘和NVME协议硬盘,前者尺寸大后者协议不对!
(2)主机如何通过网线连接上网?
GMAC的phy芯片采取瑞昱的RTL8211F,参考立创开拓板官方出的扩展板设计即可。
2.IO扩展板
如何增加主机的可玩性呢?就看IO拓展板了!
首先,IO扩展板将泰山派开拓板上的40PIN扩展口引出到侧面,通过PWM14引脚驱动散热风扇,并设计了DCDC电路用于风扇供电(5V转12V)。
其次,这块板接入了所有外扩IO,大家可灵巧设计,比如你可以:
在板上加MP6050实现自动翻转屏幕直接做个模块从背面排座插入开源项目的特点和乐趣就在此!
3.LCD适配板
电容屏:HD34004C40RGB接口驱动芯片:st7701s触摸驱动:cst328(1)没有在泰山派引出RGB接口,要怎么加电容触摸屏?
这块适配板的浸染,便是将mipi接口转为RGB接口。
(2)详细怎么操作?
这款屏幕则须要通过spi引脚进行初始化。
而泰山派的mipi接口座只供应了背光、mipi引脚。
为了和IO扩展板独立开来,不该用其上面的IO,就给适配板上其余加了一颗smt32g030f6p6来对液晶屏进行初始化操作。
(3)焊接与烧录把稳事变?
这块适配板是直接贴在液晶屏背面的,要把稳:
排针仅用于烧入smt32固件,最好不要焊,用弹簧顶针插上烧固件;背面用绝缘胶贴好,防止碰到液晶屏金属背板导致短路;编码开关是用于兼容同样接口定义+不同驱动芯片的液晶屏,比如4寸RGB方屏、4寸RGB长条屏,此项目可以不用焊接;该屏幕背光电流最大20mA,需将泰山派上的背光限流电阻R95和R96都改为22R!!
!
三、软件部分
1.液晶适配板STM32驱动
这里的代码通过STM32CubeMX天生,基于Keil编写。
当stm32检测到复位旗子暗记后开始初始化液晶屏。
代码比较大略查看lcd_config.c就行,以下是lcd_config_task函数,在主函数中循环运行。
void lcd_config_task(void){ //static uint8_t status = kStatus_idle; static uint8_t status = kStatus_reset; static uint32_t tick; static lcd_t lcd_select = NULL; if (rst_key_is_pressed()) // 检测reset_key旗子暗记 { status = kStatus_reset; } switch (status) { case kStatus_reset: HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_RESET); tick = HAL_GetTick(); status = kStatus_config; break; case kStatus_config: lcd_select = read_lcd_selected(); // 读取lcd型号id if (lcd_select) { if (HAL_GetTick() - tick > lcd_select->reset_time) { HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET); lcd_select->config(); // 配置lcd status = kStatus_idle; } } else { // 找不到对应lcd status = kStatus_idle; } break; case kStatus_idle: default: break; }}
2.开拓板Android系统
目前利用的是Android系统,基于泰山派官方资料里的SDK和Ubuntu18.04.6环境编译。官方sdk已基本适配,轻微修正下设备树即可,如果要带液晶屏须要添加触摸驱动。
(1)想外接显示器+显示屏,要怎么选择?PC主机可以通过泰山派开拓板的hdmi接口连接到外接显示器,也可以加装3.4寸长条屏显示,通过修正tspi-rk3566-user-v10.dts切换。
虽然可以同时利用mipi和hdmi接口,但是RK3566只能异屏同显。也便是说在利用3.4寸屏时接hdmi显示出来的也是此分辨率的竖屏,利用体验上还不如二选一好。(下图来自泰山派开拓板资料)
(2)USB3.0和SATA1不能同时利用,怎么破?
根据瑞芯微的文档解释,USB3.0和SATA1是不能同时利用的,但是我实在只用了USB中的dp和dn,引脚上与SATA是没有重叠的。
万能的吴工提出了把USB3.0改为2.0和SATA共用的建议,并且给出了设备树的修正方案。感谢吴工^ ^
&usbhost_dwc3 { phys = <&u2phy0_host>; phy-names = "usb2-phy"; maximum-speed = "high-speed"; status = "okay";};&combphy1_usq { rockchip,dis-u3otg1-port; status = "okay";};&sata1 { rockchip,enable-ssc; status = "okay";};
(3)关于触摸驱动?
选用的3.4寸液晶屏利用的触摸芯片为cst328,我按照官方文档里的触摸讲解,重新写了个驱动。
如果你要把触摸驱动直接编译到内核中,请根据下方步骤操作:
①将驱动文件复制到kernel/dirvers/input/touchscreen目录下,修正touchscreen 目录下的Kconfig文件以及Makefile文件。
②调出menuconffig,找到CST328_Touchscreen使能后保存配置,进行内核编译。
③单独将kernel目录下的boot.img通过RKDevTool工具烧入即可。
source "drivers/input/touchscreen/hyn_cst328/Kconfig"obj-y += hyn_cst328/
四、组装解释
1.物料清单
2.组装流程
五、作者有话说
在立创开拓板和星火操持的双重耗材帮助下制作迷你主机。
这个心途经程是若何的呢?
这个迷你主机从最初的一个想法到做出实物,做做停停花了大概2个月的业余韶光。
从画板的从容不迫到编写linux驱动的茫然无知,离开了mcu的舒适区,投入了linux的怀抱中,至心觉得,这怀抱好硬好硌......每晚战斗到24点,最欣慰的是头发回在。后续我会在这个迷你主机的根本上深入研究学习,希望能与大家一同进步!
(为啥总觉得在哪说过 - -||)请永久相信,每一次的挫折都是在为自己积蓄提高的力量!
在这里感谢立创开源平台,感谢立创开拓板卖力人吴工的耐心辅导,感谢星火操持卖力人陈工的耗材帮忙支持。emmm,星火会快到了,我养了2个月的头发到时候只能靠这点和吴工battle下了。
希望这个"迷你主机"抛砖引玉,能有更多的具有开源精神的伙伴们一起共建一个强大的开源生态!
开源引用:
官方的泰山派开拓板项目okll的“泰山派MIPI DSI 转 RGB 适配器”项目风漠兮的“泰山派4寸86屏转接板”项目再次感谢以上开源作者!
【正文完】
关注我,看一手优质开源项目
本文系作者个人观点,不代表本站立场,转载请注明出处!