AT32F437

雅特力开发环境下载地址:雅特力科技官方网站:http://www.arterytek.com 
搭建AT32开发环境

一、调试工具及开发板

目前AT32F435/F437开发板都自带AT-Link-EZ调试工具,AT-Link-EZ如下图左边红框所示,它也可拆开后单独搭配其他电路板使用,支持IDE在线调试、在线烧录、USB转串口等功能。

1.png

图1. AT-START-F437开发板及AT-Link-EZ实物图

注意:AT-START板配备资源的详细说明,请参考《UM_AT_START_F43x_Vx.x》,存放路径为雅特力科技官方网站→产品讯息→高性能MCU→AT32F4xx系列下载的EvaluationBoard(开发板)资料包解压后\AT_START_F43x_Vx.x\03_Documents。

2.png

图2. 雅特力科技官方网站AT-START-F437开发板资料包

详阅请点击下载:《AT32F435 & AT32F437入门使用指南》

来源: AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 28

ACC简介

HICK时钟校准器(ACC)利用OTGFS作为设备时产生的SOF信号作为参考信号达到校准HICK的目的,SOF信号为主机发给设备其周期为1ms的脉冲信号。ACC控制器采用“跨越回归”算法,可以将HICK频率尽可能校准到靠近目标频率。

1.png

图1. ACC控制器架构

ACC功能解析

主要特性

ACC控制器具备如下特性:

  • 校准HICK,已达到对OTGFS设备提供48MHz±0.25%精度的时钟
  • SOF标志可选择来源:OTGFS1或者OTGFS2
  • 可配置的触发校准功能的边界频率
  • 两种校验方式:粗校验和精校验
  • 状态标志:校准就绪标志和SOF参考信号丢失标志
  • 带标志的中断源:校准就绪标志中断源和SOF参考信号丢失标志中断源

中断请求

拥有两个中断请求源:校准就绪中断源和SOF参考信号丢失中断源

2.png

表1. ACC中断源

当设置了对应的使能位,当产生了对应的中断,就会进入对应的中断处理函数。

3.png

图2. ACC中断示意图

校准原理

首先需要了解到,如果系统使用的是HICK作为系统时钟源,而本身ACC模块又是对HICK进行校准,那么此时整个系统是不具备校准条件的,因为没有一个准确的参考信号作为校准的基准,所以就引入了OTGFS的SOF信号。SOF信号是外部主机提供的,主机将准确的SOF信号(1ms周期)给到设备(待校准系统),然后ACC模块采样SOF信号,并进行一系列的计算达到判定HICK是否准确,如若发现HICK不准确那么就会进行校准动作。

SOF周期信号:1毫秒的周期性必须是准确的,是自动校准模块能够正常工作的前提条件;

SOF信号通过PA8输出,如下图:

4.png

图3. SOF信号示意图

cross-return策略(跨越回归算法):计算出离理论值最近的校准值;从理论上来说,可以将校准后的实际频率调校到离目标频率(8MHz)约0.5个step的精度范围以内。

5.png

图4. 跨越回归算法示意图

如上图所示,一旦触发自动校准的条件满足,自动校准就会按照step所规定的步长调整HICKCAL或者HICKTRIM。

跨越(cross):

在满足自动校验的条件后的第一个1毫秒采样周期内的实际采样值要么小于C2,要么大于C2。当这个值小于C2,自动校准按照step的定义,增加HICKCAL或者HICKTRIM,直到实际采样值比C2大,实现实际采样值由小到大对C2的跨越。

当这个值大于C2,自动校准按照step的定义,减少HICKCAL或者HICKTRIM,直到实际采样值比C1小,实现实际采样值由大到小对C2的跨越。

回归(return):

在跨越完成后,比较在跨越前后的实际采样值和C2之间的差值(按绝对值计算),得到离C2最近的实际采样值,从而得到最佳的校验值HICKCAL或者HICKTRIM。

若跨越后的实际采样值和C2之间的差值小于跨越前的实际采样值和C2之间的差值,则以跨越后的校验值为准,并结束校验流程,直到满足下一个满足自动校验的条件。

若跨越后的实际采样值和C2之间的差值大于跨越前的实际采样值和C2之间的差值,则以跨越前的校验值为准,那么校验值会退回一个step,并返回到跨越前的那个校验值,并结束校验流程,直到满足下一个满足自动校验的条件。

