阅读:2059回复:16
谁能提供ez-usb采集系统的固件源代码呀?送分!
我要开发基于ez-usb的采集系统,这里有ez-usb的开发板和工具,我看了cypress开发板自带的固件例子,没有发现哪一个特别适合我的,哪位大侠能提供源代码呢?小妹是新手,想找做一下修改就行的那种例子,这样上手快。有分相送哦。
还有一个问题,就是cypress提供的ezusb驱动是不是不做任何修改就可以用了那?产品ID怎么得到呢? :) :) :) |
|
最新喜欢:![]() |
沙发#
发布于:2002-06-21 14:26
用cypress提供的固件范例bulktest,把periph.c中的TD_pool()函数用你编写的函数替换掉就行了。ezusb.sys直接可以用。
|
|
板凳#
发布于:2002-06-21 17:43
\\Cypress\\USB\\Doc\\EZ-USB Series 2100\\AN2131 Bulk Performance.pdf
\\Cypress\\USB\\Target\\Fw\\Ezusb 产品id自己乱写,谁也管不着 [编辑 - 6/21/02 by sunkai] |
|
地板#
发布于:2002-06-24 16:05
请教liudongm
TD_pool()函数具体要做什么事呢? 你又没有例子啊?万分感谢! |
|
地下室#
发布于:2002-06-24 19:14
TD_pool函数就是主循环函数,在里边写你自己的功能代码,而firmware的框架都由FW给你做好了
|
|
|
5楼#
发布于:2002-06-25 09:48
这个我知道,就是不知道怎么写,所以才要例子啊
楼上的朋友有没有TD_pool函数的例子呢? 对于我的采集系统(cypress的ez-usb芯片cy7c64613),TD_pool里面的功能代码具体是哪些功能呢? |
|
6楼#
发布于:2002-06-25 10:57
TD_pool()里就写你要实现的功能就行了,比如说将你采集到的数据放到 IN7BUF,也可以放到其他INBUF里
TD_pool() { BYTE length; BYTE DATA[x]; BYTE i; .... //数据采集,并将采集到的数据放入 .... //DATA[X]中,长度为length .... if (EPIO[IN7BUF_ID].cntrl & bmEPBUSY) { TOGCTL = 0x08 | IN7BUF_ID; WRITEDELAY(); if (TOGCTL & 0x80) TOGCTL |= 0x20; else TOGCTL |= 0x40; } for(i=0;i<length;i++) { IN7BUF=DATA; } IN7BC = i; } 这是2131QC的程序,cy7c64613没用过 |
|
7楼#
发布于:2002-06-25 23:18
楼上的朋友能解释一下你的下面程序的意义吗?
if (EPIO[IN7BUF_ID].cntrl & bmEPBUSY) { TOGCTL = 0x08 | IN7BUF_ID; WRITEDELAY(); if (TOGCTL & 0x80) TOGCTL |= 0x20; else TOGCTL |= 0x40; } |
|
8楼#
发布于:2002-06-26 15:28
这段程序确实没有意义,把它删掉去吧。
|
|
9楼#
发布于:2002-06-28 09:03
请问liudongm:
你的那段代码在periph.c里面有的,就比如: void ISR_EP1out(void) interrupt 0 { int i; ...... } 为什么都用interrupt 0?还有,interrupt是干什么用的? 我查了好多资料还没弄清楚,所以只好请教你了,:( |
|
10楼#
发布于:2002-07-01 17:02
c51里中断服务函数的定义为
返回值 函数名() interrupt n[using n] interrupt n 的n为对应的中断源的编号,在这里我觉得n应该为8,不过n为0也能正常工作 |
|
11楼#
发布于:2002-07-03 16:12
谢谢liudongm! :) :) :)
那这一部分中断的代码是干什么用的呢? |
|
12楼#
发布于:2002-07-03 18:46
谦虚倒是蛮谦虚,就是要学的东西太多了, :D :D :D
|
|
13楼#
发布于:2002-07-04 10:49
sunkai
我是新手嘛,你要是会就教教我好了 是不是觉得我搞了一个月的usb还没多少长进啊 唉,偶一点也不用功的说,让你见笑了 :( :( :( |
|
14楼#
发布于:2002-07-04 13:03
你有开发系统,我相信你的e文水准比我高,你仔细地看完安装目录下的文档后就一定比我懂得更多的理论.但如果你不熟悉c51也不懂a51,还是不大好做,不可能全部都由别人给你讲解的.
一个采集系统要做的事情包括usb接口硬件和firmware,AD模块(没准又要用到c51,a51),微弱信号还要放大器模块,主机方要驱动程序和桌面应用程序等等.如果全部由你一个人做的话,毫不夸张地说,没有一年时间做不出一个\"相对完善\"的东西出来. 实际上fw已经是个完整的框架,也就是说你一句也不写都可以用做接口功能,这当然还不够,你要控制下面的模块得到想要的数据,那么就要加入相应的代码,做一点点修改.如果想把指令从主机发送给设备,可以利用一个out端点的中断服务函数接收,你想得到的数据则从一个in端点的中断服务函数中等待传递,你问TD_pool()是干什么的?有个朋友答复的很对,就是一个task dispatch 例程,不用中断服务就要在TD_pool()中用查询的方式实现,可以结合使用.在这里你要做的是添加独特的功能代码,所以你不可能得到很多帮助,我们都不知道你的硬件是什么样子,也不知道该怎样去控制它,只有你才知道. 关于驱动程序,ezusb.sys是不需要修改的,还有其他问题,比如下载firmware等等,要参看文档,不看懂就听不懂,更没法做. |
|
15楼#
发布于:2002-07-04 16:36
sunkai
谢谢你!我无以为报,就送给你分吧! 你说的很对,这段时间我就在看单片机,呵呵 |
|
16楼#
发布于:2002-07-04 16:43
现在登陆了却不让我送分, :( :( :(
待会儿再试一试 |
|