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

  • 相关阅读:
    EntityFramework 启用迁移 EnableMigrations 报异常 "No context type was found in the assembly"
    JAVA 访问FTP服务器示例(2)
    NuGet Package Manager 更新错误解决办法
    JAVA 访问FTP服务器示例(1)
    RemoteAttribute 的使用问题
    诡异的 javascript 变量
    javascript apply用法
    Babun 中文乱码
    GSM呼叫过程
    转站博客园
  • 原文地址:https://www.cnblogs.com/sunmaoduo/p/3920683.html
Copyright © 2011-2022 走看看