按照cross-return策略,在理论上,可以得到离中心频率约0.5个step所对应的频率精度。

如下四种情形会启动自动校准:

  • CALON的上升沿(从0到1);

  • 当CALON=1时,参考信号丢失之后又恢复;

  • 当采样计数器的值小于C1;

  • 当采样计数器的值大于C3。

在CALON的上升沿,即便采样计数器的值大于C1并小于C3,也会启动自动校准,其目的在于,在CALON之后,能够尽快将HICK的频率调整到中心频率的0.5个step以内。

以上四种情形的自动校准的结果均能将HICK的频率调整到中心频率的0.5个step以内。所以为了获得最佳的校准精度,建议将step保持为默认值1。若将step设为0,则HICKCAL或者HICKTRIM将无法改变,也即,无法校准。

ACC配置解析

以下对ACC的配置接口及流程进行说明。

函数接口

6.png表2. 配置函数列表

配置流程

  • 系统以HICK作为系统时钟源,并打开ACC时钟;

  • OTG_FS以HICK为时钟源并初始化OTGFS;

  • 使能ACC相关中断;

  • 配置C1/C2/C3值;

  • 选择SOF源;

  • 使能ACC并选择粗校验或者精校验。

案例 ACC校准HICK

功能简介

实现了使用ACC模块将HCIK校准在要求的精度内。

资源准备

1) 硬件环境:

对应产品型号的AT-START BOARD

2) 软件环境

project\at_start_f4xx\examples\acc\calibration

软件设计

1) 配置流程

  • 开启ACC/OTGFS外设时钟

  • 配置OTGFS设备和ACC模块

  • 开启ACC

2) 代码介绍

  • main函数代码描述

7.png

  • 中断处理函数

8.png

实验效果

  • 如若HICK时钟偏离正常值,ACC将自动启动校准(前提是OTGFS设备与主机成功连接),校准完成后在中断函数内会翻转LED2;产生SOF信号丢失后也会进入对应中断函数内翻转LED3。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 82

DMA简介

DMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个通道都支持外设的DMA请求映射到任意通道上。

1.png

图1. DMA控制器架构

DMAMUX简介

对于如何将外设的DMA请求映射到任意的数据流通道上,就需要使用到DMAMUX。DMAMUX针对每个外设都设计了独有的ID号,使用者只需要将此ID号写入对应的寄存器中并打开DMAMUX功能即可。DMAMUX的引入,使得DMA相较于传统DMA控制器变得更加灵活,使用者可以随意的分配7个通道的使用情况,不必再纠结与某个IP的DMA请求只能固定使用在某个或某几个通道上。

各IP对应ID号如下表:

表1. 各IP对应ID号列表

2.png

注:表格中“DMAMUX请求”为ID号;“来源”为各IP的DMA请求。

DMA功能解析

可编程数据宽度

DMA控制器的通道可支持传输不同数据宽度,byte/halfword/word。通过DMA_CxCTRL中的PWIDTH和MWIDTH位可以对源数据和目标数据的数据宽度进行编程,通常情况下需要设置PWIDTH和MWIDTH位相等,当PWIDTH不等于MWIDTH时,会依据PWIDTH/MWIDTH设定将资料对齐。

3.png

图2. PWIDTH:byte, MWIDTH:half-word

4.png

图3. PWIDTH:half-word, MWIDTH:word

配置DMAMUX

在M2P与P2M模式下,必须配置DMAMUX,否则DMA不会响应外设DMA请求。DMAMUX的作用是为外设的DMA请求复用通道,即任何一个外设的DMA请求可以映射到DMA1/DMA2的任意通道,这大大增加了DMA通道分配的灵活性。

配置DMAMUX比较减到,只需调用专门提供的两个接口函数即可:

5.png


DMA配置解析

以下对DMA的配置接口及流程进行说明。

函数接口

6.png表2. 通道配置函数列表

数据流配置

  • 设置外设地址(CxPADDR寄存器)

数据传输的初始外设地址,在传输过程中不可被改变。

  • 设置存储器地址(CxMADDR寄存器)

数据传输的初始内存地址,在传输过程中不可被改变。

  • 配置数据传输量(CxDTCNT寄存器)

