【问题标题】:Embedded Linux USB driver for SAM7 serial用于 SAM7 串行的嵌入式 Linux USB 驱动程序
【发布时间】:2014-08-30 09:05:02
【问题描述】:

我有一个使用在 Linux 下运行的 Atmel 处理器的设备。对于这个设备,我想使用 AT91SAM7 处理器连接一个远程设备。此远程设备配置为通过 USB 进行伪串行,在 Windows 下可以正常工作并显示为“AT91 USB 到串行转换器 (COM3)”。

在 Linux 下,设备在 /dev 中显示如下:

crw-rw----    1 root     root     253,   7 Aug 30 10:52 /dev/usbdev2.2_ep00
crw-rw----    1 root     root     253,   5 Aug 30 10:52 /dev/usbdev2.2_ep01
crw-rw----    1 root     root     253,   6 Aug 30 10:52 /dev/usbdev2.2_ep82
crw-rw----    1 root     root     253,   4 Aug 30 10:52 /dev/usbdev2.2_ep83

我必须做什么才能与设备通信?一些驱动程序绑定到内核中?或者是否存在可加载驱动程序 (.ko)?

【问题讨论】:

  • 是否有/dev/ttyUSB*设备?
  • 您过度使用“设备”一词。首先你写了“到这个设备我想连接一个远程设备”,然后它是*“我必须做什么才能与设备通信?”如果这个(远程?)设备真的模拟通过 USB 的串行设备,那么您显然需要调整 USB serial drivers 之一。

标签: serial-port usb linux-device-driver embedded-linux


【解决方案1】:

根据你写的,带有 AT91SAM7 处理器的嵌入式板配置正确,因为它在连接到 Windows 主机时可以工作。

如果在 linux 下不工作,可能是因为它无法识别 vendorid:productid 值。

在linux主机上检查lsusb的输出:

ottavio@ottavio:~$ lsusb 
Bus 004 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
ottavio@ottavio:~$

在这种情况下,我的计算机上有一个 USBRS232 转换器。插入时,您应该有一条与您的板相关的线。

现在,根据您的系统,您可能需要使用usbserialftdi_sio。所以先尝试加载usbserial

modprobe usbserial vendor=0x067b product=0x2303

如果这不起作用,请尝试加载 ftdi_sio

modprobe ftdi_sio vendor=0x067b product=0x2303

请注意,如果模块已经加载,您需要rmmod 它们。最后,在我的示例中,vendrid 是 0x067b,product 是 0x2303,您需要使用正确的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    相关资源
    最近更新 更多