打印
[Atmel]

每天跟我读点资料:SAM D21数据手册(239)

[复制链接]
611|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在使用USB之前,Pad效准寄存器(PADCAL)必须被从NVM软件效验区域载入校准值。参考"NVM Software Calibration Area Mapping"更进一步的描述。
USB使能是通过向CTRLA.ENABLE写1.USB失能是通过向CTRLA.ENABLE写0。
USB复位是通过向CTRLA中的软件复位比特写1来实现的(CTRLA.SWRST)。USB中的所有寄存器将复位到它们的初始状态,USB这时将被禁止。参考CTRLA寄存器的描述。
用户能配置pads和速度在使能USB之前,通过向控制A寄存器的选择模式比特(CTRLA.MODE)和控制B寄存器的速度配置段(CTRLB.SPDCONF)。
这些值是在USB通过向CTRLA.ENABLE写1使能时考虑。

在向CTRLA.ENABLE写1之后,USB进入设备模式或主机模式(根据CTRLA.MODE)。

USB能在任何时间里向CTRLA.ENABLE,写零来失能。

参考"USB Device Operation"设备模式的基本操作。
参考"Host Operations"主机模式的的基本操作。

31.6.2 USB设备操作
     这一节给出一个USB模块的设备操作概述在普通传输中。更多的关于通用USB和USB协议,请参考通用串行总线说明书2.1。
31.6.2.1初始化
     从USB主机连接USB设备开始通讯,一个0必须写到设备控制B寄存器的分离比特位(CTRLB.DETACH).从USB主机分离一个设备,一个1必须写入到CTRLB.DETACH。
     在设备连接之后,主机将请求USB设备描述符用已经定义的设备地址0。在成功传输后,将要发一个USB复位。在那以后,主机将发一个地址用来配置设备。所有的将来的传输将直接传到这个地址。这个地址将被配置在设备地址寄存器(DADD.DADD)和DADD地址使能比特将写1,用来接收直接到这个地址的通讯。DADD.ADDEN
当接收到一个USB复位后自动清零。
31.6.2.2 端点配置
     端点数据能放置在RAM的任何地方。USB控制器访问这些端点通过AHB管理器(在DMA内建立),并有端点描述符的帮助。端点的基础地址描述需要被用户写到描述地址寄存器(DESCADD)。请参考端点描述结构体。"Endpoint Descriptor structure"。
     在使用端点之前,用户应该配置端点的方向和类型在设备端点配置寄存器中的端点类型段(EPCFG.EPTYPE0/1)。端点描述寄存器应在使用前被初使化,所以USB控制器不用从RAM读随机值。
     在包长度寄存器中的端点长度段(PCKSIZE.SIZE)应被配置为每次向主机报告那个端口的长度。数据缓冲寄存器的地址(ADDR)应被设置成端口传输的数据缓冲。
     Ram访问中断比特在设备中断标志寄存器(INTFLAG.RAMACER)被设置当一个RAM访问下溢错误发生在输入数据阶段。
     当一个端点失能,下列那个端点寄存器被清除:
     。设备端点中断使能清除/设置(EPINTENCLR/SET)寄存器
     。设备端点标志(EPINTFLAG)寄存器
     。在端点状态寄存器传输拖延0比特(EPSTATUS.STALLRQ0)
     。在端点状态寄存器传输拖延1比特(EPSTATUS.STALLRQ1)
31.6.2.3 多包传输
    多包传输使能数据传输量超过端点最大传输长度被传输,作为多包传输不需要软件介入。这样减少了管理高级USB传输中断及软件介入的请求。多包传输是在IN和OUT传输描述中指示的,在本节中没有其它的注意事项。
    这个应用软件提供了RAM缓冲的长度和地址,对指定的端点被USB模块处理,USB模块将分离USB传输中请求的缓冲而不需要软件干介入。





相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6950

帖子

67

粉丝