可编程的传输数据长度最大为65535。在传输过程中,该传输数据量的值会逐渐递减。

  • 数据流配置(CxCTRL寄存器)

包含通道优先级,数据传输的方向、宽度、地址增量模式、循环模式和中断方式。

优先级(CHPL)

分为4个等级,最高优先级、高优先级、中等优先级和低优先级。

若有2个流优先级设定相同,则较低编号的流有较高的优先权。举例,流1优先于流2。

数据传输方向(DTD)

分为存储器到外设(M2P),外设到存储器(P2M)或存储器到存储器(M2M)传输。

在存储器到存储器传输模式下不允许使用循环模式、双缓冲模式和直接模式。

数据传输宽度(PWIDTH/MWIDTH)

根据实际使用情景,可配置宽度为byte、halfword、word。

地址增量模式(PINCM/MINCM)

当通道配置设定为增量模式时,下一笔传输的地址将是前一笔传输地址加上传输宽度(PWIDTH/MWIDTH)。

  • 循环模式(LM)

当流配置设定为循环模式时,在最后一次传输后CxDTCNT寄存器的内容会恢复成初始值。

  • 使能DMAMUX(MUXSEL寄存器的TBL_SEL位)

在非存储器到存储器(M2M)模式下时,需要使能DMAMUX功能,才能启动数据流响应外设的DMA请求。

  • 写入外设ID号(MUXCxCTRL寄存器的REQSEL)

在非存储器到存储器(M2M)模式下时,需要将外设的DMA请求ID号写入,才能启动数据流响应外设的DMA请求。

  • 打开数据流(CxCTRL寄存器的CHEN位)

配置流程

  • 打开DMA时钟;

  • 调用通道复位函数复位数据流;

  • 调用结构体初始化函数初始化通道配置结构体;

  • 调用初始化函数初始化通道;

  • 调用DMAMUX使能函数以及ID号写入函数配置DMAMUX相关内容;

  • 调用通道使能函数开启通道。
    PS. 案例介绍可点击文末”阅读原文”查看

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 134

OTGFS介绍

AT32F435/437包含2个独立的OTGFS,编号OTGFS1和OTGFS2,本章将描述OTGFS支持的一些基本功能。OTGFS1和OTGFS2特性完全相同。

1.png

图1 OTGFS框图

OTGFS特性

OTGFS通用特性:

  • 支持USB2.0协议

  • 内置独立1280字节SRAM

  • 内置全速PHY

  • 内置上下拉电阻

  • SOF信号输出

  • 低功耗模式

  • 支持忽略VBUS状态

  • 支持ID检测以切换主机设备模式

  • 不支持HNP/SRP协议(PHY不支持,不能动态切换模式,只能根据ID状态切换模式)

  • AHB时钟大于30MHz

OTGFS设备模式特性:

  • 仅支持全速设备

  • 支持内部1.5KΩ上拉

  • 支持软件断开连接

  • 支持1个双向控制端点0

  • 支持7个IN端点,端点号1-7

  • 支持7个OUT端点,端点号1-7

  • 支持控制传输,大容量传输,中断传输,同步传输

  • 端点接收FIFO共享

  • 端点发送FIFO专用

  • 支持无晶振(crystal-less)

OTGFS主机模式特性:

  • 支持全速和低速

  • 支持内部15KΩ下拉

  • 支持16个主机通道

  • 支持控制传输,大容量传输,中断传输,同步传输

  • 通道接收FIFO共享

  • 通道发送FIFO专用

OTGFS全速PHY

OTGFS内置支持全速/低速的PHY,为主机和设备模式提供通信支持。

1、DP和DM内置上下拉电阻,由OTGFS根据模式自动使能上下拉电阻

当OTGFS处于设备模式时,DP 1.5KΩ上拉自动使能

当OTGFS处于主机模式时,DP和DM 15KΩ下拉自动使能

2、ID线内置上拉

ID线为高电平,默认为设备模式

ID线为低电平,为主机模式

3、设备模式下的VBUS检测(可忽略VBUS检测)

设备模式下,仅支持VBUS高低电平检测,当VBUS为高电平,OTGFS认为是有效电平,将使能DP的上拉电阻,让主机识别到设备插入。当VBUS为低电平,OTGFS认为是无效电平,此时不使能DP上拉,处于断开模式。

