您的位置:首页 > 编程语言

EZ-USB FX2单片机原理、编程及应用 读书笔记

2016-10-24 10:12 344 查看
EZ-USB FX2 单片机原理、编程及应用 PDF图书下载

第1章. 简介



1.5 Tokens and PIDs



四种handshake包:

ACK (Acknowledge) means ‘success’; the data was

received error-free.

NAK (Negative Acknowledge) means ‘busy, try again.’ It

is tempting to assume that NAK means ‘error,’ but it

does not; a USB device indicates an error by not

responding.

STALL means that something unforeseen went wrong

(probably as a result of miscommunication or lack of

cooperation between the host and device software).**A

device sends the STALL handshake to indicate that it

does not understand a device request, that something

went wrong on the peripheral end, or that the host tried

to access a resource that was not there.** It is like HALT,

but better, because USB provides a way to recover from

a stall.

NYET (Not Yet) has the same meaning as ACK — the

data was received error-free — but also indicates that

the endpoint is not yet ready to receive another OUT

transfer. NYET PIDs occur only in high-speed mode.

第3章. EZ0-USB FX2控制端点

3.2 控制端点EP0



3.3 USB请求



固件如何处理USB设备请求(当RENUM = 1时)的方式



3.5 EEPROM Configuration Byte



第4章. EZ-USB FX2 枚举和重枚举

 4.1 引言

4.2 EZ-USB FX2 启动模式

1)硬件逻辑加载模式

如果没有片外存储器(包括在兼容总线上的,或者地址/数据总线上的)被连接到EZ-USB FX2 上,它就枚举缺省的USB设备,其中描述符VID、PID、DID由内部硬件逻辑提供。

此时,RENUM被设置为0,表示缺省的USB设备将自动处理设备请求。

2)C0加载模式

如果有一个包含了用户VID/PID/DID值的EEPROM被连接到 EZ-USB FX2上的SCL和SDA引脚,EZ-USB FX2将和上面一样也枚举缺省的USB设备,但是所不同的是它江永EEPROM中的VID/PID/DID值来代替内部的默认值。此时,EEPROM必须包含0xC0头字节用于向EZ-USB FX2 只是这种模式。RENUM被自动设置为0,表示缺省的USB设备将自动处理设备请求,(有外接EEPROM而且头字节为0xC0会把RENUM自动设置为0 )。对于C0加载模式,一个16字节大小的EEPROM就已经够了。

从eeprom 进行C0加载,只有VID/PID,固件需要从pc端下载



3)C2加载模式

如果将一个包含有FX2固件程序的EEPROM连接到I2C总线,固件程序将从EEPROM自动下载到FX2芯片上的RAM,CPU将通过复位后运行下载的程序代码。此时,VID/PID/DID码值包含在固件程序中。RENUM位自动设置为1,用于表示由该固件程序来处理设备的请求,而不是缺省的USB设备。EEPROM必须在第1字节写入0xC2,用于表示FX2处于这种模式。

虽然FX2能从最大为64KB的EEPROM中运行C2加载程序,但程序代码仅仅只能被下载到芯片上的8KB RAM中。





4)片外存储器加载

如果有FLash、EPROM或另外的存储器连接到FX2的地址/数据总线上(只有128引脚封装有),并且没有含有上述要求格式的EEPROM,同时, EA引脚被置高电平,表示从片外存储器起始代码为0x0000开始执行,则EZ-USB FX2 从片外存储器开始执行固件程序。VID、PID、DID码值包含在固件程序中。RENUM位自动设置为1,表好似是这个固件程序处理设备请求而非FX2内部逻辑。

(I2C就两根线,地址什么的是串行传送;这里提到的地址/数据总线是好几根线,并行的)

固件程序重枚举过程





第6章. EZ-USB FX2存储器



第8章



对于out端点,读取完数据以后要写一个任意值到接收长度低字节,这样能够重新装载该端点相当于清空了缓存

SKIP:

**固件如果想参与数据处理,那么需要把AUTOOUT位清0,然后根据写入的数据的SKIP bit位来决定这个包来如何处理,

为0提交给后端逻辑,为1忽略此包,不会提交给后端逻辑**

第11章

11.5 CPU访问端点数据



 11.7 设置数据指针







第12章 EZ-USB FX2 从属FIFO



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