zengyon
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2009-09-08
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望91点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2525回复:14

用PDIUSBD12的经验!

楼主#
更多 发布于:2003-05-08 19:09
D12的BUG很多,但可以避开,DMA方式并不比I/O方式快多少,而且电路复杂,程序大。我使用I/O方式做的FLASH盘的速度达到了1MB/秒。你要仔细阅读D12的文档,注意命令与数据之间的延迟。我有很多使用D12的经验,有问题可以给我打电话:13001127521。
我还有大量的比市场价低的D12芯片。

最新喜欢:

crazyqpcrazyq...
balsilver
驱动牛犊
驱动牛犊
  • 注册日期2003-04-13
  • 最后登录2008-05-31
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-08 20:04
你好!我是正在做c51-d12。现在遇到点困难想请教您,我的d12一上电其int_n脚就一直处于低电平,这样就使我的c51一直处于中断状态.请问这是否是d12的bug?? 如果是该如何跳过??
非常感谢!!!!! :(
zengyon
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2009-09-08
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望91点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-08 22:22
不是BUG,是上电后,D12的中断寄存器或状态寄存器中有动作,你应该读取它们,这在文档中有介绍。
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-08 22:35
兄弟,能介绍D12初始化的过程吗??
我按照下面的做了――
① Set Address Enable(D0,80);
② Set Endpoint Enable(此时LED亮); (D8,01)
③ Disconnect; (F3,06,0B)
④ delay(1~2 s);
⑤ Connect(即用43h参数调用Set Mode,此时LED灭); (F3,16,0B)

然后我读中断――有时候能产生两次中断(有时候就不中断),读中断寄存器的第一个字节,第一次为C0,第二次为80,读最后状态寄存器始终为0

兄弟能指点我一下,我还需要做什么吗??

[编辑 -  5/8/03 by  Wxy8030]
balsilver
驱动牛犊
驱动牛犊
  • 注册日期2003-04-13
  • 最后登录2008-05-31
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-09 09:22
楼上的大哥!请教一下你的d12的中断是在什么时候打开的??  :)
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-09 12:53

⑤ Connect(即用43h参数调用Set Mode,此时LED灭); (F3,16,0B)
之后――
一天到晚游泳的鱼
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2005-04-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-09 16:45
D12的BUG很多,但可以避开,DMA方式并不比I/O方式快多少,而且电路复杂,程序大。我使用I/O方式做的FLASH盘的速度达到了1MB/秒。你要仔细阅读D12的文档,注意命令与数据之间的延迟。我有很多使用D12的经验,有问题可以给我打电话:13001127521。
我还有大量的比市场价低的D12芯片。


楼上的兄弟,我正在用D12,项目大部分已经完成了,只是速度很慢,大概几十K左右,硬件我用的是中断写的方式,D12发一个中断到MCU,MCU就发16个字节到D12,驱动程序用的是周立功的,应用层则不断的读数据,用的是readfile(),它一次最大只能发64个字节的请求,但是很多高手都说可以发64K的请求,不知道是怎么回事,可否指教一二?它的驱动程序有什么问题吗?是不是需要自己重新编写?另外,你的D12价格多少,我公司很快需要大批量采购,我们电话或E_mail联系!

我的电话:023-65413681转8699找  倪水平
          023-65456915转8699

E_mail:nishuiping@hotmail.com

:) :) :) :) :) :) :) :) :) :) :)
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-09 22:50
楼上的,d12是全速的,一次最大可以发64字节bulk包,你为什么用16字节的呢?你用的是bulk方式吗,如果是中断方式那速度最大只能到64k/s.

所谓的64k其实是应用程序想驱动提供的最多数据量,到了驱动里它会自动给你分成1个1个的64字节的包发送到设备里,这样就省掉了一部分从应用程序到驱动时间消耗
zengyon
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2009-09-08
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望91点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-10 11:32
一.Wxy8030朋友的问题:
   读中断寄存器的第一个字节,第一次为C0,意思是有两个中断, 一个是BUS RESET,一个是SUSPEND CHANGE。第二次为80,意思是SUSPEND CHANGE中断。这两个中断值是上电时的典型值,可以继续读中断寄存器,根据新值再处理。
  43h参数是怎么用的?

二.balsilver朋友的问题:
   D12的中断在上电时,检测D+,D-线,可以产生BUS RESET和SUSPEND CHANGE中断,其它有关终点的中断,会在你设置它们的地址后,并有动作和数据时产生。

三.一天到晚游泳的鱼朋友的问题:
   用中断方式就是慢,可以试用BULK方式,也可改一下MCU写数据的指令,不要用循环指令,减少判断指令,尽量用汇编语言写指令。
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-10 12:31
TO―zengyon
写错了,是F3――
问题是我只能读到这两次中断啊,再往后就没有中断了,,,,,
对于复位中断和挂起中断我什么都没做,D12的挂起脚我常接地了,,,,
lbcat
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-09-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-05-10 15:29
   楼上是用什么作mcu的??怎么在connect之后才开中断???
 :o :o
ccboy
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2003-07-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-05-10 15:43
  楼上是用什么作mcu的??怎么在connect之后才开中断???
 :o :o

我觉得应该在CONNECT前就开中断的:)
我们是知识份子,我们不爱国,谁爱国。
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-05-10 16:19
我用的AT89C52啊,,,,,,,,
在执行完往D12发送CONNECT(F3,16,OB)之后打开中断的啊,,,,,,,
zengyon
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2009-09-08
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望91点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-05-10 17:26
中断在F3命令中设置,但在FB命令中才能启用终点4和5的中断,如果你要使用I/O模式和BULK管道,最好设置这个命令。你可以在程序初始时循环读中断寄存器,等RESET中断发生以后,再设置D0,D8,F3命令。不要先断上拉,再开启上拉,直接开启上拉。其后,CPU循环读中断寄存器,应该有终点0的中断,再读取终点0的缓冲区,这是读取描述符的80,06...命令,这样才正常。我的设计就是这样,没有问题。
顺便说一下,先连接还是先设置中断没有多少区别,先中断还容易被干扰
lbcat
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-09-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-05-10 18:28
    不知他说的中断是终点4和5的中断,还是mcu的中断,如果是前者倒没什么问题,如果枚举不成功可能是底层程序有问题(延时之类),因为我也是按这个顺序做的,没问题。如果是后者,问题就很明显了,呵呵…… :P :P
游客

返回顶部