摘要:项目中用到的FX2LP 68014A配套的开发环境是suite 3.4.7,自带的调试工具是control console,可以烧写内置RAM或者外置EEPROM,但是它只支持绑定cyusb.sys驱动的设备,不支持老式的ezusb.sys驱动。 项目中的上位机界面程序是基于老的驱动ezusb.sys编写的,没有用到cyusb.lib,对调试造成了麻烦。 有两种方法可以实现方便的调试流...
阅读全文
摘要:friendly_name 是什么意思:non-endpoint IO method (SetAltIntfc, Open, Reset, etc.)BCD Binary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数.常见BCD编码有8421BCD码...
阅读全文
摘要:bulkloop例程是USB固件开发中的基础例程,通过它我们可以学到很多基础知识,我在这里也利用下午的时间来学习一下bulkloop例程。bulkloop这个名字就说明了该固件的作用:以bulk型endpoint作为输出和输入端口,让数据"转一圈"。就是在主机端输出一组数据到FX2LP的某一个bul...
阅读全文
摘要:Suite3.4.7附带了Hex2Bix程序,它可以将hex文件转换为iic文件,方便把固件烧入到IIC总线上的EEPROM中。 Hex2Bix.exe运行(in cmd),下图是程序界面和命令参数的介绍。 我将Hex2Bix.exe的命令嵌入到Keil工程中,比如下图: 上图中:我把hex2bix拷贝一份放在D盘根目录下(其实可以直接放到工程目录下面,这样可以省去d:\)...
阅读全文
摘要:上集介绍:
昨天已经把固件开发的环境Keil基本搞好了,而且利用CCD1随机附带的固件程序C文件加上Suite 3.4.7提供的INC和LIB,并对其中不契合的地方稍加修改,最后编译成功,获得了HEX文件,比CCD1附带的HEX文件小了一点点。(不契合原因:老的fx2regs.h文件中没有对端口ABCD(E不能按位访问)的每一位进行定义,所以CCD1的txmaster.c文件开头部分以"sbit ...
阅读全文
摘要:C:\Keil\C51\INC\Cypress
D:\Cypress\Cypress Suite USB 3.4.7\Firmware\inc 1、发现Suite3.4.7文件夹里面的FX2.h文件和Keil内部携带的FX2.h文件匹配(一样). 2、两个fx2regs.h文件不匹配, Suite3.4.7自带的版本比Keil u3所带版本新。 2.1、Suite自带版本对自动指...
阅读全文
摘要:cyioctl.h 使用DeviceIoControl()函数和驱动CyUSB.sys通信的时候, 需要用到IO Control(aka IOCTL) code parameter, 这些参数由cyioctl.h定义.CyAPI.lib,CyAPI.h CyAPI.lib,一个C++类库, 提供...
阅读全文
摘要:DeviceIoControl Function介绍Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding op...
阅读全文
摘要:DeviceIoControl()可以利用Io Control (aka IOCTL) code操作USB设备驱动,这些IOCTL码由谁定义由谁解释呢?(CyAPI.lib? CyUSB.dll? CyUSB.sys?)答案:cyioctl.h 例如:#define IOCTL_ADAPT_GET_...
阅读全文
摘要:前段时间一直纠结为什么我的FX2LP最小系统不能被CyConsole识别,而只能被Control Center识别,总觉得是我的开发环境,包括硬件有什么问题。尤其是在我发现最小系统插在USB2.0接口竟然不被PC识别,只有插在USB3.0接口才能被识别的时候(参考我之前的博客),我非常怀疑是我自己出了什么错漏。
近日仔细阅读了Suite 3.4.7的官网介绍和随装的PDF文档,我才发现以下事实1、...
阅读全文
摘要:昨天实验的体会,如果没有把inf文件中所有的[Device Section]下面的VID&PID信息都编辑过,是没有办法吧设备和驱动链接在一起的。所以记住:inf文件中的VID&PID要全部编辑过。
阅读全文
摘要:之所以会有这篇文章,完全是因为自己没有仔细阅读技术文档,关于安装inf文件到哪里以及inf文件的重命名,Suite附带的cyusb.chm(Cypress cyusb.sys Programmer’s Reference)已有阐述,见Reinstalling the Driver部分。今天做bulk...
阅读全文
摘要:既然OC已经通过USB3.0接口识别了我的FX2LP最小系统,我打算做一下bulkloop例程。 第一步自然是向default FX2LP中写入bulkloop的固件程序: 利用Suite中的USB Control Center程序可以刷写RAM, D:\Cypress\Cypress Suite USB 3.4.7\Firmware\Bulkloop 里面有转换好的固件程序——bul...
阅读全文
摘要:今天把68013A-56焊接在CCD2的CPLD PCB上,配套的EEPROM存储器还没有焊接上,所以想用它试验一下Cypress的基础开发实例。研究了一上午,结果驱动都没装上。我用一种我没想到的方式解决的这个问题,详见文章尾部叙述。如果有人能给我一点提醒,非常感谢!Please contact "...
阅读全文
摘要:比较WXS师兄同步传输固件和异步传输固件的区别,发现dscr.a51、fw.c文件完全一致,tcxmaster.c有一行存在区别,位于初始化函数TD_Init(void)中:
在同步固件中:IFCONFG=0x03;//0000 0011
在异步固件中:IFCONFG=0xCB;//1100 1011
同步0x03,FIFO CLK来自外部,Slave FIFO工作在同步模式之下,Slave FI...
阅读全文
摘要:为了避免混乱,首先声明,这篇转发的博客我不是很清楚内容的正确性和权威性。我的一些想法与之冲突的地方所列如下:我是用Cypress USB Suite 3.4.7所带例程进行开发实验的,Suite附带的驱动程序名字叫cyusb.sys和cyusb.inf,其中cyusb.inf文件中没有默认指定任何V...
阅读全文
摘要://-----------------------------------------------------------------------------
// File: bulkloop.c
// Contents: Hooks required to implement USB peripheral function.
//
// $Archive: /USB/Exa...
阅读全文
摘要:首先要明白一个INF文件的基本结构:INF由节组成,即一个个段组成。每个段的功能不一样。(大部分书上把这个段叫作"节")[Version]段:主要用说明版本信息的。[Strings]段:字符串信息,用于常量定义,用于显示。凡在其他段中出现的%XXXX%(就是两个百分号夹着一组字母),则对应的就会在S...
阅读全文
摘要:1、利用Cypress提供的USB通用驱动程序CyUSB.sys and CyUSB.inf,是稳妥的做法,因为驱动程序的编程比较繁琐,可尽力规避。可简单修改sys文件名、inf文件中的ID码、inf文件中出现的sys文件的文件名;2、在一个EZUSB固件工程中,一般只需要修改两个文件:Periph...
阅读全文