CY7C68013A的一点总结
一、 值得参考的资料:FX2 TechRefManual、USB应用开发宝典、
LabVIEW-USB通信简单教程(用于参考生成labview驱动程序)、USB设备请求和描述符整理(仅用于理解描述符的作用)
二、KEIL软件的配置:
打开project-manage-component
,environment
,books
选择folders/extentions页将bin,inc,lib和regfile都配置成正确的路径(keil和cypress程序的安装目录下找,有些项含有两种路径中间用;隔开)。
使用KEIL生成IIC文件的方法:
使用cypress提供的hex2bix
打开图1所示界面
勾上run #1并选择下面的路径(cypress软件安装程序中可以找到):D:cy3684_ez_usb_fx2lp_development_kit_15binHex2bix -i -f 0xC2 -o sample.iic slavefifo.hex
(sample为iic文件名,slavefifo为hex文件名)
-i表示要生成iic文件,-f表示烧写后采用C2方式启动(程序、VID、PID都从EEPROM读取),后面依次是要生成IIC文件的文件名和源文件的文件名,关于其他参数的用法可以参见hex2bix的帮助。
注意:烧写iic文件并不想hex文件那样立即变成固件中描述的设备,而是要拔出USB一下才可以。
三、驱动程序:不同的上位机软件对应不同的驱动程序
四、固件设计:
(1) 自定义用户请求
注意请求号不能和系统请求号冲突
五、Verilog 程序:
注意:1修改VID和PID可修改设备受哪种上位机软件控制。
2注意固件描述符中、load.inf(在cypress安装程序下)、生成驱动过程中VIDPID的不同和相同之处。
3当FIFO数据端口定义为16位时,需要两个字节的十六进制才能体现此时后一个字节为高8位,如读出12 34则此数的值为3412转化为十进制为13330。
注:每次下载完iic文件后必须拔下一次USB接头才会起作用
六、关于CYPRESS内核FX2REGS.H定义了USB中所有的寄存器,但是内核中并没有对PE口进行位定义,需要自己添加
- nginx安装Fancy美化索引目录
- hdu---(3779)Railroad(记忆化搜索/dfs)
- RHEL下KVM虚拟化部署-安装虚拟化
- hdu--(1025)Constructing Roads In JGShining's Kingdom(dp/LIS+二分)
- kafka权威指南 第二章第6节 Kafka集群配置与调优
- hdu----(1677)Nested Dolls(DP/LIS(二维))
- hdu----(1950)Bridging signals(最长递增子序列 (LIS) )
- hdu------(1757)A Simple Math Problem(简单矩阵快速幂)
- python实现Tab自动补全功能
- hdu-----(2807)The Shortest Path(矩阵+Floyd)
- hdu----(4686)Arc of Dream(矩阵快速幂)
- HDU----(4549)M斐波那契数列(小费马引理+快速矩阵幂)
- Centos系统修改时区
- zookeeper思考与总结1:在其它组件的作用及hdfs对比
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浅谈laravel 5.6 安装 windows上使用composer的安装过程
- PhpStorm 如何优雅的调试Hyperf的方法步骤
- 在TP5数据库中四个字段实现无限分类的示例
- 详解Laravel设置多态关系模型别名的方式
- tp5修改(实现即点即改)
- 自定义Laravel (monolog)日志位置,并增加请求ID的实现
- PHP的Trait机制原理与用法分析
- 如何在centos8自定义目录安装php7.3
- 基于laravel belongsTo使用详解
- laravel model模型定义实现开启自动管理时间created_at,updated_at
- laravel ORM关联关系中的 with和whereHas用法
- thinkPHP事务操作简单案例分析
- php 多个变量指向同一个引用($b = &$a)用法分析
- 浅谈laravel5.5 belongsToMany自身的正确用法
- 在 PHP 和 Laravel 中使用 Traits的方法