2.USB启动方式和枚举
上电时,内
部逻辑会检查连接到I2C总线上的EEPROM中的第一个字节(0xC0或0xC2)。如果是0xC0,就会使用EEPROM中的VID/PID/DID
来替代内部存储值;如果是0xC2,内部逻辑就会把EEPROM中的内容装入到内部RAM中;如果没有检查到EEPROM,FX2就会使用内部存储的描述
符来枚举。其缺省值是0x04B4/ 0x8613/ 0xxxyy。
当首次插入USB时,FX2会通过USB电缆自动枚举并下载固件和USB描述符表。然后FX2将再次枚举,通过下载的信息来定义设备。这两个步骤就叫做重枚举,当设备插入时它们就立即执行。
3.程序/数据存储器
(1)内部数据RAM。
FX2的内部数据RAM被分成3个不同的区域:低(LOW)128字节,高(Upper)128字节和特殊功能寄存器(SFR)空间。低128字节和高128字节是通用RAM,SFR包括FX2控制和状态寄存器。
(2)外部程序存储器和数据存储器。
FX2有
8KB片上RAM(位于0x0000~0x1FFF范围内)和512字节Scratch RAM(位于0xE000~0xE1FF)。尽管Scratch
RAM从物理上来说位于片内,但是通过固件可以把它作为外部RAM一样来寻址。FX2保留7.5KB(0xE200~0xFFFF)数据地址空间作为控制
/状态寄存器和端点缓冲器。
注意 只有数据内存空间保留,而程序内存(0xE000~0xFFFF)并不保留。
4.端点缓冲区
FX2包含3个64字节端点缓冲区和4KB可配置成不同方式的缓冲,其中3个64字节的缓冲区为EP0、EP1IN和EP1OUT。
EP0作为控制端点用,它是一个双向端点,既可为IN也可为OUT。当需要控制传输数据时,FX2固件读写EP0缓冲区,但是8个SETUP字节数据不会出现在这64字节EP0端点缓冲区中。
EP1IN
和EP1OUT使用独立的64字节缓冲区,可配置为BULK、INTERRUPT或ISOCHRONOUS传输方式,这两个端点和EP0一样只能被固件访
问。这一点与大端点缓冲区EP2、EP4、EP6和EP8不同,这4个端点缓冲区主要用来和片上或片外进行高带宽数据传输而无需固件的参与。EP2、
EP4、EP6和EP8是高带宽、大缓冲区,它们可被设置成不同的方式来适应带宽的需求。
5.外部FIFO接口
EP2、
EP4、EP6和EP8大端点缓冲区主要用来进行高速(480Mbit/s)数据传输。可以通过FIFO数据接口与外部ASIC和DSP等处理器无缝连接
来实现高速数据传输。它具有的通用接口有:Slave FIFO或GPIF(内部主)、同步或异步时钟、内部或外部时钟等。
|