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复位总结
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复位总结
相关文章推荐
- EZ-USB开发笔记(三)——内存安排
- EZ-USB开发笔记(八)——电源管理
- EZ-USB开发笔记(四)——中断(上)
- EZ-USB开发笔记(九)——USB传输
- EZ-USB开发笔记(一)——EZ-USB概述
- EZ-USB开发笔记(十)——枚举与重枚举
- EZ-USB开发笔记(二)——CPU介绍
- EZ-USB开发笔记(零)——背景介绍
- EZ-USB开发笔记(五)——中断(下)
- EZ-USB开发笔记(六)——CPU外设
- EZ-USB 68013学习笔记(二)——USB协议之传输的基本单元--包
- EZ-USB 68013A开发指南
- USB虚拟串口实验_STM32F1开发指南_第五十三章——USB学习笔记
- EZ-USB FX2LP,CY7C68013A学习笔记[1]
- EZ-USB上位机驱动开发(一)
- arm-linux系统开发笔记3:挂载USB
- usb应用开发学习笔记
- [Openwrt 项目开发笔记]:USB挂载& U盘启动(三)
- [转载].Craftor - EZ-USB FX2LP,CY7C68013A学习笔记[1]
- EZ-USB 68013 学习笔记--设备信息安装文件CyUSB.inf详细说明