开源BeagleBone的USB串口驱动安装

2019-07-15 16:08发布

开源BeagleBone的USB串口驱动安装
   BeagleBone是一个低成本、高扩展性的开源ARM开发平台。如同一个ARM架构的最小系统,只留下USB和Ethernet这些必要的调试接口,甚至没有显示接口。BeagleBone的USB驱动安装并不复杂,不过之前的A3版本USB驱动没有使用通用的FTDI芯片VID/PID号,还是要费一番功夫,下面主要介绍在Windows XP系统和Linux(Ubuntu)系统下的驱动安装。
BeagleBone目前发布的硬件版本为A5,相比之前发布的A3、A4版本变化并不大,最主要的是更改了USB的PID(产品识别码)为通用的号码,这样USB的驱动安装更为简便。这次拿到还是A3版本的BeagleBone,因此主要说说怎么安装USB驱动

1. Windows XP
BeagleBone上USB设备还是蛮多的,所有的设备都是通过一个mini USB口连接:


  • ——SMSC USB HUB  这是一个2口的USB HUB
  • ——FTDI USB转串口
  • ——FTDI USB转JTAG口

在Windows XP下有的USB HUB驱动可以自动安装上,不过FTDI USB驱动的要去官网下载。在BeagleBoard的网站上可以下载BeagleBone的驱动文件BONE_DRV.exe,不过运行的时候会报错,


可能在中文Windows下不兼容,所以首先还是去FDTI官网下载USB转串口的驱动文件。
在BeagleBone A3版本中,FTDI FT2232H USB转接芯片的VID/PID号与TI仿真器XDS100上的一样是0x0403/0xA6D0,而与通用的FTDI VID/PID(0x0403/0x6010)有所不同,因此下载FTDI驱动程序后要对安装信息文件inf修改一下才行。(如果你拿到的是BeagleBone A5版本的话可以跳过修改inf文件,直接安装驱动)
解压所下载的FTDI驱动程序

首先修改ftdibus.inf文件。要修改的是文件中的[FtdiHw], [FtdiHw.NTamd64] and [Strings]块。
  • [FtdiHw]
  • %USBVID_0403&PID_6001.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6001
  • %USBVID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6010&MI_00
  • %USBVID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6010&MI_01
  • %USBVID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6011&MI_00
  • %USBVID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6011&MI_01
  • %USBVID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6011&MI_02
  • %USBVID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6011&MI_03
  • %USBVID_0403&PID_6014.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_6014

  • [FtdiHw.NTamd64]
  • %USBVID_0403&PID_6001.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6001
  • %USBVID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6010&MI_00
  • %USBVID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6010&MI_01
  • %USBVID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6011&MI_00
  • %USBVID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6011&MI_01
  • %USBVID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6011&MI_02
  • %USBVID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6011&MI_03
  • %USBVID_0403&PID_6014.DeviceDesc%=FtdiBus.NTamd64,USBVID_0403&PID_6014

  • ………

  • [Strings]
  • Ftdi="FTDI"
  • DESC="CDM Driver Package - Bus/D2XX Driver"
  • DriversDisk="FTDI USB Drivers Disk"
  • USBVID_0403&PID_6001.DeviceDesc="USB Serial Converter"
  • USBVID_0403&PID_6010&MI_00.DeviceDesc="USB Serial Converter A"
  • USBVID_0403&PID_6010&MI_01.DeviceDesc="USB Serial Converter B"
  • USBVID_0403&PID_6011&MI_00.DeviceDesc="USB Serial Converter A"
  • USBVID_0403&PID_6011&MI_01.DeviceDesc="USB Serial Converter B"
  • USBVID_0403&PID_6011&MI_02.DeviceDesc="USB Serial Converter C"
  • USBVID_0403&PID_6011&MI_03.DeviceDesc="USB Serial Converter D"
  • USBVID_0403&PID_6014.DeviceDesc="USB Serial Converter"
  • SvcDesc="USB Serial Converter Driver"
  • ClassName="USB"


