3G USB调制解调器无法响应AT命令

时间:2013-05-22 15:54:56

标签: android 3g modem

我将一台3G调制解调器(中兴通讯MF-210)作为mini-pci daugther主板插入我的平板电脑。

我正在尝试将其集成为我的开源Android JB移植项目的一部分:

https://groups.google.com/forum/?fromgroups=#!forum/renesas-emev-osp

所以,我通过添加这些配置选项来修改我的内核以包含USB串行GSM调制解调器支持:

CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y

我已经包含了启用3G模块上电的代码(由SoC GPIO引脚控制)。 就我至少可以理解,这部分看起来像是在工作。当调制解调器通电时,我将这些日志记录在dmesg中:

6>usb 1-1.1: new high speed USB device using emxx-ehci-driver and address 9
<6>option 1-1.1:1.0: GSM modem (1-port) converter detected
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_startup
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_setup_urbs
<6>usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0
<6>option 1-1.1:1.1: GSM modem (1-port) converter detected
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_startup
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_setup_urbs
<6>usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1
<6>option 1-1.1:1.2: GSM modem (1-port) converter detected
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_startup
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_setup_urbs
<6>usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB2
<6>option 1-1.1:1.3: GSM modem (1-port) converter detected
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_startup
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_setup_urbs
<6>usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB3
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_open
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_dtr_rts
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_set_termios
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write_room: 16384
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: write (8 chars)
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: endpoint 2 buf 0
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: wrote (did 8)
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write_room: 12288
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: write (1 chars)
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: endpoint 2 buf 1
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_outdat_callback
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: wrote (did 1)
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_outdat_callback
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_indat_callback: c78f9640
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_indat_callback: c78f9140
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_indat_callback: c78f90c0
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write_room: 16384
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: write (8 chars)
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: endpoint 2 buf 0
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: wrote (did 8)
...

注意我在usb_wwan.c中启用了调试

我在文件系统上得到以下内容:

# ls -l /dev/ttyUSB*                                          
crw-rw---- radio    radio    188,   0 2013-05-22 15:50 ttyUSB0
crw-rw---- radio    radio    188,   1 2013-05-22 15:51 ttyUSB1
crw-rw---- radio    radio    188,   2 2013-05-22 15:50 ttyUSB2
crw------- root     root     188,   3 2013-05-22 15:50 ttyUSB3

# cat /proc/tty/driver/usbserial                                
usbserinfo:1.0 driver:2.0
0: name:"GSM modem (1-port)" vendor:19d2 product:2003 num_ports:1 port:1 path:usb-emxx_ehci-1.1
1: name:"GSM modem (1-port)" vendor:19d2 product:2003 num_ports:1 port:1 path:usb-emxx_ehci-1.1
2: name:"GSM modem (1-port)" vendor:19d2 product:2003 num_ports:1 port:1 path:usb-emxx_ehci-1.1
3: name:"GSM modem (1-port)" vendor:19d2 product:2003 num_ports:1 port:1 path:usb-emxx_ehci-1.1

站在我在网上找到的一些信息(例如http://blog.csdn.net/vishtvro/article/details/7505915;我不确定如何直接验证,因为我在Android操作系统上没有'lsusb -v'而busybox没有帮助),四个端口对应:

ttyUSB3: Modem
ttyUSB1: AT
ttyUSB0: Debug
ttyUSB2: VoUSB

问题是我无法使用'picocom'或'busybox microcom'与这些端口通信。我可以连接到它,但无法发送或接收命令:

# picocom /dev/ttyUSB1 -b 115200
picocom v1.6

port is        : /dev/ttyUSB1
flowcontrol    : none
baudrate is    : 115200
parity is      : none
databits are   : 8
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv
imap is        : 
omap is        : 
emap is        : crcrlf,delbs,

Terminal ready
<blinking cursor here>

在usb_wwan.c调试日志中报告键入字符,例如

<7>drivers/usb/serial/usb_wwan.c: usb_wwan_chars_in_buffer: 0
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write_room: 16384
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_chars_in_buffer: 0
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write_room: 16384
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: write (1 chars)
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: endpoint 1 buf 0
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write: wrote (did 1)
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_chars_in_buffer: 1
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_write_room: 12288
<7>drivers/usb/serial/usb_wwan.c: usb_wwan_outdat_callback

但它没有在控制台上回显,如果输入任何AT命令,我也不会得到任何结果。 'AT'应该以'OK'回归 - 这是对我的基本期望,但我什么都没看到。

我已经在网上搜索了很长时间,并且在这里搜索了stackexchange,但直到现在才找到任何有用的提示。

有关如何调试此问题的任何建议吗?

注意 - 在股票GB Android固件上,调制解调器按预期工作 - 遗憾的是我没有那个GB代码......

提前致谢!

0 个答案:

没有答案