F1C100S只有一个USB接口,在实际应用中加hub成为必须,最近在调试使用4G模块进行联网,发现把4G模块直接接到OTG接口上使用正常,经过USB Hub之后就不正常了,现象是设备正常枚举,但往 ttyUSB 发AT命令没任何响应,测试了SIM7600和EC200S结果都一样。系统是主线linux-5.2,使用V3S(也是主线linux-5.2)进行测试却没有出现类似问题,是否可以确定是F1C100S芯片的问题?被这个问题困扰好久了,应该怎么定位和解决?希望各路大神帮忙分析指点一下,非常感谢!
离线
V3s经过HUB接 4G模块确实OK, AIR720, AIR724我试过都可以的.
F1C倒是没注意.
离线
是不是因为F1C100S的usb端点或者管道太少,好像只有3个,没办法扩展吗
离线
F1C100S只有一个USB接口,在实际应用中加hub成为必须,最近在调试使用4G模块进行联网,发现把4G模块直接接到OTG接口上使用正常,经过USB Hub之后就不正常了,现象是设备正常枚举,但往 ttyUSB 发AT命令没任何响应,测试了SIM7600和EC200S结果都一样。系统是主线linux-5.2,使用V3S(也是主线linux-5.2)进行测试却没有出现类似问题,是否可以确定是F1C100S芯片的问题?被这个问题困扰好久了,应该怎么定位和解决?希望各路大神帮忙分析指点一下,非常感谢!
你用的是什么hub芯片?
再问一下,你换一下4.15内核试试
离线
接了hub后,如果保持跟otg下载口一起共用 有没有什么办法可以保持 共用 我试了接了hub再接micro口,哪怕把GL850关掉电,也会影响下载 识别不到下载口
离线
离线
应该是端点数不足
离线
你试一下你现在的内核,HUB可不可以接2个U盘或者usb转串口模块
试了通过hub接3个U盘或者USB转串口模块都可以正常枚举和读写,因为V3S相同的内核以及配置都能正常使用,所以我不太怀疑是内核配置的问题,试过把OTG关掉只作HOST也是不行。我还对比了一下V3S和F1C100S中USB驱动源码(sunxi-usb.c和phy-sun4i-usb.c),里面对于USB端点数的配置两者也是一样的。我也怀疑过芯片USB端点数量的问题,看了F1C600的芯片手册,USB端点数和V3S是一样有8个,所以买了F1C200S和F1C600来替换,结果都一样,真是不知道怎么办了。
离线
不知道,我是为了你懂得
离线
如果真的是芯片硬件不支持,至少希望能够知道问题是出在哪里,哪个地方导致它不支持,不然我不甘心就这样放弃。
离线
HUB是什么芯片的?我使用HUB连接CDC/ACM协议的外设就发现一个奇怪现象, Windows/Linux现象一样。如果HUB芯片是FE1.1S,则HUB只能连接一个CDC/ACM设备进行正常通信,如连接2个或以上就会发生枚举正常但通信错误,如果改用HUB芯片是FE2.1或GL850A, GL850G的HUB则不会出现相同的问题,其他的HUB类型没有测试。感觉FE1.1S的TT转换有问题,因为FE1.1S上接端口默认是HS而下接的CDC/ACM端口是FS的需要用到TT转换, 试验过强制把FE1.1S的上接端口设为FS则通信不再出错问题消失。
最近编辑记录 zhjerry (2020-05-27 13:32:21)
离线
F1C200s用户能用的端点只有3个
离线
试了通过hub接3个U盘或者USB转串口模块都可以正常枚举和读写,因为V3S相同的内核以及配置都能正常使用,所以我不太怀疑是内核配置的问题,试过把OTG关掉只作HOST也是不行。我还对比了一下V3S和F1C100S中USB驱动源码(sunxi-usb.c和phy-sun4i-usb.c),里面对于USB端点数的配置两者也是一样的。我也怀疑过芯片USB端点数量的问题,看了F1C600的芯片手册,USB端点数和V3S是一样有8个,所以买了F1C200S和F1C600来替换,结果都一样,真是不知道怎么办了。
你好,能把详细到对照哪些文件也发上来吗?
我不太清楚V3S有几个端点,
但是你说V3S和F1C200S的端点一样多,
所以我想看一下源码啥的,看看怎么回事
离线
F1C100S只有一个USB接口,在实际应用中加hub成为必须,最近在调试使用4G模块进行联网,发现把4G模块直接接到OTG接口上使用正常,经过USB Hub之后就不正常了,现象是设备正常枚举,但往 ttyUSB 发AT命令没任何响应,测试了SIM7600和EC200S结果都一样。系统是主线linux-5.2,使用V3S(也是主线linux-5.2)进行测试却没有出现类似问题,是否可以确定是F1C100S芯片的问题?被这个问题困扰好久了,应该怎么定位和解决?希望各路大神帮忙分析指点一下,非常感谢!
你在晕哥群吗?我最近在画板子,把HUB画上了,如果真的如何都不能用 那可就太难了
离线
下面是F1C200S手册和V3S手册中关于OTG部分的说明
V3S说自己的USB HOST是EHCI和OHCI并且给了寄存器,
而F1C200S并未提及USB是啥,而且也没有给寄存器。
都说自己8个端点可配置。
感觉不能用可能是分配的问题
在 kernel/drivers/usb/musb/sunxi.c 中有定义端点数,这个数不知道是怎么得到的:
对于V3S:
/* H3/V3s OTG supports only 4 endpoints */
#define SUNXI_MUSB_MAX_EP_NUM_H3 5
对于其它(包括F1C100S):
/* Allwinner OTG supports up to 5 endpoints */
#define SUNXI_MUSB_MAX_EP_NUM 6
离线
离线
我看了一下,用串口确实可以PPP,可以打电话可以联网,
串口速度最快921600bps,50KB/S的速度有些慢,哈哈,不过也行拉,不管了,其实主要为了打电话
F1C100S的的串口FIFO深度只有32 bytes,如果设为half full中断,在921600bps下,173us中断一次,如果不打RT-linux的patch,中断延迟会不会造成FIFO overrun?
离线
经过测试发现,通过ttyUSB给4G模块发AT指令,模块是能收到的,只是出于某种原因F1C100S没收到模块的回复。用真实串口去给模块拨号,发现也连不上网,说明不止tttyUSB有问题,连网卡驱动也受到hub的影响,这就麻烦了。
离线
你的ttyUSB是4G模块生成的吗?
还是说F1C200S外接的USB转串口?用真实串口去给模块ppp无法上网?????这是什么操作??不是应该没有影响吗?也没通过USB呀
4G模块是RNDIS拨号上网,不是PPP,当4G模块通过USB接到HOST时,会生成几个ttyUSB设备和一个网卡接口,ttyUSB接口走调试log和AT命令,网卡接口走网络数据。AT命令也可以直接通过真实串口来控制4G模块,用法和虚拟出来的串口是一样的。
离线