[color=rgb(51, 102, 153) !important]复制代码

上面是FTDI通用的VID/PID号,把它们改为
  • [FtdiHw]
  • %USBVID_0403&PID_A6D0&MI_00.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_A6D0&MI_00
  • %USBVID_0403&PID_A6D0&MI_01.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_A6D0&MI_01
  • [FtdiHw.NTamd64]
  • %USBVID_0403&PID_A6D0&MI_00.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_A6D0&MI_00
  • %USBVID_0403&PID_A6D0&MI_01.DeviceDesc%=FtdiBus.NT,USBVID_0403&PID_A6D0&MI_01

  • [Strings]
  • Ftdi="FTDI"
  • DESC="CDM Driver Package - Bus/D2XX Driver"
  • DriversDisk="FTDI USB Drivers Disk"
  • USBVID_0403&PID_A6D0&MI_00.DeviceDesc="USB Serial Converter A"
  • USBVID_0403&PID_A6D0&MI_01.DeviceDesc="USB Serial Converter B"
  • SvcDesc="USB Serial Converter Driver"
  • ClassName="USB"


[color=rgb(51, 102, 153) !important]复制代码

然后再修改fdtiport.inf文件中[FtdiHw], [FtdiHw.NTamd64] and [Strings]块相应内容
  • [FtdiHw]
  • %VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUSCOMPORT&VID_0403&PID_6001
  • %VID_0403&PID_6010.DeviceDesc%=FtdiPort.NT,FTDIBUSCOMPORT&VID_0403&PID_6010
  • %VID_0403&PID_6011.DeviceDesc%=FtdiPort.NT,FTDIBUSCOMPORT&VID_0403&PID_6011
  • %VID_0403&PID_6014.DeviceDesc%=FtdiPort.NT,FTDIBUSCOMPORT&VID_0403&PID_6014

  • [FtdiHw.NTamd64]
  • %VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUSCOMPORT&VID_0403&PID_6001
  • %VID_0403&PID_6010.DeviceDesc%=FtdiPort.NTamd64,FTDIBUSCOMPORT&VID_0403&PID_6010
  • %VID_0403&PID_6011.DeviceDesc%=FtdiPort.NTamd64,FTDIBUSCOMPORT&VID_0403&PID_6011
  • %VID_0403&PID_6014.DeviceDesc%=FtdiPort.NTamd64,FTDIBUSCOMPORT&VID_0403&PID_6014

  • [Strings]
  • FTDI="FTDI"
  • DESC="CDM Driver Package - VCP Driver"
  • DriversDisk="FTDI USB Drivers Disk"
  • PortsClassName = "Ports (COM & LPT)"
  • VID_0403&PID_6001.DeviceDesc="USB Serial Port"
  • VID_0403&PID_6010.DeviceDesc="USB Serial Port"
  • VID_0403&PID_6011.DeviceDesc="USB Serial Port"
  • VID_0403&PID_6014.DeviceDesc="USB Serial Port"
  • SvcDesc="USB Serial Port Driver"
  • SerEnum.SvcDesc="Serenum Filter Driver"


[color=rgb(51, 102, 153) !important]复制代码

改为
  • [FtdiHw]
  • %VID_0403&PID_A6D0.DeviceDesc%=FtdiPort.NT,FTDIBUSCOMPORT&VID_0403&PID_A6D0
  • [FtdiHw.NTamd64]
  • %VID_0403&PID_A6D0.DeviceDesc%=FtdiPort.NTamd64,FTDIBUSCOMPORT&VID_0403&PID_A6D0

  • [Strings]
  • FTDI="FTDI"
  • DESC="CDM Driver Package - VCP Driver"
  • DriversDisk="FTDI USB Drivers Disk"
  • PortsClassName = "Ports (COM & LPT)"
  • VID_0403&PID_A6D0.DeviceDesc="BeagleBone USB Serial Port"
  • SvcDesc="USB Serial Port Driver"
  • SerEnum.SvcDesc="Serenum Filter Driver"