在设备模式下,如果想不检测VBUS,可通过设置寄存器OTGFS_GCCFG.VBUSIG=1来实现,此时可将检测VBUS的引脚释放出来给其它外设使用。

4、PHY的低功耗模式

OTGFS全速PHY支持低功耗模式,可以通过设置寄存器OTGFS_GCCFG.LP_MODE=1让PHY处于低功耗模式。

OTGFS GPIO引脚

435/437 OTGFS1/2使用GPIO引脚如下表所示:

表1 OTGFS1 GPIO引脚

2.png

表2 OTGFS2 GPIO引脚

3.png

注:USB_OE信号当USB在传输数据时,会翻转此信号

OTGFS 48MHz时钟

需要给OTGFS提供48MHz±0.25%的时钟来用于USB总线采样。48MHz时钟可以直接来源HICK,也可以通过PLLCLK分频得到。

4.png

图2 USB 48MHz时钟来源

注意:当OTGFS作为HOST时,必须使用外部晶振通过PLL分频作为USB 48MHz时钟。

USB时钟选择HICK

通过设置如下寄存器选择HICK:

1、CRM_MISC1. HICKDIV=1;

HICK是否分频,1表示不分频,0表示6分频

2、CRM_MISC1. HICK_TO_USB=1;

1 表示USB 48MHz时钟来源是HICK,0表示来源为PLL分频。

如果USB 48MHz时钟来源选择HICK时,在设备模式下需要开启ACC(HICK自动校准)功能,ACC功能利用USB产生的SOF信号来作为参考信号,实现对HICK时钟的采样和校准。详细功能可参考RM HICK自动时钟校准(ACC)章节。

注意:当OTGFS作为HOST时,必须使用外部晶振通过PLL分频作为USB 48MHz时钟,因为在HOST模式下不能通过ACC校准HICK。

使用HICK作为USB 48MHz时钟代码示例:

5.png

USB时钟选择PLLCK分频

USB 48MHz时钟默认是由PLL通过分频得到,435/437系统时钟最高可达到288Mhz,通过配置USB分频因子,达到为USB提供48MHz时钟。

通过配置已下寄存器进行PLL分频:

  • CRM_MISC2.USBDIV=USB分频因子

USB分频因子支持:1.5分频,不分频,2.5分频,2分频,3.5分频,3分频,4.5分频,4分频,5.5分频,5分频,6.5分频,6分频,7分频。

使用PLL分频作为USB 48MHz时钟代码示例:

6.png

OTGFS数据FIFO管理

OTGFS分配专用的1280 Byte SRAM作为数据FIFO,在主机或设备模式下,可通过软件配置寄存器给端点/通道分配FIFO。

注意:分配的FIFO总大小不要超过1280 Byte

设备模式下的FIFO分配

设备模式下所有端点的接收共享一个接收FIFO,每个端点的发送对应一个专有的发送FIFO。

7.png

图3 设备模式FIFO分配

1、RX_FIFO

所有端点的接收共享这一块FIFO,配置寄存器OTGFS_GRXFSIZ.RXFDEP,此寄存器值表示接收FIFO大小,注意单位为word(4Byte)。

2、TX_FIFO0

端点0的发送FIFO,配置寄存器OTGFS_DIEPTXF0,需要配置起始地址和FIFO大小。OTGFS_DIEPTXF0. INEPT0TXSTADDR=OTGFS_GRXFSIZ.RXFDEP

OTGFS_DIEPTXF0. INEPT0TXDEP=端点0发送FIFO大小

3、TX_FIFO1

端点1的发送FIFO,配置寄存器OTGFS_DIEPTXF1,需要配置起始地址和FIFO大小。

OTGFS_DIEPTXF1.INEPTXFSTADDR=OTGFS_GRXFSIZ.RXFDEP+端点0发送FIFO大小OTGFS_DIEPTXF1.INEPTXFDEP=端点1发送FIFO大小

...

注意:对应端点FIFO配置寄存器中FIFO大小值的单位都是word(4Byte)。

注意:发送端点的起始地址一般配置为前面所有端点已占用的FIFO大小,例程如端点2的发送FIFO起始地址为RX_FIFO大小+TX_FIFO0大小+TX_FIFO1大小。

