立即注册
查看: 1079|回复: 3

[资料] 鼎桥MH5000-82M 5G模组linux-android内核USB使用指南

已绑定手机
发表于 2023-5-11 14:11:39 | 显示全部楼层 |阅读模式 来自 广东省深圳市南山区
MH5000-82M 模组采用的展锐的 ORCA 芯片平台(IVY510)。usb 驱动支持 usb2.0 和usb3.0.
模组开发板采用 TYPE-A 的 USB 接口,模组设计了 USB_DETECT pin,默认模组内部下拉。
USB_DETECT pin 用于实现 USB3.0 热拔插检测。当模组收到上升沿中断时,驱动程序根据中断类型走 USB 插入的流程,当收到下降沿中断时,走 USB 拔出的软件流程,实现 USB 的热插拔
备注:
 windows upgrade 升级工具依赖 usb2.0 数据总线枚举,故用户必须把模组的(D+/D- )这两个 pin 连接出去到 windows PC。
 linux 上位机升级工具 Dloader 用于升级 pac 包时候,依赖 usb2.0 数据总线枚举,故用户必须把模组的(D+/D- )这两个 pin 连接出去到上位机。
Dloader 升级工具用于升级 swu 包时候,没有这个限制。

4.2 USB 模式设置组合
当前模组通过 USB 线连接上位机,可以通过 AT 命令切换不同模式。AT 命令说明如下:
AT^SETMODE 命令用于设置和查询 Windows 和 Linux 上位机的 USB 的端口形态,以适应不同场景下的客户需求。

Note:Windows 下不支持模式 1(ECM)和模式 2(NCM)的驱动。Linux 下支持所有模式的驱动。
release/User 版本:
<mode>:端口形态配置。
0:支持 RNDIS 网卡(上位机可枚举出 1RNDIS 网卡+1AT+1DATA+1DIAG+1LOG+1MODEM)
1:支持 ECM 网卡(上位机可枚举出 1ECM 网卡+1AT+1DATA+1DIAG+1LOG+1MODEM)
2:支持 NCM 网卡(上位机可枚举出 1NCM 网卡+1AT+1DATA+1DIAG+1LOG+1MODEM)debug 版本:
<mode>:端口形态配置。
0:支持 RNDIS 网卡(上位机可枚举出 1RNDIS 网卡
+1AT+1DATA+1DIAG+1LOG+1MODEM+1ADB)
1:支持 ECM 网卡(上位机可枚举出 1ECM 网卡
+1AT+1DATA+1DIAG+1LOG+1MODEM+1ADB)
2:支持 NCM 网卡(上位机可枚举出 1NCM 网卡
+1AT+1DATA+1DIAG+1LOG+1MODEM+1ADB)
NOTE: 通过 AT^VERSION?命令可以查看模组内是 debug 版本还是 release 版本。如下图所示,为 debug 版本时的状态:
图 4-1 查询当前版本号
注:^VERSION:EXTU 一行里模组型号会跟实际保持一致,其它信息也可能会随版本变化有些差异。
图 4-1 查询当前版本号.png

5 Linux 上位机 USB 驱动配置
5.1 USB 相关驱动
MH5000-82M 模组对接上位机,需要集成如下 3 种驱动。
1. usb 串口驱动
常用 linux 内核的 USB 转串口驱动有如下两种:
 usbserial.ko
 option.ko
对接 linux 上位机时,目前使用 usb 转串口驱动 usbserial.ko。

2.usb 网卡驱动
linux 内核默认支持 RNDIS/NCM/ECM 网卡驱动,用户只需打开上位机相关网卡驱动的编译宏。
参考“5.2.1 代码修改”中的"集成 usb 网卡驱动"。

3.usb 下载驱动
升级场景需要使用展锐 USB 下载专用驱动 sciu2s.ko。需要用户参考如下“5.2 代码集成方式”或“5.3 手动配置方式”。如下有两种方案来实现 usb 相关驱动加载,任选其一。
(1)代码集成方式:适用于需要直接集成驱动功能到最终发布版本文件里的场景,也是优先推荐的处理方式。
(2)手动配置方式:适用于需要临时调测的场景。

手动配置方式下,可能会有 USB 网卡被误识别为 ttyUSBx 虚拟串口的问题,此种情况下,推荐参考“(1)代码集成方式”,将提供的驱动代码集成到上位机内核代码中并重新编译生成镜像文件。

5.2 代码集成方式
按照如下两小节中的说明修改上位机 linux 内核源码,重新编译内核并加载后,重启上位机,将上位机和模组用 USB 线连接,正常情况下应该可以枚举出多个 usb 串口(/dev/ttyUSBx)。
注:鼎桥官方提供有 linux 上位机驱动的 patch 文件“TD-Tech_5Gmodule_USB_HostLinuxDriverPatch.diff.patch”(文件名或版本号后续可能略有差异),可通过技术支持途径获取最新文件并做参考。

5.2.1 代码修改
 集成 usb 串口驱动
修改 linux 上位机中如下几个跟 USB 串口驱动相关的内核源文件:
include/linux/usb/serial.h
drivers/usb/serial/generic.c
drivers/usb/serial/usb-serial.c
注 1:针对 usb-serial.c 文件的修改,主要是为防止网卡接口以及 debug 版本下的 ADB接口被误识别为 USB 虚拟串口;
注 2:如下提供的修改内容,主要是基于 patch 文件的差异部分,请根据实际情况适配和参考,基于不同内核版本有可能需要进行简要的细节调整(主要是某些变量名称或者结构体定义可能有变化等,逻辑功能一般不需修改)。
(1)generic.c 文件
图 5-1 generic.c 文件修改说明
图 5-1 generic.c 文件修改说明.png
上述图片红框中的 patch 代码,具体如下:
-static struct usb_device_id generic_device_ids[2]; /* Initially all zeroes. */
+#ifdef CONFIG_SUPPORT_TDTECH_5G_MODULE
+ /*td-tech: Enlarge group size for supporting td-tech 5G module */
+ static struct usb_device_id generic_device_ids[10]; /* Initially all zeroes. */
+#else
+ static struct usb_device_id generic_device_ids[2]; /* Initially all zeroes. */
+#endif

游客,如果您要查看本帖隐藏内容请回复


已绑定手机
发表于 2023-10-17 11:48:52 | 显示全部楼层 来自 马来西亚
谢谢分享
已绑定手机
发表于 2024-2-12 15:53:58 | 显示全部楼层 来自 四川省德阳市
试试看呢
已绑定手机
发表于 2024-2-14 00:05:35 | 显示全部楼层 来自 浙江省嘉兴市海宁市
谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表