当前位置:   article > 正文

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

usb phy芯片

目录

前沿

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 总结


前沿

前面对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电源。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/971448
推荐阅读
相关标签
  

闽ICP备14008679号