EZ-USB FX2单片机原理、编程及应用 读书笔记
2016-10-24 10:12
344 查看
EZ-USB FX2 单片机原理、编程及应用 PDF图书下载
四种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.
固件如何处理USB设备请求(当RENUM = 1时)的方式
此时,RENUM被设置为0,表示缺省的USB设备将自动处理设备请求。
从eeprom 进行C0加载,只有VID/PID,固件需要从pc端下载
虽然FX2能从最大为64KB的EEPROM中运行C2加载程序,但程序代码仅仅只能被下载到芯片上的8KB RAM中。
(I2C就两根线,地址什么的是串行传送;这里提到的地址/数据总线是好几根线,并行的)
固件程序重枚举过程
对于out端点,读取完数据以后要写一个任意值到接收长度低字节,这样能够重新装载该端点相当于清空了缓存
SKIP:
**固件如果想参与数据处理,那么需要把AUTOOUT位清0,然后根据写入的数据的SKIP bit位来决定这个包来如何处理,
为0提交给后端逻辑,为1忽略此包,不会提交给后端逻辑**
第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
相关文章推荐
- 【读书笔记】iOS-报刊杂志-Newsstand应用编程
- 【读书笔记】iOS-报刊杂志-Newsstand应用编程
- 《疯狂Android讲义》读书笔记2.Android应用的界面编程
- 读书笔记-java网络编程-2java流的工作原理及应用-
- <<产生式编程方法,工具与应用>>问题
- Attribute在.net编程中的应用(一)
- 应用MapX编程实现地图数据查询
- Attribute在.NET编程的应用(六)
- 谈Delphi编程中“流”的应用--可读写信息在文件中
- Attribute在.net编程中的应用
- Attribute在.NET编程中的应用(五)
- Attribute在.NET编程中的应用(三)
- Java Servlet 编程及应用(一)
- 《windows应用高级编程-C#编程篇》书中程序的小问题及改进
- Attribute在.net编程中的应用
- Attribute在.net编程中的应用(二)
- Attribute在.NET编程中的应用(五)
- Attribute在.NET编程中的应用(四)
- Attribute在.net编程中的应用(一)