youyeetoo X1 是一款由深圳风火轮科技推出的x86架构单板电脑(SBC),可运行全功能版的windows和Linux, 具备低成本,高性能的特点(11代Intel CPU N5105),它主要面向AIOT和自动控制 市场,尺寸只有手掌大(115 * 75mm),接口却非常丰富,内置了3路串口UART,2路HDMI,6路USB口、1路I2C、1路SPI、5路GPIO等 AIOT物联网常用的接口,还能接7寸MIPI触摸屏。
主流配置8G DDR4+128G eMMC 的价格低至千元以内,是人工智能边缘计算的最佳选择。
Item | descriptions |
---|---|
处理器CPU: | 11代Intel@ Jasper Lake N5105 赛扬 (CPU工作频率2.0~2.9GHz,四核四线程10nm TDP 10W) |
显卡GPU: | Intel@UHD超高清核心显(频率:450-800MHz) |
内存RAM: | 板载4G/8G/16G LPDDR4 (可选) 主推8GB |
硬盘: | 板载eMMC:0/64G/128G/256G(可选) M.2扩展:支持 NVMe 2280 SSD固态(PCIE3.0)和m2 SATA2280 SSD(支持超高速 PCle Gen 3.0 x4NVMe 1.4,也兼容PCle Gen 3.0 x2 NVME) SATA扩展:通过SATA转接板 可以扩展 SATA3硬盘 (需要另购SATA转接板配件) Micro SD(TF): 支持市面上主流的所有TF卡 |
网络: | 有线网络: RJ45千兆网口 1个 无线网络: 通过M.2槽扩展,可选 WIFI5+BT5.0/WIFI6+BT5.2 双频WIFI蓝牙 4G LTE: 通过 M.2槽扩展,默认调 EC20 4G数据上网(需要另购4G转接板配件) |
显示输出 (多屏异显) |
HDMI 接口: HDMI2.0 4K/60Hz Micro HDMI接口: HDMI2.0 4K/60Hz MIPI FPC接口:默认支持风火轮 MIPI7LCD(1024 * 600 LCD触摸屏) |
USB | USB-A 座子: USB2.0 * 2(两个接口共用1.45A电流) USB-A 座子:USB3.0 * 2 (两个接口共用1.45A电流) USB插针:USB2.0 * 2(两个接口共用1.45A电流) |
音频输出 | 1. 3.5耳机座(4线式),可直接用带MIC的通话耳机 2. SPK插针座子:板载3W功放,匹配8欧喇叭 3. HDMI音频输出 (音频可以走HDMI输到电视上) |
音频输入 | 1. 板载数字麦克风MIC,带降噪功能 (默认BIOS支持) 2. 背面MIC座2PIN: 可接模拟信号的MIC 咪头3.3V,座子间距0.8mm(需换BIOS才能使用) |
M.2插槽扩展 | 2280规格:支持NVME SSD/M.2 SATA SSD (M-key) 2230规格:支持WIFI5+BT5.0/WIFI6+BT5.2 模组扩展 或者购买风火轮4G转接板,支持4G LTE (E-key) |
UART串口 | 有3个UART TTL电平串口,可转接 RS232或RS485等模块,也可以CAN通信模块 |
I2C | IIC接口* 1 4PIN插针引出,提供windows/linux 操作例子教程 默认3.3V |
SPI | SPI接口* 1 5PIN插针引出,提供windows/linux 操作例子教程 默认3.3V |
GPIO | GPIO* 5 6PIN插针引出,提供windows/linux 操作例子教程默认3.3V |
LED灯 | 板载红蓝LED灯2个,并联6PIN插针引出,方便安装整机 默认3.3V(提供教程API接口可控制亮灭或者心跳闪烁),默认红灯闪烁绿灯常灭,可编程控制 |
按键 | Power键 * 1 Reset键(清除RTC,不是重启键)* 1 |
RTC | RTC座子SH1.25规格,可以外接纽扣电池CR2032,实现断电时间和定时开机, 3.3V RTC一年功耗35mAh左右 |
通电开机 | 支持通电开机(可以在BIOS中设置) |
电源 | 12V DC座子(5.5*2.5)输入,2PIN PH-2A 2.54mm插针输入推荐电源适配器12V3A |
尺寸 | 115 * 75mm |
散热器 | FAN座子规格: SH1.04PIN座子 标配带散热器出货 5V/0.2A 功率 |
系统OS | Windows 10/11 和 Linux ubuntu /Linux Debian 提供硬件操作教程和例子 |
NFC | NFC被动通信,支持与手机进行数据传输,兼容android/iOS手机 风火轮提供例子和API教程 |
软件看门狗 | 标准windows API支持 |
CPU温度读取 | 标准windows API支持 |
CPU风扇调速 | 标准windows API支持 |
POE | 支持AC/BT协议30W POE模块,可定制60W支持(需要另购POE模组) (如果要用60W的POE模组,需要更换主板上的电压转换芯片才能支持,该芯8mm高) |
Youyeetoo x1的GPIO/UART/SPI/IIC电平是可以设置的,出厂默认3.3V,但是可以通过更换BIOS,设置出1.8V的电平
升级BIOS的方法请看这里
基础知识准备: 熟悉C/C++编程语言,并且了解函数指针、回调函数以及事件处理程序的理念。Visual Studio基本使用。
分为以WDM模型和WDF模型,WDM驱动程序是受信任的内核模式组件,因此系统对驱动程序输入提供有限的检查。相比之下,WDF模型侧重于驱动程序的要求,框架库处理与系统的大部分交互。新开发驱动微软建议使用WDF模型.
WDF模型又分2种驱动程序开发方式:KMDF内核模式驱动程序和UMDF用户模式驱动程序.我们常用说开发就是KMDF内核模式驱动程序。
VS2022+SDK(根据目标板系统版本进行下载)+驱动程序工具包WDK
VS2022安装:选择"使用c++的桌面开发"和"Visual Studio扩展开发"两个内容.
SDK网络安装即可,WDK网络安装即可。
安装请参考微软教程:https://learn.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk#download-and-install-the-windows-11-version-22h2-wdk
启动 Visual Studio。
在启动对话框中 选择“创建新项目 ”,或选择“ 新建| Visual Studio“文件”菜单中的“ 项目 ”。
在“ 创建新项目 ”对话框的右窗格中,找到并选择“ 内核模式驱动程序” (KMDF) 。选择“下一步” 。
填写 “项目名称”、“ 位置”和“ 解决方案名称 ”框,然后选择“ 创建”。 有关详细信息,请参阅基于模板编写 KMDF 驱动程序。
此时,你的驱动程序项目可以实现大多数 KMDF 驱动程序所需的一般代码。 现在你可以提供特定于你的设备的代码。
调试阶段,目标机器需要需要配置为测试模式,否则无法安装驱动:
管理员权限下运行如下终端命令:bcdedit /set testsigning on 重启系统
若不再测试,退出测试模式:bcdedit /set testsigning off 重启系统
编译出来的驱动程序文件夹,拷贝到目标机器,在目标机器上驱动文件夹里面有"XXX.inf"文件,鼠标右键安装即可.
由于驱动调试和普通应用调试方法不同,一般通过查看驱动程序过程日志来判断和分析驱动程序是否正常运行.
需要用到微软的工具:
DebugView(查看ktprint打印的日志) 下载地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/debugview
Driver Monito(查看WPP框架的日志)下载地址:https://www.drivers.com/download-monitor-drivers/
当驱动调试好,没有问题了,需要给驱动签名,驱动才能在系统正式模式下安装.
驱动签名:可以让微软签名,也可以让第三方机构帮助签名.价格不一样.
通过I2C/SPI 总线挂载外部设备,需要先在主板的ASL CODE中声明该设备,这样系统的设备管理器才会出现新设备.
关于如何加入新设备,后面关于I2C/SPI/NFC开发中会具体提到.
目标系统在测试模式下,驱动开发过程,不刷BIOS,新设备可以通过注入到注册表中,就能进行开发测试.
新设备注入注册表流程(该过程,系统处于测试模式才有效.)
用到的工具:
1.SDK自带的asl.exe: 所在路径C:\Program Files (x86)\Windows Kits\10\Tools\SDK具体版本号\x64\ACPIVerify
2.iasl-win:下载地址:https://www.intel.com/content/www/us/en/download/774881/acpi-component-architecture-downloads-windows-binary-tools.html
以下在目标机管理员身份,运行命令:
1)从注册表缓存中读取BIOS配置,并保存到DSDT0000.bin文件
asl.exe /tab=DSDT /c
2)反编译DSDT0000.bin文件,生成DSDT0000.dsl (ASL CODE文件)
.\iasl.exe -ve .\DSDT0000.bin
3)修改DSDT0000.dsl 文件,添加新设备到改文件中
根据实际需要,添加设备到文件中,后面的I2C/SPI/NFC 使用介绍中 具体举例需要添加的内容.
4)编译修改好的DSDT0000.dsl,会生成DSDT0000.aml文件
.\iasl.exe -ve .\DSDT0000.dsl
5)写入注册表缓存
.\asl.exe /loadtable DSDT0000.aml
6)忽略签名
Bcdedit /set testsigning on
7)重启系统,这样就能在设备管理器里面看到新设备.
若要使该ASL code失效,卸载一下即可:
.\asl.exe /loadtable DSDT0000.aml -d
重启系统,就恢复未添加设备状态.
等新设备调试好了,需要更新到BISO代码里面,并重新刷BIOS.
本教程主要是示例如何在windows应用程序中调用youyeetoo X1主板上的硬件资源,方便实际项目中控制硬件。
主要是展示在youyeetoo X1卡片电脑上,运行linux的相关使用。
1、本教程以ubuntu-22.04.x-desktop-amd64 为例,应用程序开发用到的基本工具,基本工具安装如下:
#update soft list
sudo apt-get update
# install make
sudo apt install make
sudo apt -y install make-guile
#install gcc g++
sudo apt -y install gcc
sudo apt -y install g++
# install cmake
sudo snap install cmake
sudo apt -y install cmake
#install git
sudo apt -y install git build-essential dkms --force-yes
#install vim
sudo apt -y install vim
#install curl
sudo apt -y install curl
#install wget
sudo apt -y install wget
2、软件下载更新的时候,网速没问题的情况下,若下载明显特别慢,可以改成国内镜像(按需修改),比如使用清华大学镜像,参考如下:
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
3、linux应用开发,知识储备:C/C++编程开发基础,make编译和Makefile编写基础.
chipset 下面 Wake on Power (Automatic On) 项目,s0 是上电自启 s5不上电自启