查看: 105|回复: 0

开源BeagleBone的USB串口驱动安装

[复制链接]

主题

好友

68

积分

版主

  • TA的每日心情
    擦汗
    2017-8-7 15:27
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-2-28 00:17:52 |显示全部楼层
    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"
    上面是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"
    然后再修改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"
    改为
    [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"
    驱动文件改好后,现在我们可以接通电源了。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驱动。这里仅给大家作为一个参考。在下一篇将介绍下BeagleBone上面的Linux系统,以及怎么安装包括其他的系统如Android等。
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /4 下一条

    手机版|电路城

    GMT+8, 2019-7-19 21:27 , Processed in 0.400712 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部