[color=rgb(51, 102, 153) !important]复制代码

驱动文件改好后,现在我们可以接通电源了。BeagleBone有两种供电,可以通过5V的稳压电源线供电,也可以直接通过USB线供电。为了方便,我们先通过USB线来工作。

BeagleBone购买时会附送两张micro SD卡,其中一张里面是装好的测试系统Angstrom,先不管他是什么系统,插上以后我们首先装好驱动。连接USB线到PC机,电源指示灯会亮。

通用USB HUB驱动,windows会自动识别。

接着会出现第一个USB串口转换A

选择从列表或指定位置安装
指定到下载的USB驱动程序目录

由于我们更改过了inf文件,因此跳出没有验证的窗口,不用管它继续安装

USB串口转换A口就安装好了,之后会弹出USB串口转换B口

同样的步骤安装好USB串口转换B口

安装好以后,之后会跳出BeagleBone USB串口

还是同样的步骤安装串口

我们可以看到设备管理器中出现了BeagleBone串口。

下面看看串口有没有配置成功。首先要建立串口的通讯,就采用widowns下的超级终端。
在Windows XP的附件->通讯下新建立一个超级终端,任意取个名字

选择BeagleBone的串口端号,注意是刚刚安装好的BeagleBone的虚拟串口

然后在设置参数,波特率115200,数据位8位,无奇偶校验,1位停止位,数据流控制无

设置好以后,复位BeagleBone,复位键很小
这时串口监视窗口会跑很多系统启动信息

预制的Linux Angstrom系统启动以后出现登陆提示。

输入root,可以登入BeagleBone上的Linux系统了。

这样在Windows XP下BeagleBone的串口驱动装好了,还可以通过串口监视系统运行以及登陆。下面看看Linux系统下驱动安装的情况。

2. Linux下驱动(Ubuntu)
Linux系统下USB驱动相对来说简单一点。我们使用的是Ubuntu11.10版本的Linux。

不需要再下载Linux下的USB驱动程序,只需要重新挂载USB设备,在终端窗口输入:
sudo modprobe ftdi_sio vendor=0x0403 product=0xa6d0
如果是超级用户root登陆的话可以不用前面的sudo,注意USB的VID/PID号。

输入lsmod,可以检查设备有没有挂载上。这只是临时挂载USB设备,如果想每次系统重启时自动挂载BeagleBone USB串口,需要加一个udev rule文件,如/etc/udev/rules.d/73-beaglebone.rules,在这个目录下增加rules文件。

USB串口挂载好了,用串口监视程序看看结果。这里采用了minicom,输入命令:minicom。如果没有安装的话先安装程序:apt-get install minicom

首先设置一下程序。在终端输入:minicom -s。进入串口设置里修改参数。这里USB转串口设备有两个,其中ttyUSB0是USB转JTAG用,而ttyUSB1这是USB转串口设备。按下图设置参数,然后保存退出。

之后就进入了BeagleBone里的Angstrom系统。重新复位,输入root可以进入管理员账户。

3 修改EEPROM信息
在BeagleBone A5版本中最主要修改就是更改了USB的VID/PID号为通用的FTDI号(0x0403/0x6010),因此USB驱动程序安装更方便,在windows下可以自动完成。
在BeagleBone A3版本下也可以自己修改EEPROM的信息,使得安装USB串口驱动变得简单,不需要再修改FTDI的安装信息文件。
首先下载一个EEPROM的编程工具FT_Prog,解压压缩文件。

运行FT_Prog应用程序, 弹出窗口

选择scan and pares,或者直接F5快捷键,读取EEPROM中的信息。修改AD60为6010

选择program,EEPROM中的USB PID信息就被修改了。

这样A3版本的VID/PID信息就修改了和A5版本一样,现在USB驱动安装更方便了。
小结,BeagleBone中的USB串口驱动安装并不复杂,,不过如果用的是以前的A3版本以及对Linux系统不熟悉的话还是要花点时间装USB驱动。这里仅给大家作为一个参考。


0条回答

一周热门 更多>