本原创教程由芯驿电子科技(上海)有限公司(alinx)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com)。 适用于板卡型号:
pgl22g
1. 简介 本教程介绍如何使用ftdi公司的ft232h驱动芯片进行usb数据传输,文中从底层fpga、驱动层固件(ft232h固件)及上位机测试软件设计方面阐述了usb开发的整个流程。
2. 实验原理 2.1 ft232h原理介绍
ft232h是由ftdi公司生产的单路usb2.0驱动芯片,usb速度高达480mb/s,支持转uart或fifo模式,并可配置成多种工业串行或并行接口:
(1)可配置成uart接口;
(2)ft245同步fifo接口;
(3)ft245风格异步fifo接口;
(4)同步或异步bit-bang接口;
(5)mpsse接口;
(6)fast串口;
(7)cpu风格fifo接口;
(8)ft1248接口。
在本实验中配置成ft245同步fifo接口。下面是ft232h的内部结构图。
2.2 硬件原理图
如下为ax7035/ax7050开发板的usb部分原理图,usb驱动芯片采用ft232hl,配置为ft245 fifo模式,通过与93lc56存储芯片相连,将ft232hl配置为ft245 fifo模式的信息存储于芯片中。
ax7050 usb部分原理图ax7035 usb部分原理图
2.3 ft245 fifo接口引脚
如下表所示为ft245 fifo接口,adbus为并行接口,供fpga使用,rxf#,txe#为ft232h输出信号,用于通知fpga是否可读可写,rd#,wr#为读写输入信号,由fpga控制,clkout为输出时钟60mhz,oe#为输出全能,需要在rd#有效之前至少提前一个时钟周期。
2.4 ft245 fifo时序
下图为ft245 fifo模式时序图,读时序中,首先ft232h将rxf#拉低,此时可以读取fifo里的数据,fpga可将oe#先拉低,过至少一个时钟周期,再将rd#拉低,在clkout上升沿采集数据;写时序中,ft232h将txe#拉低,表示现在可写,fpga可将wr#拉低,在clkout上升沿写入数据。
3. 程序设计 程序设计比较简单,功能实现为将从ft232h的读fifo中读取的数据存储到双口ram中,再将数据从ram读取出来发送到ft232h的写fifo中,实现数据的环通。代码实现根据前面所讲的时序图,实现其功能即可。
代码中采用了简单的状态机,首先在idle状态下判断ft_rxf_n信号是否是0,如果是0,进入read状态,开始读取ft232h的数据,并存入ram中,如果ft_rxf_n拉高,进入idle状态;否则判断ft_txe_n是否为0并且ram空间不为空,进入write状态,将ram数据写入ft232h,如果ft_txe_n拉高或者ram空了,进入idle状态。
引脚名称 功能描述
ft_clk ft232h时钟,clkout频率60mhz
rst 复位信号,高电平有效
ft_rxf_n rxf# ft232h fifo可以读,低电平有效
ft_txe_n txe# ft232h fifo可以写,低电平有效
ft_oe_n oe# 输出使能,低电平有效
ft_rd_n rd# 读信号,低电平有效
ft_wr_n wr#写信号,低电平有效
ft_data ft232h数据端口,8位位宽,双向io
4. 实验流程 4.1 安装ftdi d2xx driver
在05_芯片手册\ft232h文件夹中可以找到cdm v2.12.28 whql certified_x64.zip,将其解压。
取出开发板,连接上开发板的usb接口,打开电源
打开设备管理器,出现新设备,右键点击更新驱动程序软件
点击浏览计算机以查找驱动程序软件
点击浏览找到解压的文件夹,点击确定,并点击下一步。
成功安装驱动后如下图:
可以看到出现 usb serial converter设备
4.2 实验现象
将程序下载到fpga中,找到上位机测速软件,打开软件
选择usb设备,点击开始按钮
可以看到读写速度在40mb/s附近变动,点击暂停按钮可停止测速。
有些同学想要看看usb传输的数据,在这里我们提供 了“usb测试工具“,工具在下图中位置:
操作如下:
1)首先确保程序(与测速软件一致)已下载到fpga中,连接好usb线,找到上位机测速软件并打开,在选择设备下拉框里找到usb 设备, 如果没有显示 usb 设备, 点击“刷新” 按钮 之后选择好设备, 点击“打开” 按钮。如下图:
2)在数据输入框输入十六进制数据, 再点击发送, 可以在显示窗口看到发送和接收的数据, 进行数据对比, 验证正确性。
在这里需要注意下:发送数据需要为偶数个,否则上位机会截取偶数个数据发送, 如下图, 最后一个数据 f 并没有发送出去。
3)“刷新” 按钮类似于关闭端口, 点击“刷新” 按钮后, 发送数据, 不会有反应, 需要点击
“打开” 按钮打开 usb 设备。
5. 总结 本实验介绍了ft232h芯片ft245 fifo模式的读写测速,大家可以结合各自的应用编写上位机程序实现所需功能。
可穿戴设备的5大预测:从医疗到运动教练
荣耀跃升中国冰雪科技助力赞助商,荣耀平板V7系列征战冰雪赛场
基于DSP的1553B总线通讯检测仪的设计
借鉴海外巨头IIoT转型案例,关注先发优势和高市场渗透率的投资标的
高通CEO带你窥探5G未来10年之路
【紫光同创国产FPGA教程】【第二十八章】USB双向测速例程
M1 MacBook无法禁用电池健康管理功能
一篇文章带您读懂工业机器人的设计过程
联合索引的最左匹配原则
5G手机的普及速度进一步加快 价格战也将提前打响
数控机床中的交流主轴驱动分析
滨松InGaAs相机在光波导领域的应用案例
工业机器人发展趋势分析 价格将至10万将加大普及度
最常见三相异步电机自锁接线图分析
纯电动汽动力总成系统选型匹配计算方法研究
人工智能的发展道路任重而道远
量旋科技宣布完成2000万元A+轮股权投资
无人机空中移动性管理分布式控制框架
芯片通信的革命:世界最小纳米激光发射器问世
5G的商用价值主要体现在哪里