新闻  |   论坛  |   博客  |   在线研讨会
最简单好用的USB芯片,跟本不用了解一点USB识就能用USB传输数据
yujiuliang | 2008-04-29 08:10:29    阅读:3427   发布文章

 
alimama_pid="mm_10962200_964869_2078106"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="008000"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="0"; alimama_bgpic="0"; alimama_icon="0"; alimama_sizecode="41"; alimama_width=120; alimama_height=60; alimama_type=2; UD11是我见过最简单好用的USB芯片,不用编程不用了解USB就能上手
下面是一个中文简要说明及两个实现方法,方法一使用最方便最简单,充份体现了UD11的方便易用性。方法二的实现复杂一点,可以全面控制UD11发送接收重启等功能。PC上位机可以通过DLL库调Open\Write\Reard这三个函数实现USB的打开和收发数据。

一、I2C地址
所有命令、数据都通过I2C传送,UD11的地址由ADDRESS0-6来定义,悬空或接高电平=1,接地室=0
二、配置
配置并不是必须做的工作,而是在有特殊性要求时或要对产品做差异化区分时,选择性或全部重配置。
可重配置产品ID、厂商ID、产品说明字符、设备报告定义。
还可以配配置USB与PC相连的EP1、EP2开启、关闭、数据包大小、EP1报告间隔时间定义。
三、USB控制
MCU通过I2C(或串口)向UD11发送USB OPEN命后,UD11会自动与HOST(USB HOST 如电脑USB端口等)连接,并且全自动处理来自HOST端的命令,无须MCU干预,不占用MCU资源。
如果不需要使用UD11,可以通过发送USB OFF、SELLP命令使其断开或进入休眠状态,进入休眠状态以节约电能。
注意USB OFF只是关闭与电脑的逻辑上的连接,但UD11本身还在运行,并且可以再通过USB OPEN打开,而进入了休眠状态,则要必须要通过重上电或将PINTA端口拉高使UD11重新回到运行状状态。
四、读取端点端点信息
发送40+X命令可以取得此时的端点BUFFER状态,其中X为端点选择值。
                                          X=8代表端点1发送缓存器有多少个数据没有发送
                                          X=1代表端点2发送缓存器有多少个数据没有发送
                                          X=2代表端点2接收缓存器有多少个数据没被读出
                                          如果要读多个端点,X等于与端点对应值的和。UD11之依次返回端点数值的值。
五、读写端点
  发送80+LEN可对EP1端点进行写LEN+1个数据到EP1的内部缓存器操作,写入后,UD11会自动将数据发送给PC。
  发送C0+LEN可对EP2端点进行读写,读写数据的个数为LEN+1,读出、写入取决于I2CI2C总线状态,并与I2C总线状态一致。


六、应用例子
    中断法,此方法应用最方便。
    1、发送USB OPEN命令到UD11,以便开启UD11与HOST的连接。(配置使用默认值,数据发送或接收中断PINTA与MCU相应外部中断引脚相连)
    2、PINA中断时判断PINB电平,PINB=0向端点EP2发送缓存器写入将要发送到PC的数据,PINBPINB=0时从端点EP2发送缓存器读出PC

发来的数据
    读端点状态法
    1、发送USB OPEN命令到UD11,以便开启UD11与HOST的连接。(所有配置使用默认值)
    2、读端点EP2状态
    3、跟据读出的状态,写入将要发送到PC的数据,读出从PC发来的数据。
    4、重复2和3操作

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客