原创 USB接口芯片 CY7C68013 (2)

2014-8-1 09:39 1111 10 10 文集: 接口

EZ-USB FX2 上电加载过程:

情况一:

1、如果没有EEPROM连接在 68013 上(管脚 SDA SCL 判断),那么 68013中的USB控制和状态寄存器 USBCS 的 RENUM 位 = 0(复位后自动置0),表示用缺省USB设备进行枚举,处理设备请求。缺省 VID PID DID 值由厂商写在了 68013 芯片内 ,由这个默认值加载对应驱动。缺省USB设备,对各种描述符,各种配置也都有默认值;

2、缺省USB设备枚举完之后,会请求加载自定义的固件,然后在 68013内运行固件;

3、固件将 USBCS 的 DISCON 位 =1 , 模拟硬件断开;然后 RENUM 置 1 ,表示固件程序处理设备请求,而不是缺省USB设备;最后 重新连接 , 即 DISCON  =0 ;(需要固件中写相应程序,实现此功能)

4、重新枚举过程开始。

情况二、

“C0加载模式”,用户的VID PID DID 值在EEPROM内,这种情况,复位后 RENUM 位 = 0(复位后自动置0),也是用缺省USB处理设备请求,只是 用外部EEPROM中VID PID DID 代替默认值。其他过程和“情况一”完全一致。要求EEPROM 首地址处值为 “0XC0”,后边是 VID等值。

情况三、

“C2加载模式”,FX2固件在EEPROM 内,复位后,程序从EEPROM加载到 68013 内,并置 RENUM =1(复位后自动置1) ,表示固件响应设备请求,进行设备枚举。然后运行固件;

这种模式,没有重枚举过程。要求EEPROM首字节值为 “0XC2”。

情况四、

(只有128脚的 68013 才有的模式),固件在外部EEPROM,而且 固件直接在外部EEPROM内运行;复位后,RENUM 自动置1,表示固件响应设备请求,进行设备枚举。

这种模式要求, 芯片 EA管脚接高电平,表示从外部EEPROM 中执行固件代码。

 

注意: 无论是枚举还是重枚举,都是一样的枚举过程(重枚举是为了方便调试开发设备),区别只是USB缺省设备还是固件处理设备请求,枚举的过程都是如下步骤:

在设备的枚举过程中都是使用控制传输,端点0(管道0);

枚举过程:

(1)主机检测到插入USB设备后,使用默认地址0,向USB设备发送GetDescriptor(Device)请求,获取设备描述符;

(2)主机发送SetAddress请求,为连接的USB设备分配一个唯一的设备地址;

(3)主机使用新的地址向USB设备发送设备描述符请求,获取全部描述符,包括产品ID,供应商ID等;

(4)主机循环发送描述符请求,获取配置、接口、端点描述符和自定义描述符;

(5)主机根据USB设备的配置信息,如产品ID、供应商ID等,选择并加载一个合适的驱动程序。

(6)在加载驱动程序后,便可以进行各种配置操作和数据传输等。

 

 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条