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不能工作。谁能解释一下原因?

  • 相关阅读:
    MySQL-基本sql命令
    Java for LeetCode 203 Remove Linked List Elements
    Java for LeetCode 202 Happy Number
    Java for LeetCode 201 Bitwise AND of Numbers Range
    Java for LeetCode 200 Number of Islands
    Java for LeetCode 199 Binary Tree Right Side View
    Java for LeetCode 198 House Robber
    Java for LeetCode 191 Number of 1 Bits
    Java for LeetCode 190 Reverse Bits
    Java for LeetCode 189 Rotate Array
  • 原文地址:https://www.cnblogs.com/sunmaoduo/p/3920683.html
Copyright © 2011-2022 走看看