OTG -- ULPI接口芯片USB3318/USB3320讲解(二)

本文介绍了STM32F407OTGHS如何通过ULPI接口配合USB3318高速PHY芯片实现USB高速通信,详细解释了USB3318的引脚定义、与ULPI接口的时序以及STM32F407OTGHS的驱动过程,重点在于寄存器配置和原理图设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前沿

1 初识USB PHY芯片

2 ULPI接口与USB PHY芯片

3 USB3318简介

3.1 USB3318引脚定义

3.2 USB3318与ULPI接口时序

3.3 STM32F407 OTGHS如何驱动USB3318

3.4 USB3318原理图设计

4 总结


 视频教程:5.2-OTG简介--ULPI接口芯片简介_哔哩哔哩_bilibili

前沿

前面对STM32F407 OTG模块进行了简单的讲解,如果使用OTG_FS模块,那么直接使用芯片引出的GPIO脚,就能够实现USB的通信,但是如果想要使用高速USB,那么芯片内部是不支持的,需要通过ULPI接口外挂一个高速的PHY芯片,才能实现USB高速通信。

1 初识USB PHY芯片

我们知道,MCU只能识别0和1的数字信号,但是USB信号是差分信号,如何把差分信号转换为数字信号送入到MCU中呢,这里就需要一个电平转换芯片--USB PHY芯片(当然USB PHY芯片不仅仅实现普通的电平转换,也实现一些特定信号的解码和译码),通过USB PHY芯片,把差分信号转换为MCU能够识别的数字信号,常见的USB PHY芯片有很多,如:

  • CYPRESS公司的CY7C68003芯片
  • MICROCHIP公司的USB334X芯片
  • NXP公司的ISP1506A和ISP1512A芯片
  • SMSC公司的USB3300和USB3318/USB3320芯片
  • 国产芯片也有沁恒的CH132系列

目前市面上用得最多的是USB3300(VDDIO3.3V),如果使用FPGA,可能需要VDDIO支持不同的电压,那么就可以选择USB3320或者USB3318(VDDIO支持1.8V到3.3V)(目前USB3318退市了,替代产品为USB3320),这里我们以USB3318进行讲解(其它系列芯片类似)。

2 ULPI接口与USB PHY芯片

说到这里,当然有小伙伴会问,这么多款的芯片,是不是每款芯片我们都需要设计不同的驱动程序来运行,答案是否定的,因为这些芯片都遵循ULPI协议,可以理解ULPI协议是一个标准的协议,大家都遵循,那么实现驱动也就是一样的,就像外面很多的SPI FLASH芯片,都能兼容同一套程序一样。

STM32F407 OTGHS也遵循ULPI协议,所以我们只需要配置好寄存器,硬件就会自动的发送时序,来实现MCU对USB PHY芯片的控制,进而实现MCU内部的USB与外部USB进行通信。

3 USB3318简介

我们可以通过alldatasheet下载USB3318用户手册,建议下载Microphone的,讲解更加的全面。

打开手册,查看FEATURES,可知,它是支持高速USB和ULPI接口的OTG PHY。

3.1 USB3318引脚定义

首先查看方框图,可以大致了解USB3318整个系统的架构,我们这里只关注ULPI Interface和USBDP/DM接口部分(也就是图中画红框部分)。

ULPI Interface主要是使用ULPI的12条信号线与STM32F407 OTG HS模块进行通信,上一节对这个信号做了一个讲解,这里就不做讲解了

DP、DM是USB的差分信号线,主要接收USB的数据,ID线则是识别此设备是主机还是从机,VBUS则是供电引脚,它支持内部供电和外部供电两种选择。

其它的引脚主要是时钟和电源引脚,按照说明接线即可。

3.2 USB3318与ULPI接口时序

ULPI接口时序如下图所示,ULPI是同步时序,所以需要clock时钟,在发送方向上,dir为低表示数据为发送,数据在每个clock的上升沿发送,nxt为高表示数据已经被接收,stop为高表示停止数据的发送。接收方向相同。

