原创 EZUSB-FX2的RENUM位(USBCS.1)与SUDAV(SETUP数据有效)中断的研究

2008-11-29 09:17 3840 6 5 分类: 通信

EZUSB-FX2RENUM(USBCS.1)SUDAV(SETUP数据有效)中断的研究<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


吴勇平     2008-11-21


v  RENUM


一个被称为“ReNum”(重枚举)EZ-USB FX2控制位,决定是由FX2内核(硬 件)还是由固件程序(软件)处理端点0的设备请求。上电时,ReNum(USBCS.1)0,表示FX2内核自动处理设备请求。一旦固件程序下载到EZ-USB FX2并且运行,它可以设置ReNum=1,表示使用由用户下载的固件程序和描述符表来处理设备请求。


如果一个128引脚封装的EZ-USB FX2使用了片外代码存储器,并且EEPROM也没有提供用户VIDPID,那么EZ-USB FX2就自动设置RENUM位为1,设备请求总是由片外存储器中的固件和描述符表来处理。如果EA引脚接低电平,则在“C2加载后,EZ-USB FX2也将RENUM设置为1。在这种情况下,固件执行从EEPROM中加载到内部RAM中的程序代码,同时,固件处理USB请求。


默认USB设备的另一种用法:


默认USB设备在系统上电时就被设置为:能将下载的固件装入FX2内部RAM中的一个USB设备。默认USB设备还有另外一个有用的特性:可改写固件程序以支持已配置好的普通USB设备。在CPU脱离复位状态前,FX2自动使某些端点有效,并通过描述符告诉主机。通过利用默认USB设备(保持ReNum=0),固件可用很少的代码,利用已配置好的端点执行有意义的USB传输。



v  RENUM=1(固件程序处理设备请求)


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


如表2-2所示:当RENUM=1时,由固件程序通过SUDAV(SETUP数据有效)中断来处理设备请求。即当FX2正确接收到SETUP数据(8个字节)时,FX2内核将产生SUDAV中断信号(除了Set_AddressUpload/Download RAM请求,这两个请求由FX2内核自动处理,不产生SUDAV中断请求信号,不需要固件程序的干预)由固件程序通过响应中断来处理设备请求。



v     RENUM=0(FX2内核自动处理支持的设备请求)



如表3-6所示:当RENUM=0时,由FX2内核自动处理支持的设备请求(除了Clear Feature-DeviceSet Feature-DeviceSet DescriptorSync Frameall other请求,这些请求会产生SUDAV中断请求信号,固件程序通过响应SUDAV中断来处理设备请求)即当FX2正确接收到SETUP数据(8个字节)时,如果是FX2内核支持的设备请求,FX2内核自动处理,并且不产生SUDAV中断请求信号。否则FX2内核产生SUDAV中断请求信号,固件程序通过响应SUDAV中断来处理设备请求。


总结:上面的说明可以这么理解:当FX2接收到SETUP有效数据(8个字节)时,首先判断RENUM位的状态:


如果RENUM=0FX2内核判断是不是支持的设备请求,如果是,内核自动处理,不产生SUDAV中断请求信号;如果不是,FX2内核才会产生SUDAV中断请求信号,固件程序通过响应SUDAV中断来处理设备请求。


如果RENUM=1FX2内核不作任何处理(除了Set_AddressUpload/Download RAM请求,这两个请求由FX2内核自动处理,不产生SUDAV中断请求信号,不需要固件程序的干预),产生SUDAV中断请求信号,固件程序通过响应SUDAV中断来处理设备请求。


注:为了避免将来的不兼容,制造商请求0xA0~0xAFCypress半导体公司保留。


Cypress半导体公司生产的FX2系列芯片用了制造商请求0xA0,这个请求由FX2内核自动处理,不产生SUDAV中断请求信号,不需要固件程序的干预;其它制造商请求0xA1~0xAF可以使用,并且可以产生SUDAV中断请求信号,由固件程序通过响应中断来处理这些设备请求。


但是Cypress半导体公司升级的芯片可能会用到制造商请求0xA1~0xAF,所以最好不要使用这些请求。如果制造商请求0xA0~0xAF被用了,被用的制造商请求,由FX2内核自动处理,不产生SUDAV中断请求信号;没用到的制造商请求可以产生SUDAV中断请求信号,由固件程序通过响应中断来处理这些设备请求。


另外,SOF中断和SUTOK中断不管RENUM位状态如何,都能产生中断。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条