上海思越电子科技有限公司网标
上海思越电子科技有限公司
设为首页
联系站长
加入收藏

首 页 公司动态

产品信息

芯片销售

技术开发

资料下载

客户服务

淘宝网店

联系我们

     

当前位置:

>> 技术开发 >> 技术讨论
技术开发 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SY2100 EZ-USB开发使用 (0) (1) (2) (3) (4) (5)
   
EZ-USB程序设计应用举例
 

这里只是简单介绍一些例子,在examples目录里有更多的实例。

 
1. 块传输测试(ezbulk.hex)  

这是一个用汇编语言编写的快传输测试的例子,使用端点2 IN和OUT来进行快传输。有关用C语言编写的快传输测试的例程请参阅14.2.5节和14.5.6节。该程序中首先用64至1的递减计数器的值填充端点2 IN缓冲区,保持对端点2 IN和OUT传输的计数,对端点2 OUT接受到的数据不作任何处理,但只改变端点2 IN缓冲区的前俩个字节,其中第一个字节(0)用端点2 IN传输次数的计数值代替,第二个字节(1)用端点2 OUT传输次数的计数值代替。

使用控制面板进行测试的步骤如下:
* 下装程序。既可以Keil的集成环境,也可以用控制面板的Download按钮来下载..\cypress\usb \Examples\EzUsb\ EzBulk_asm\ezbulk.hex文件。
* 设置Interface o, alternate aetting 1。确定EP2端点使用最大包长度64字节,按Get Pipes来更新设置。
* 在块传输按钮条中选择端点2 IN,单击块传输按钮,可看见64到1递减计数的64个字节。
* 再次单击块传输按钮以执行另一个EP2 IN传输,现在除了字节0的数值发生了变化外,其它的数值均相同。字节0用来指示IN传输的次数,每发生一次IN传输,其计数值加1。
* 在块传输按钮条中选择端点2 OUT,单击块传输按钮,发送64个字节到EP2OUT,该数据被忽略。
* 选择端点2IN,单击块传输按钮,发现第二个字节的数值发生了变化,字节1用来指示OUT传输的次数,每发生一次OUT传输,其计数值加1。

该程序使用查询法,不断地对端点忙位进行查询。比较好的方法是中断向量法。程序清单如下。

 
下载 ezbulk.hex
 
2. 利用块端点对进行环路测试(ep_pair.hex)  

该程序使用端点2和端点3组成端点对,并将主机发送到端点2 OUT缓冲区的一组数据传输到端点2 IN缓冲区,在由主机读回。程序采用C语言编写,并使用EZ-USB的固件函数库和程序框架。通过控制面板可下载ep-pair.hex文件到EZ-USB 8501的内部RAM中并运行。

复位开发板上的Reset按钮; 用Download按钮下载..\cypress\ usb\ examples\ ep_pair.hex固件; 单击Get Pipes按钮; 选择端点2Out管道,Length=64,Hex Bytes参数为8,单击Bulk Trans按钮,64个字节的数据0x08被发送出去; 现在我们强制在usb总线上出现错误,怎么办?很简单,只需返回32字节的数据,而ep_pair总是要发送64个字节的数据,这将违反USB协议,导致错误发生。选择端点2 IN管道,Length=32,单击BulkTrans按钮。 单击URB Stat按钮,将获得当前状态下的详细信息。

将Length改回到64,选择端点2 OUT管道,Length=64,Hex Bytes参数为8,单击Bulk Trans按钮。
选择端点2IN管道,Length=64,单击Bulk Trans按钮。这时会出现如图所示的出错信息,因为管道已经处于stall状态;
在Reset Pipe的Pipe条目中选择0:Endpoint 2 IN,然后单击Reset Pipe按钮清除该管道的stall条件,使得设备重新恢复正常。

 
下载 ep_pair.hex
 
3. USB同步传输(eziso.hex)  

这是一个很简单的同步传输的例子,用汇编语言编写。程序从端口A,B和C读取数据,通过EP8IN连续发送5个字节的包:
;字节0:帧计算器H
;字节1:帧计算器L
;字节2:端口A引脚
;字节3:端口B引脚
;字节4:端口C引脚