3.3 STM32F407 OTGHS如何驱动USB3318

STM32F407 OTGHS通过ULPI接口实现对USB3318芯片的驱动及控制,它通过读写USB3318的寄存器实现此操作,这里以写寄存器进行简单的讲解。如下图所示:

可以看出,写寄存器分为2步,首先是TXD CMD,最后是Reg Data,TXD CMD如下图所示,这里为立即写,所以低6位需要查找寄存器地址。

比如我们想要对Function Control寄存器进行写操作,我们这里只能对0x04进行写操作,所以这里的地址需要填写10b(bit7:6)+0x04=0x84,然后填入需要写入该寄存器的值,比如我们这里想复位PHY,我们这里的Reg Data就需要填写0x61。

3.4 USB3318原理图设计

一般来说,每种芯片都会有推荐的电路设计,我们只需要按照官方推荐的设计,就能设计出一款能够使用的图纸,以下是USB Device模式下的电路设计图。

4 总结

理解导致这里,基本上对USB3318和ULPI接口有了一个初步的了解,具体ULPI协议是我们不需要关注的,这个是芯片设计人员关注的问题,我们只需要配置好寄存器,然后硬件自动的初始化好USB PHY芯片,我们操作寄存器,OTGHS模块就通过ULPI接口对USB PHY芯片进行数据的读取和状态的设置,最后我们只需要通过寄存器和RAM来查看USB的状态和USB的数据。

更多USB3318的细节请参考USB3318数据手册,比如下图所示的OTG Vbus 框图,可以看出,VBUS引脚其实是可以不用接电源的,如果VDD33接了电源,并且ChrgVbus开关闭合,USB PHY芯片就有VBUS电源。

USB-IF高速;,经认证符合通用串行总线规范修订版 2.0 接口在 8 位模式下与 ULPI 规范修订版 1.1 兼容 工业标准 UTMI+ 低引脚接口 (ULPI) 可将 54 UTMI+ 信号转换为标准的 12 引脚链路控制器接口 54.7mA 未配置电流(典型情况)— 适用于总线供电的应用 83uA 挂起电流(典型情况)— 适用于电池供电的应用 闭锁性能超过 150 mA(每 EIA/JESD 78),Class II ESD 防护水平达 ±8kV HBM(在不使用外部保护设备的情况下) 集成了各种保护措施,在每个第三方的测试设备中均可耐受 IEC61000-4-2 ESD 测试(±8kV 接触电压和 ±15kV 空气电压) 支持用于附带 LS 设备的 FS 集线器的 FS 前导码 (UTMI+ Level 3) 支持 HS SOF 和 LS keep-alive 脉冲 包括对可选的 On-The-Go (OTG) 协议的全面支持,在 On-The-Go 附录修订版 1.0a 规范中有详细说明 支持 OTG 主机协商协议 (HNP) 和会话请求协议 (SRP) 允许主机关闭 VBUS,以便在 OTG 应用中节省电池电量 通过内部比较器支持 VBUS 电平的 OTG 监视。包括对外部 VBUS 或故障监视器的支持。 低潜伏高速接收器(最高为 43 高速时钟)允许使用带 ULPI 包装器的潜伏 UTMI 链路 用于接口保护的 STP 上的集成下拉电阻,允许在使用低速链路(针对低功率情况对软件进行了配置)的情况下,可靠地启动 Link/PHY 内置的 1.8V 调节器允许在使用单个 3.3V 电源的情况下工作 对 ID、DP 和 DM 线路到 VBUS 或接地进行内部短路保护 集成的 24MHz 晶振支持水晶操作或 24MHz 外部时钟输入 用于 480MHz 高速 USB 操作的内部 PLL 工业运行温度:-40°C 到 +85°C 符合 RoHS 的 32 引脚无铅 QFN 封装(5 x 5 毫米, 高度为 0.90 毫米)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖葫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值