主机模式下的FIFO分配

主机模式下,所有通道共享一个接收FIFO,通道发送FIFO分为非周期性发送FIFO和周期性发送FIFO。

非周期性和周期性通过传输类型来区分,每个主机通道寄存器都有配置传输类型,包含4种传输类型:控制传输(Control),同步传输(ISO),批量传输(Bulk),中断传输(Interrupt)

非周期性:控制传输(Control),批量传输(Bulk)

周期性传输:同步传输(ISO),中断传输(Interrupt)

8.png

图4 主机模式下FIFO分配

1、RX_FIFO

所有主机通道的接收共享这一块FIFO,配置寄存器OTGFS_GRXFSIZ.RXFDEP,此寄存器值表示接收FIFO大小,注意单位为word(4Byte)。

2、Non-periodic TxFIFO

非周期性的主机通道发送FIFO,配置寄存器OTGFS_GNPTXFSIZ,需要配置起始地址和FIFO大小。

OTGFS_GNPTXFSIZ. NPTXFSTADDR=OTGFS_GRXFSIZ.RXFDEP

OTGFS_GNPTXFSIZ. NPTXFDEP=非周期性发送FIFO大小

3、Periodic_TxFIFO

周期性的主机通道发送FIFO,配置寄存器OTGFS_HPTXFSIZ,需要配置起始地址和FIFO大小。

OTGFS_HPTXFSIZ.PTXFSTADDR=OTGFS_GRXFSIZ.RXFDEP+OTGFS_GNPTXFSIZ.NPTXFDEP

OTGFS_HPTXFSIZ. PTXFSIZE=周期性发送FIFO大小

注意:对应FIFO配置寄存器中FIFO大小值的单位都是word(4Byte)

OTGFS中断结构

9.png

图5 OTGFS中断结构

全局常用中断OTGFS_GINTSTS,此寄存器中包含了主机和设备的中断标志,部分中断标志只在设备模式或者主机模式下有效。

1、设备和主机模式都有效中断标志

OTGFS_GINTSTS. MODEMIS:模式不匹配(主机和设备都适用)

OTGFS_GINTSTS. SOF:SOF中断(主机和设备都适用)

OTGFS_GINTSTS. RXFLVL:接收FIFO非空(主机和设备都适用)

OTGFS_GINTSTS. CONIDSCHG:ID线状态变化(主机和设备都适用)

OTGFS_GINTSTS. WKUPINT:唤醒信号中断(主机和设备都适用)

2、仅主机模式下有效中断标志

OTGFS_GINTSTS. NPTXFEMP:非周期发送FIFO为空(主机适用)

OTGFS_GINTSTS. PRTINT:主机端口中断(主机适用)

OTGFS_GINTSTS. HCHINT:主机通道中断(主机适用)

OTGFS_GINTSTS. PTXFEMP:周期性发送FIFO为空(主机适用)

OTGFS_GINTSTS. DISCONINT:设备断开(主机适用)

3、仅设备模式下有效中断标志

OTGFS_GINTSTS. USBSUSP:设备挂起(设备适用)

OTGFS_GINTSTS. USBRST:USB复位(设备适用)

OTGFS_GINTSTS. ENUMDONE:枚举速度完成(设备适用)

OTGFS_GINTSTS. ISOOUTDROP:同步OUT包丢失(设备适用)

OTGFS_GINTSTS. IEPTINT:IN端点中断(设备适用)

OTGFS_GINTSTS. OEPTINT:OUT端点中断(设备适用)

OTGFS_GINTSTS. INCOMPISOIN:未完成的同步IN传输(设备适用)

10.png

图6 中断处理流程

OTGFS模式

通过配置如下寄存器让OTGFS处于OTG模式:

  • OTGFS_GUSBCFG.FDEVMODE=0(非强制设备模式)

  • OTGFS_GUSBCFG.FHSTMODE=0(非强制主机模式)

435/437 OTGFS可以通过检测ID线上的状态来确定当前处于设备模式还是主机模式。当ID状态为高电平时为设备模式,当ID状态为低电平时为主机模式。

寄存器GINTSTS.CURMOD=0,表示当前为设备模式

