打印

CY7C68013A的惊天大秘密:实现对全速和高速模式的切换

[复制链接]
1769|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
唐冬冬|  楼主 | 2015-3-1 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CYPRESS的USB外设控制器CY7C68013A是一款广泛应用于USB打印机,手机,存储设备,USB测试等多个领域的经典产品。该产品符合USB2.0协议规范,支持full speed和high speed两种速度模式,并且配有8051的MCU,带有IO,IIC,UART,定时器等功能。由于该芯片是市场上唯一支持high speed模式的芯片,所以一上市后,就获得了广泛的关注。
关于CY7C68013A的开发,CYPRESS提供了完整的程序架构,一般的应用只需要理解了它的软件架构以及寄存器的含义,然后根据自己的需求修改寄存器初始化值,并且修改USB的相关描述符即可实现。并且CYPRESS提供了较多的例程以及上位机,方便参考和调试,加快了开发的进度。
但是在开发的过程中,如果你想实现将你的CY7C68013A设备速度模式变为可切换,那你可能就要纠结和痛苦了。因为你查遍了它的DATASHEET和TRM手册也不会发现有相关的介绍。
但是请不要急,看完这篇帖子,你就能够实现了。
首先,在CY7C68013A的所有例程中,默认情况下,都是将设备枚举成高速模式的。那么如果想实现将其默认枚举成全速设备的话,应该怎么做呢?那就需要修改其中的寄存器值了。怎么改,改哪里呢?CY7C68013A的实现方法有点weird。因为他不是像别的MCU那样在程序中配置了某个寄存器的值就可以实现的,他是通过修改KEIL软件的配置实现的。准确的说是在KEIL调用Hex2bix文件,实现将HEX的文件转换为IIC文件时通过修改转换的参数来实现的。即将KEIL配置中的命令改成
c:\cypress\usb\bin\hex2bix -c 0x80 -i -f 0xC2 -o bulkloop.iic bulkloop.hex。
如果不加-c 0x80命令,那么CY7C68013A就会默认枚举成高速,加上-c 0x80就默认枚举成全速。(本段内容可以参考TRM手册55页内容)
那么在实现将设备默认枚举为全速后,如果在程序中将USB断开了一次,CY7C68013A又会变成了高速模式,此时想要切换速度模式,又需要怎么做呢?很简单,只需要这样(大招来了):
USBCS |= bmDISCON;       // just disconnect from USB
CT1&=0x02;        //0x02保证程序重启后可以保持在全速,//0x00保证在高速       
                                EZUSB_Delay(1500);   
                                USBCS &=~bmDISCON;      // reconnect USB
                                USBCS |=  bmRENUM;                 //EZUSB_Discon(TRUE);
即修改寄存器CT1的值就好了。这个寄存器就是控制速度模式的寄存器。但是翻遍了TRM手册,也没有关于这个寄存器的介绍,为什么呢?那是因为这个寄存器是不合法的,准确说是这个寄存器是CYPRESS公司开发的时候,在TEST时候使用的。所以没有公布。以上内容希望对大家有帮助。(本段代码只能参考例程中关于寄存器的文件fx2regs.h)
沙发
唐冬冬|  楼主 | 2015-3-1 16:19 | 只看该作者

使用特权

评论回复
板凳
关小波522| | 2015-3-2 08:26 | 只看该作者
呵呵,楼主这个主题名字起的很有吸引力。

使用特权

评论回复
地板
唐冬冬|  楼主 | 2015-3-2 15:18 | 只看该作者
关小波522 发表于 2015-3-2 08:26
呵呵,楼主这个主题名字起的很有吸引力。

要的就是这个效果,哈哈哈

使用特权

评论回复
5
huangqi412| | 2015-3-2 19:41 | 只看该作者
隐藏寄存器?

使用特权

评论回复
6
High哥| | 2015-3-5 08:18 | 只看该作者
:funk:能玩到这个地步,牛!

使用特权

评论回复
7
唐冬冬|  楼主 | 2015-3-5 16:39 | 只看该作者

是的

使用特权

评论回复
8
唐冬冬|  楼主 | 2015-3-5 16:39 | 只看该作者
High哥 发表于 2015-3-5 08:18
能玩到这个地步,牛!

分享,一起学习

使用特权

评论回复
9
l3663675| | 2015-3-7 13:23 | 只看该作者
这是怎么发现的~:funk:

使用特权

评论回复
10
smalling6| | 2015-3-19 00:34 | 只看该作者
流比 最近刚好碰到一个类似的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