Menu Close

Linux(Ubuntu)下FII-PRA006(Altera FPGA开发板)使用FTDI JTAG

如果想在Linux操作系统下既使用FII-PRA006/010开发板的串口,又使用JTAG,需要安装JTAG驱动,并且要将原本系统默认给JTAG设备配置的串口驱动解除绑定。具体步骤如下:

  • 文章末尾附件中有libjtag_hw_mbftdi-blaster.so文件。将libjtag_hw_mbftdi-blaster.so文件复制到
~/altera_lite/20.0/quartus/linux64

文件夹(20.0是当前使用的Quartus版本,需要根据自己情况修改)。

  • root权限下,下面路径下创建一个51-usbblaster.rules文件
/etc/udev/rules.d/51-usbblaster.rules

并将JTAG相关信息存储,比如FTDI2232的

SUBSYSTEM == "usb", ENV {DEVTYPE} == "usb_device", ATTR {idVendor} == "0403", ATTR {idProduct} == "6010", MODE = "0666"

%title插图%num

图1 在root权限下建立51-usbblaster.rules

%title插图%num

图2 51-usbblaster.rules内容

  • 连接目标PRA006开发板
  • 运行
 $ lsusb

查看是否有 ID 0403:6010 的设备

  • 因为Ubuntu Linux 会默认将 FTDI器件视为串行端口设备,所以需要将FTDI channel 0 和 channel 1功能划分开。FTDI channel 0用于JTAG;FTDI channel 1用于串口。也就是说,需要在不影响FTDI channel 1串口使用的情况下将FTDI channel 0从串口绑定中解绑,步骤如下:
    • 首先运行
$ sudo dmesg | grep -i ftdi_sio

获取相关的JTAG驱动信息。

    • 根据FII-PRA006/010原理图,可知FTDI 2232 channel 0连接的是FPGA的JTAG,FTDI 2232的channel 1连接的是串口。图3方框中显示的是FTDI channel 0 和 channel 1的驱动号码。FTDI channel 0对应的是1-3:1.0,FTDI channel 1对应的是1-3:1.1 。

%title插图%num

图3 获取FTDI驱动相关信息

    • 切换到root用户,打开root权限的步骤如下:

输入

$ su root

并输入正确的密码,即可换到root权限下,注意如果之前没有设置过root用户的密码,需要使用sudo passwd root进行设置,如图4所示。

%title插图%num

图4 设置root用户密码

    • 在root权限下,根据FTDI channel 0的驱动号码1-3:1.0(见上步骤 (2) ),使用
# echo -n “1-3:1.0” > /sys/bus/usb/drivers/ftdi_sio/unbind

解除FTDI channel 0的绑定。如图5所示。

%title插图%num

图5 解除FTDI channel 0的串口驱动绑定

    • 再次使用
$ sudo dmesg | grep -i ftdi_sio

获取相关的JTAG驱动信息,可以看到图6所示ttyUSB0(FTDI channel 0)已经断连。

%title插图%num

图6 FTDI channel 0不再是串口端

  • 将Intel自带的JTAG daemon消除
$ sudo killall -9 jtagd

$ sudo ./jtagd --user-start --config /home/dev/.jtagd.conf
  • 完成以上所有的步骤后,使用
$ ./jtagconfig

检查,即可看到已经检测到MBFTDI-Blaster,如图7所示。

%title插图%num

图7 正确检测到MBFTDI-Blaster

注意:以上JTAG会在电脑重启,或重新连接开发板后需要重复以上步骤,再次配置。

Posted in FPGA, FPGA, Quartus II, 开发工具, 开发板, 教材与教案, 文章

发表评论

相关链接