寄存器GINTSTS.CURMOD=1,表示当前为主机模式

另外可以根据GINTSTS. CONIDSCHG中断来检测当前ID线的状态是否有变化,当检测到ID线有变化时,根据当前的模式位(GINTSTS.CURMOD),应用程序选择初始化主机程序还是设备程序。

11.png

图7 OTG模式连接示意图

设备模式

435/437 OTGFS作为设备时仅支持全速设备,不支持低速和高速设备。支持8个IN端点(包括端点0),8个OUT端点(包括端点0)。

OTGFS强制作为设备

通过设定如下寄存器将OTGFS强制作为设备:

  • OTGFS_GUSBCFG.FDEVMODE=1(强制设备模式)

  • OTGFS_GUSBCFG.FHSTMODE=0(非强制主机模式)

12.png

图8 设备模式连接示意图

注意:绿色线表示可选连接,当使能VBUSIG信号时,VBUS引脚可作为普通I/O。

OTGFS设备常用功能

本节介绍OTGFS作为设备模式时的一些功能。

1、软件断开

可以通过配置设备模式下的寄存器,达到让设备断开与主机的连接。原理是通过控制DP的上拉使能来控制连接状态。

配置OTGFS_DCTL.SFTDISCON=1,DP上拉不使能,断开连接。

配置OTGFS_DCTL.SFTDISCON=0,DP上拉使能,开始连接。

2、Remote wakeup唤醒

当设备进入挂起状态之后,可以通过Remote wakeup功能唤醒主机。

唤醒流程:

  • 设置OTGFS_DCTL.RWKUPSIG=1;

  • 延迟1-15ms

  • 设置OTGFS_DCTL.RWKUPSIG=0;

3、忽略VBUS信号

在设备模式下,可以忽略VBUS信号,此模式可以释放VBUS引脚给其它外设使用。通过配置OTGFS_GCCFG.VBUSIG=1来忽略VBUS信号。

OTGFS设备端点配置

本节简单介绍OTGFS端点寄存器的配置。
IN端点配置

IN端点寄存器OTGFS_DIEPCTLx(x为0~7),端点寄存器存放端点的基本信息。

如下是一个IN端点的基本配置选项:

  • OTGFS_DIEPCTLx.MPS(最大包长度)

  • OTGFS_DIEPCTLx.EPTYPE(端点类型:控制传输,同步传输,块传输,中断传输)OTGFS_DIEPCTLxTXFNUM(发送FIFO编号,正常跟端点号相同)

  • OTGFS_DIEPCTLx.USBACEPT(激活端点)

  • OTGFS_DIEPCTLx.SNAK(设置端点为NAK状态)

  • OTGFS_DIEPCTLx.CNAK(清除端点NAK状态)

  • OTGFS_DIEPCTLx.STALL(设置端点为STALL状态)

  • OTGFS_DIEPCTLx.EPTENA(开始传输数据)

OUT端点配置

OUT端点寄存器OTGFS_DOEPCTLx(x为0~7),端点寄存器存放端点的基本信息。

如下是一个OUT端点的基本配置选项:

  • OTGFS_DOEPCTLx.MPS(最大包长度)

  • OTGFS_DOEPCTLx.EPTYPE(端点类型:控制传输,同步传输,块传输,中断传输)OTGFS_DOEPCTLx.USBACEPT(激活端点)

  • OTGFS_DOEPCTLx.SNAK(设置端点为NAK状态)

  • OTGFS_DOEPCTLx.CNAK(清除端点NAK状态)

  • OTGFS_DOEPCTLx.STALL(设置端点为STALL状态)

  • OTGFS_DOEPCTLx.EPTENA(开始传输数据)

主机模式

435/437 OTGFS作为主机模式时支持全速/低速设备,同时支持16个主机通道。

OTGFS强制作为主机

通过设定如下寄存器将OTGFS强制作为主机,此时DP/DM下拉自动使能:

  • OTGFS_GUSBCFG.FDEVMODE=0(非强制设备模式)

  • OTGFS_GUSBCFG.FHSTMODE=1(强制主机模式)

13.png

图9 主机模式连接示意图

OTGFS主机常用功能

1、支持全速和低速设备

通过OTGFS_HPRT.PRTSDP判断当前连接的设备是全速设备还是低速设备