通过FTDI芯片可以实现从USB到UART,I2C,BIT_BANG,SPI,JTAG等各种通用接口的转换, 在Widora-NEO上将FTDI 芯片设置成BIT_BANG模式,即可以实现8位并口的输出,循环输出设定数据就可以实现跑马灯功能了。
具体步骤如下:
-
从https://www.intra2net.com/en/developer/libftdi/download.php 下载libftdi1-1.4.tar.bz2
解压 tar -jxvf libftdi1-1.4.tar.bz2 -
修改 解压目录libftdi1-1.4下面的CMakeLists.txt 文件, 在#Project段结束后增加如下内容 (具体目录按照你自己的配置):
#— for cross compile -----
SET (CMAKE_SYSTEM_NAME Linux)
SET (CMAKE_SYSTEM_PROCESSOR MIPS)
SET (TOOLCHAIN_DIR “/home/midas/openwrt_widora/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2”)
SET (CMAKE_FIND_ROOT_PATH “/home/midas/openwrt_widora/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2”)
SET (CMAKE_C_COMPILER “/home/midas/openwrt_widora/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-gcc”)
SET (CMAKE_CXX_COMPILER “/home/midas/openwrt_widora/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-g++”) -
在libftdi1-1.4目录下mkdir build, 进入build目录执行 cmake …/
-
在libftdi1-1.4目录下执行 make
完成后在 libftdi1-1.4/build/src 下生成库文件 libftdi1.so.2.4.0 -
把 libftdi1.so.2.4.0 和原来编译好的 libusb-1.0.so.0.1.0(或者从widora-neo的/usr/lib下面scp过来) 复制到libftdi1-1.4/examples 目录下, 分别做软链接 libftdi1.so 和 libusb-1.0.so 。也可以在编译的时候指定库目录。
-
以编译bitbang.c为例:
6.1 将mips的gcc工具链接到libftdi1-1.4/examples 目录下的openwrt-gcc
6.2 将#include <ftdi.h> 改为ftdi.h所在的实际目录。
6.3在源文件中将 ftdi_usb_open(ftdi, 0x****,0x*****) 中的*分别替换成你的FTD设备的VID和PID (可以用lsusb命令来查看得到)
6.4 编译 openwrt-gcc -L. -lusb-1.0 -lftdi1 -o bitbang bitbang.c
(也可以参考 https://github.com/widora/ctest/blob/master/bitbang.c )
!