通过该程序,可以学会如何传输I/O端口的数据到同步端点缓冲区EP8IN,以及如何采用自动地址指针。为了便于理解,程序未使用中断系统,代替以查询SOF位来探测是否有SOF令牌到达。
使用控制面板的步骤如下:
(1) 下载..\Cypress\usb \examples\ezusb\eziso_asm\eziso.hex文件;
(2) 在Iso Trans栏设置:
PiPe=7: Endpoint 8 IN
PktCount=1
PktSize=5
BuffCount=1
FrmPerBuff=1
单击Iso Trans按钮多次,帧计数器值和24个输入引脚的值将显示在数据窗口。

 
下载 eziso.hex
 
4.Vendor 专用命令程序(Vend_ax.hex)  

通过EZ-USB控制面板的download按钮可下载该程序到EZ-USB开发板上运行。它主要解释执行vendor的几个命令:
--A0下载:
--A2读取EEPROM;
--A3读取外部RAM;
--A4设置IC地址;
--A5读取IIC的类型(1字节或2字节);
--A6读取芯片版本信息;
--A8重枚举。

该固件程序是基于EZ-UEB固件框架开发的。

 
下载 Vend_ax.hex
 
5、ISO流传输程序(isostrm.hex)  

该程序由3个部分组成:基于wendows的test应用程序(isostrm.exe)、EZ-USB通用目的驱动程序GPD(ezusb.sys)和执行简单的同步传输的EZ-USB固件(isostrm.hex)。主要目的是验证使用GPD执行ISO流的能力。ISO流使用下面的IOCTL:
IOCTL_EZUSB_START_ISO_STREAM
IOCTL_EZUSB_STOP_ISO_STREAM
IOCTL_EZUSB_READ_ISO_BUFFER

test应用程序用来启动或停止ISO流,Start Read Thread按钮启动流传输,调用IOCTL_EZUSB_READ_ISO_BUFFER,并保持对读出包的计数,因为ISO包的第一个字节是递增计数的,所以可以判断出是否有包丢失,记录丢失的包。 Isostrm.exe使用控制面板装入isostrm.hex到USB外设,然后单击Start Iso Stream 按钮,启动ISO流,再单击Start Read Thread按钮,开始连续读一个ISO流,等待一会儿,最后单击Stop Iso Stream按钮来停止ISO流的传输。通过Start Read Thread按钮,将会看到数据传输的几个缓冲区,可用来观看丢失的帧。

Isostrm固件是基于固件框架编写的,使用单个ISO IN端点。在每一个SOF帧,复制64个字节到ISO8IN缓冲区,缓冲区的前2个字节是当前USB传输的帧号,其余的是增量计数值。

 
下载 isostrm.hex
 
6 开发板SIO-0 RS232串行口演示  

在光盘中..\ LoopRS232V1.0.1的目录下,提供了开发板SIO-0 RS232串行口演示程序。这是一个开发好的演示程序。首先,安装.. \ LoopRS232\ Host下的setup.exe程序进行安装,应用程序安装后可以在Windows的"开始"菜单中发现安装好的程序。用RS232串行电缆将开发板的SIO-1口和主机COM1口相连接,启动控制面板程序,Download目录..\ .. \ LoopRS232\Target下的LoopRS232.hex到开发板,然后,运行应用程序。详细情况可阅读Readme。

 
下载 LoopRS232.zip
 
7 按钮和灯  

在光盘中的...\buttons and lights\dev_io目录下,提供了按钮和灯的源程序和编译好的结果。连接开发板,启动控制面板程序,Download目录\buttons and lights\dev_io\下的dev_io.hex到开发板,就可以运行程序了。

按钮和灯程序运行后,当分别按下开发板上的F1、F2、F3、F4按钮时将有不同的现象。七段LED可显示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。按钮功能如下:
F1:七段LED置0显示;
F2:七段LED递减显示;
F3:七段LED递增显示;
F4:七段LED置F显示;

 
   
   
上一页
下一页
 
 
 
 

 

 
 
   
 
上海思越电子科技有限公司网标
上海思越电子科技有限公司 (Shanghai Siyue Electronics Co., Ltd.)
电话: 086-021-54170805, 54170905 传真:086-021-54170905
Copyright © 2012 www.shsiyue.com All rights reserved.

经营许可证号 : 沪ICP备10001390号
信息确认