zoukankan      html  css  js  c++  java
  • BulkLoop实验

    既然OC已经通过USB3.0接口识别了我的FX2LP最小系统,我打算做一下bulkloop例程。

    第一步自然是向default FX2LP中写入bulkloop的固件程序:

    利用Suite中的USB Control Center程序可以刷写RAM D:CypressCypress Suite USB 3.4.7FirmwareBulkloop 里面有转换好的固件程序——bulkloop.hex文件。

    Figure 1

    刷写成功(图2)!,设备的名字随着绑定inf文件中的PIDVID的更换而改变。RAM中的程序是掉电丢失,所以如果断开USB重连的话,会发现设备的名字又变成了default设备的名字,也就是上图1中的名字。

    Figure 2

    这个名字是我在inf文件中给04B4&1004设备特地起的:

    Figure 3

    现在可以打开Suite自带的封装好的bulkloop.exe程序进行测试:

    Figure 4

    测试的结果:利用EP2输出,然后利用EP6读回。

    Figure 5

    同样,利用USB Control Center也可以测试bulkloop,下图中,利用EP2发送一组数据,然后利用EP6读回一组数据:

    Figure 6

    如果Transfer Data-IN点多了,返回错误;如果Transfer Data_OUT点多了,也会返回错误。借此可以理解TD_Init函数中对端点进行配置时,所提到的"Double",这里不深入解释。

    Figure 7

     

    问题是,不同于多数教程中所提到的,我使用了USB Control Center来完成实验,而没有使用USB Console。原因是我的USB Console没有显示我插入的设备:

    Figure 8 同一时刻的USB Control Center 和USB Console

    总结一下实验流程:

    Default FX2LP→安装cyusb.sys→FX2LP被识别成Cypress USB Generic Driver (3.4.7.000)FRANK64【RAM中没有固件】→用Control Center刷写bulkloop固件到RAM→安装cyusb.sys→FX2LP被识别成bulkloop,VID_04B4&PID_1004【RAM中有bulkloop固件】→利用Control Center进行读写实验

    这里解释一下,为什么两次安装的驱动都是cyusb.sys:因为官方只提供了这么一个Win Vista x64驱动——cyusb.sys,而且官方的例程都是基于此驱动的。我在对应的cyusb.inf文件中分别添加了04B4&8613和04B4&1004两种设备(固件)的信息,在首次安装驱动的时候,sys文件和inf文件就已经被拷贝到系统目录中,所以第二次需要安装驱动的时候,系统几乎是瞬间就找到匹配的inf,并自动完成了驱动安装。

     

    关于遗留问题:在网上看到有人说:"Control Center只能使用EZ驱动,Console只能使用CY驱动。"可我遇到的状况是,使用了CY驱动,但只有Control Center可以工作,Console不能工作。谁能解释一下原因?

  • 相关阅读:
    树四:遍历二叉树
    树三:创建二叉树
    树二:二叉树定义及性质
    树一:定义及存储
    排序七:归并排序
    排序六:快速排序
    排序五:希尔排序
    排序四:冒泡排序
    深入分析Linux内核链表
    179. Largest Number
  • 原文地址:https://www.cnblogs.com/sunmaoduo/p/3920683.html
Copyright © 2011-2022 走看看