站内搜索
发作品签到
专业版

带GPIO/I²C/SPI的随身WiFi扩展板

工程标签

1.2k
0
0
0

简介

为高通410随身WiFi棒子设计的多功能扩展板,集成了USB HUB、有线网口、GPIO/I2C/SPI接口和充放电管理电路,将随身WiFi变身成为功能完备的便携式开发平台。

简介:为高通410随身WiFi棒子设计的多功能扩展板,集成了USB HUB、有线网口、GPIO/I2C/SPI接口和充放电管理电路,将随身WiFi变身成为功能完备的便携式开发平台。

开源协议

GPL 3.0

创建时间:2025-11-01 20:38:37更新时间:2025-11-17 09:45:35

描述

硬件规格

核心芯片

  • CH334R:USB HUB芯片,扩展4路USB接口
  • RTL8152B:USB转百兆以太网芯片
  • CH341F:可通过短接片切换工作模式,1、串口模式:实现USB转串口功能;2、同步串口模式:实现USB转GPIO/I²C/SPI接口。
  • IP5407:充放电管理芯片,支持锂电池供电。

接口配置

  1. USB Host接口
    项目中包含两个版本,一个是Type-A * 1 + Type-C * 1,还有一个是Type-A * 2;
    可连接U盘、无线网卡、键盘等设备。
  2. 有线网口
    RJ45百兆网口,基于RTL8152B芯片,debian系统自带驱动,提供稳定的有线网络连接。
  3. GPIO/I²C/SPI接口
    最大达8路GPIO数字输入输出(其中两路仅可作输入,其它6路即可输入也可输出),可连接LED、按钮等;
    I²C总线接口,支持温湿度传感器、OLED屏、陀螺仪等,支持最大速率750KHz;
    SPI接口,可连接TFT屏幕、RFID模块、SD卡等。经测试官方库的spi和GPIO不能同时使用,而使用第三方驱动可以,但是第三方驱动通讯速率很低(400KHz)。
  4. OLED屏专用I²C接口
    引出了5V、GND、SCL、SDA、D1、D2、D4、D6引脚到单独的SH1.0接线座,方便直接连接OLED屏和按键。
  5. 可切换USB信号
    通过拨动开关可切换USB信号的连接对象,切换到HUB时,CH334芯片的上行信号连接到Type-C充电口,通过USB线可作为电脑的扩展坞使用;切换到UFI时,CH334芯片的上行信号连接到随身WiFi。
  6. 充电接口
    支持锂电池充放电,TYPE-C电源输入,充放电状态指示,输出电压稳定。

焊接

  • 主要元件采用0805封装,适合新手焊接;
  • 除了RTL8152B和CH341F两个QFN封装的芯片,必须使用热风枪或者加热台(我网上7块钱买的PTC加热板也能完美焊接QFN)。
  • 注意:有线网口元件(HR911105A)、CH341模式选择的3PIN插针、4PIN串口连接座的针脚会影响背面的随身WiFi的安装,需要用斜口钳将针脚剪短。建议焊接前先剪短针脚后用砂纸打磨整齐再焊接,焊接好后贴一点胶带避免随身WiFi接触到引脚。

3D外壳

项目中包含3D外壳的设计,这个外壳设计了OLED显示屏和18650电池的位置,其中Broad1(1A1C)版本的外壳长度超过了零点几毫米不能使用免费打样券,我打印了一个,OLED屏开孔不太完美,还有18650电池没有横向限位可能会滑动;Broad2(2A)版本轻微修改了板子的尺寸,应该可以使用免费打样券打印,我还没测试,这个版本修改了OLED屏的开孔,增加了电池限位。还有两个版本是不兼容的。

应用场景

  1. 物联网开发
    智能家居控制器
    环境监测站
    远程数据采集

  2. 嵌入式学习
    Linux驱动开发学习
    硬件接口编程实践
    电子制作项目平台

  3. 网络应用
    便携式路由器
    网络调试工具

  4. 创客项目
    机器人控制
    数据采集系统

软件支持

系统要求

系统 状态 驱动 备注
Debian 已测试,能正常使用所有接口
  • RTL8152B和CH334芯片系统自带驱动可直接使用
  • CH341芯片串口模式自带驱动可直接使用
  • CH341 GPIO/I²C/SPI模式需安装驱动方可使用
请将USB模式设置为Host模式
OpenWRT 未测试,理论可行 暂未测试  

驱动安装

Debian

1.文件准备(附件中)

ch34x_pis.ko #CH341 I2C模式驱动

ch341.ko #CH341 串口驱动

2.上传文件到Debian(随身WiFi)

