您的位置:首页 > 其它

EZ-USB开发笔记(七)——复位

2013-09-21 12:14 162 查看
一、概述

EZ-USB有三种复位方式:

·硬件复位。RESET#加上一个低电平

·CPU复位。该复位由EZ-USB的USB逻辑控制

·USB总线复位。当USB host初始化USB总线的一种状态,以复位EZ-USB的USB外设

二、硬件复位

如果RESET#管脚拉低时,XTALIN管脚仍有时钟供给,则RESET#需要拉低200us。否则,RESET#需要拉低至少5ms。

2.1 复位阶段

EZ-USB在复位阶段状态如下:

1. 所有特殊功能寄存器为默认值

2. 端点的数据buffer未知

3. CPU时钟为12MHz,CLKOUT管脚有效,CPU保持在复位状态

4. 所有的I/O端口为通用输入端口

5. USB中断禁止

6. 批量IN/OUT端点未命名,stall比特清零

7. 端点的data toggle比特清零

8. RENUM比特清零

9. USB功能地址寄存器清零

10. 端点配置为默认设备

11. USB和FIFO/GPIF的自动二级跳转功能被禁止

12. 端点0有效

13. USB总线的D+线上的上拉电阻在复位阶段被断开

2.2 脱离复位

CPU在上电时,CPUCS.0比特置1,使CPU保持在复位状态。当该比特清零时,可以使CPU脱离复位状态。有三种方式可以清零该比特位:

·主机下载RAM完成,主机清零CPUCS.0

·EEPROM下载完成,自动清零CPUCS.0

·使用片外ROM(EA=1)做程序存储器,且EEPROM没有有效的加载映像时,自动清零CPUCS.0

注意:CPUCS.0对软件是只读的,软件不能将该比特置1以复位CPU。

2.2.1 RAM下载

在枚举的时候,主机可以用frimwar load向EZ-USB的RAM下载程序。当最后一个数据包下载完后,主机向CPUCS寄存器写0x00,使CPU脱离复位状态。

2.2.2 EEPROM下载

在上电时EZ-USB检测I2C总线上有无有效的EEPROM,如果存在EEPROM且第一个字节为0xC2,则EZ-USB从EEPROM中读取程序,加载到片内RAM中。当最后一个字节加载完后,EZ-USB向CPUCS寄存器写0x00,使EZ-USB脱离复位状态。

2.2.3 外部ROM

对于128-pin的芯片可以加挂片外的存储器。当外部挂载程序存储器后,EZ-USB不需要再挂载EEPROM,这样,当EA管脚被拉高且I2C总线上没有“C0/C2”EEPROM时,EZ-USB自动脱离复位状态。

三、CPU复位

USB主机可以在任何时候对EZ-USB的CPUCS寄存器写0x01以复位CPU。

四、USB总线复位

主机可以通过在USB总线上发送一个SE0状态来复位EZ-USB,SE0状态即将D+和D-信号线拉低,该状态需要持续10ms。EZ-USB可以捕获到这个总线状态,并产生一个USB中断。

五、EZ-USB复位总结

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: