首页 文章

用于SAM7串行的嵌入式Linux USB驱动程序

提问于
浏览
0

我有一台使用在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)?

1 回答

  • 0

    根据您所写的内容,带有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:~$
    

    在这种情况下,我的计算机上有一个USB < - > RS232转换器 . 当你插上电路板时,你应该有一条与电路板相关的线路 .

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

    modprobe usbserial vendor=0x067b product=0x2303
    

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

    modprobe ftdi_sio vendor=0x067b product=0x2303
    

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

相关问题