可使用WinSCP(可视化)、PSCP(命令行)等工具将上述两个文件上传到Debian的/root目录中。

3.开始安装

这个Debian系统中原本存在ch341串口模式的驱动,但是驱动太老了会跟I2C模式的CH341产生冲突,所以必须先卸载原本系统中的ch341驱动。

(下面所有指令中的5.15.0-handsomekernel+为内核驱动版本,你的有可能会不一致请以你的文件名为准)

 

# 卸载旧驱动

rmmod ch341

rm /lib/modules/5.15.0-handsomekernel+/kernel/drivers/usb/serial/ch341.ko

# 开始安装新驱动

cd /root

# 安装新ch341串口驱动

insmod ch341.ko

cp -f ./ch341.ko /lib/modules/5.15.0-handsomekernel+/kernel/drivers/usb/serial/

# 安装ch341 I2C模式驱动

insmod ch34x_pis.ko

mkdir -p /lib/modules/5.15.0-handsomekernel+/kernel/drivers/usb/misc/

cp -f ch34x_pis.ko /lib/modules/5.15.0-handsomekernel+/kernel/drivers/usb/misc/

depmod -a

4.验证驱动

方法一:检查模块加载情况

lsmod | grep ch34

# 应输出以下相关信息:

# ch34x_pis              32768  0

方法二:检查设备目录节点

ls /dev/ch34x_pis*

# 如果存在/dev/ch34x_pis0设备则设备被正确加载。

OpenWRT(待完善)

待完善

 

GPIO/I²C/SPI使用示例

提供完整的示例代码(见附件),包括:

文件名

说明

blink.c

GPIO驱动LED灯闪烁

button.c

GPIO读取按键输入来控制LED灯亮灭

oled_iic.c

I²C驱动0.96寸SSD1306的OLED屏

oled_spi.c SPI驱动0.96寸SSD1306的OLED屏

附件介绍

附件文件结构/

├── ch341_demo.zip     # 示例代码

│   ├── lib/      # 库文件

│   ├── blink.c # GPIO驱动LED闪烁示例(代码文件)

│   ├── blink            # GPIO驱动LED闪烁示例(已编译的可执行文件)

│   ├── button.c # GPIO读取按键状态控制LED亮灭示例(代码文件)

│   ├── button            # GPIO读取按键状态控制LED亮灭示例(已编译的可执行文件)

│   ├── font.h # OLED示例需要的字库文件

│   ├── oled_iic.c # I2C驱动OLED示例(代码文件)

│   ├── oled_iic          # I2C驱动OLED示例(已编译的可执行文件)

│   ├── ch341_lib.h # CH341官方提供的库文件(与lib目录中文件相同)

│   └── libch347.so       # CH341官方提供的库文件(与lib目录中文件相同)

├── ch341驱动.zip       # 驱动文件

│     ├── ch34x_pis.ko      # GPIO/I²C/SPI模式的CH341驱动

│     ├── ch341.ko         # 串口模式CH341驱动

│     └── ch341_I2C模式驱动安装.txt # 驱动安装说明

├── SPI示例代码及驱动.zip       #新更新的SPI驱动OLED示例代码及第三方驱动

      ├── spi-ch341-usb.ko      # 第三方SPI驱动

      ├── oled_spi.c         # spi驱动oled示例(代码文件)

      └── oled_spi          # spi驱动OLED示例(编译好的可执行文件)

相关链接

【哔哩哔哩】带GPIO/I²C/SPI的410随身WiFi扩展板,最低成本Linux开发板- https://b23.tv/hBpmEv1

哔哩哔哩】410随身WiFi扩展板安装GPIO/I²C/SPI模式的CH341驱动- https://b23.tv/GtNfJqq

哔哩哔哩】用随身WiFi扩展板的GPIO驱动LED灯闪烁- https://b23.tv/lAwdOtM

哔哩哔哩】随身WiFi扩展板的GPIO读取按键状态控制LED灯- https://b23.tv/uM3bxpD

哔哩哔哩】随身WiFi驱动I²C的OLED屏- https://b23.tv/DLG7Z1W

 

第三方SPI驱动项目-https://github.com/gschorcht/spi-ch341-usb

OpenStick项目[https://www.kancloud.cn/handsomehacker/openstick/2636505]

沁恒CH341芯片手册[https://www.wch.cn/downloads/CH341DS1_PDF.html]

沁恒CH341驱动及示例代码[https://www.wch.cn/downloads/CH341PAR_LINUX_ZIP.html]

 

致谢

感谢立创EDA提供的设计平台和开源社区的支持!

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
ch341_demo.zip
16
2
ch341驱动.zip
16
3
SPI示例代码及驱动.rar
10
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航