6221|1

51

帖子

3875

TA的资源

一粒金砂(高级)

楼主
 

开源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]块。
  1. [FtdiHw]
  2. %USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6001
  3. %USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_00
  4. %USB\VID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_01
  5. %USB\VID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_00
  6. %USB\VID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_01
  7. %USB\VID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_02
  8. %USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_03
  9. %USB\VID_0403&PID_6014.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6014

  10. [FtdiHw.NTamd64]
  11. %USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6001
  12. %USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6010&MI_00
  13. %USB\VID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6010&MI_01
  14. %USB\VID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_00
  15. %USB\VID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_01
  16. %USB\VID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_02
  17. %USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_03
  18. %USB\VID_0403&PID_6014.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6014

  19. ………

  20. [Strings]
  21. Ftdi="FTDI"
  22. DESC="CDM Driver Package - Bus/D2XX Driver"
  23. DriversDisk="FTDI USB Drivers Disk"
  24. USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter"
  25. USB\VID_0403&PID_6010&MI_00.DeviceDesc="USB Serial Converter A"
  26. USB\VID_0403&PID_6010&MI_01.DeviceDesc="USB Serial Converter B"
  27. USB\VID_0403&PID_6011&MI_00.DeviceDesc="USB Serial Converter A"
  28. USB\VID_0403&PID_6011&MI_01.DeviceDesc="USB Serial Converter B"
  29. USB\VID_0403&PID_6011&MI_02.DeviceDesc="USB Serial Converter C"
  30. USB\VID_0403&PID_6011&MI_03.DeviceDesc="USB Serial Converter D"
  31. USB\VID_0403&PID_6014.DeviceDesc="USB Serial Converter"
  32. SvcDesc="USB Serial Converter Driver"
  33. ClassName="USB"
复制代码
上面是FTDI通用的VID/PID号,把它们改为
  1. [FtdiHw]
  2. %USB\VID_0403&PID_A6D0&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_A6D0&MI_00
  3. %USB\VID_0403&PID_A6D0&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_A6D0&MI_01
  4. [FtdiHw.NTamd64]
  5. %USB\VID_0403&PID_A6D0&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_A6D0&MI_00
  6. %USB\VID_0403&PID_A6D0&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_A6D0&MI_01

  7. [Strings]
  8. Ftdi="FTDI"
  9. DESC="CDM Driver Package - Bus/D2XX Driver"
  10. DriversDisk="FTDI USB Drivers Disk"
  11. USB\VID_0403&PID_A6D0&MI_00.DeviceDesc="USB Serial Converter A"
  12. USB\VID_0403&PID_A6D0&MI_01.DeviceDesc="USB Serial Converter B"
  13. SvcDesc="USB Serial Converter Driver"
  14. ClassName="USB"
复制代码
然后再修改fdtiport.inf文件中[FtdiHw], [FtdiHw.NTamd64] and [Strings]块相应内容
  1. [FtdiHw]
  2. %VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001
  3. %VID_0403&PID_6010.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6010
  4. %VID_0403&PID_6011.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6011
  5. %VID_0403&PID_6014.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6014

  6. [FtdiHw.NTamd64]
  7. %VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6001
  8. %VID_0403&PID_6010.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6010
  9. %VID_0403&PID_6011.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6011
  10. %VID_0403&PID_6014.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6014

  11. [Strings]
  12. FTDI="FTDI"
  13. DESC="CDM Driver Package - VCP Driver"
  14. DriversDisk="FTDI USB Drivers Disk"
  15. PortsClassName = "Ports (COM & LPT)"
  16. VID_0403&PID_6001.DeviceDesc="USB Serial Port"
  17. VID_0403&PID_6010.DeviceDesc="USB Serial Port"
  18. VID_0403&PID_6011.DeviceDesc="USB Serial Port"
  19. VID_0403&PID_6014.DeviceDesc="USB Serial Port"
  20. SvcDesc="USB Serial Port Driver"
  21. SerEnum.SvcDesc="Serenum Filter Driver"
复制代码
改为
  1. [FtdiHw]
  2. %VID_0403&PID_A6D0.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_A6D0
  3. [FtdiHw.NTamd64]
  4. %VID_0403&PID_A6D0.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_A6D0

  5. [Strings]
  6. FTDI="FTDI"
  7. DESC="CDM Driver Package - VCP Driver"
  8. DriversDisk="FTDI USB Drivers Disk"
  9. PortsClassName = "Ports (COM & LPT)"
  10. VID_0403&PID_A6D0.DeviceDesc="BeagleBone USB Serial Port"
  11. SvcDesc="USB Serial Port Driver"
  12. SerEnum.SvcDesc="Serenum Filter Driver"
复制代码
驱动文件改好后,现在我们可以接通电源了。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驱动。这里仅给大家作为一个参考。

最新回复

你好,我想请问下计算机不能识别USB怎么办?  详情 回复 发表于 2014-3-6 16:47
点赞 关注(2)
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你好,我想请问下计算机不能识别USB怎么办?
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表