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

目录

前沿

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芯片

这里我们以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电源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/363034.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

期末成绩群发给家长

每当学期结束,老师们的邮箱和手机便会被成绩报告单填满。那么,如何高效地将成绩群发给家长呢? 一、邮件还是短信? 首先,选择一个合适的通讯方式是关键。邮件正式且便于附件,但短信更快捷。考虑到大多数家长…

项目经理如何成功接手做到一半的项目:从0到1的高效指南

最近看到很多帖子,吐槽自己一年到头来一直频繁被拉去救火、去接做到一半的项目。这种情况应该是很多项目经理都会遇见的,大多数情况是因为前任项目经理由于各种原因,如调岗、离职而留下的项目,但往往到大家手上的时候,…

Qt实现窗口吸附屏幕边缘 自动收缩

先看效果: N年前的QQ就可以吸附到屏幕边缘,聊天时候非常方便,不用点击状态栏图标即可呼出QQ界面 自己尝试做了一个糙版的屏幕吸附效果。 关键代码: void Widget::mouseMoveEvent(QMouseEvent *e) {int dx e->globalX() - l…

Java Chassis 3技术解密:与Spring Cloud的互操作

作者:刘宝 原文链接:Java Chassis 3技术解密:与Spring Cloud的互操作-云社区-华为云 Java Chassis 3一个很重要的设计原则:利用架构的韧性设计来解决兼容性问题。 比如通过引入微服务网关,来解决不同语言、不同框架、…

C#,洛布数(Lobb Number)的计算方法与源代码

1 洛布数(Lobb Number) 在组合数学中,洛布数(Lobb Number)L(m,n)计算nm开括号的排列方式,以形成一个有效的平衡括号序列的开始。 Lobb数由两个非负整数m和n参数化,其中n>m>0。…

计算机网络实验一

目录 实验一 使用PacketTracer组建简单局域网 1、实验目的 2、实验设备 (1)内容一(组建简单局域网): (2)内容二(使用交叉线直连两台机器): &#xff08…

基于SpringBoot+Vue学科竞赛管理系统

文章目录 基于SpringBootVue学科竞赛管理系统1系统概述1.3系统设计思想 2相关技术2.1 MYSQL数据库2.2 B/S结构2.3 Spring Boot框架简介2.4 Vue简介 3系统分析3.1可行性分析3.1.1技术可行性3.1.2经济可行性3.1.3操作可行性 3.2系统性能分析3.2.1 系统安全性3.2.2 数据完整性 3.4…

「数据结构」1.初识泛型

🎇个人主页:Ice_Sugar_7 🎇所属专栏:Java数据结构 🎇欢迎点赞收藏加关注哦! 初识泛型 🍉前言🍉包装类🍌装箱&拆箱 🍉泛型🍌擦除机制&#x1f…

拒绝单调,Focussend智能AI助阵邮件营销,让打开率大幅提升

在互联网时代,邮件营销成为了企业推广产品和服务的一把重要利器。但是,面对大量垃圾邮件和用户审美疲劳,如何让你的邮件脱颖而出,成为了每一个市场人的头疼问题。光靠无聊的标题和内容可不行,得有点新花样。 搜索&…

记一次某竞赛中的渗透测试(Windows Server 2003靶机漏洞)

靶机简介 Windows Server 2003是微软公司于2003年3月28日发布的服务器操作系统,它基于Windows XP/Windows NT 5.1进行开发,并在同年4月底上市。以下是关于Windows Server 2003的详细介绍: 系统名称与发布历程: 该产品最初被命名为…

linux vim 异常退出 异常处理 交换文件

交换文件 *.swp 格式 同时是隐藏的 如在vim一个文件, 在没有正常退出, 如直接断开连接 在次编辑这个文件 会出现下图的错误 解决方案: 直接删除这个交换文件即可 rm -fr .zen.txt.swp

经典左旋,指针面试题

今天给大家带来几道面试题! 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 我们可以先自己自行思考,下面是参考答案: 方法一: #define _CRT_SEC…

人工智能网络安全挑战赛(AIxCC):超亿元大奖等你来拿!

2023年底,DARPA开启了一项前所未有的挑战——人工智能网络安全挑战赛(AIxCC),旨在通过技术竞赛探索AI时代下网络安全的新格局。该赛事希望孕育出一种创新的网络安全通用人工智能(AGI)系统,该系统…

从0到1入门C++编程——06 类和对象之多态、文件操作

文章目录 多态1.多态基本概念2.多态案例——计算器3.纯虚函数和抽象类4.多态案例——制作饮品5.虚析构和纯虚析构6.多态案例——电脑组装 文件操作1.文本文件--写文件2.文本文件--读文件3.二进制文件--写文件4.二进制文件--读文件 多态 1.多态基本概念 多态是C面向对象的三大…

阿里云 DMS 执行sql变更

数据库开发-数据变更-无锁变更 选择数据库:比如要更新生产库,搜索生产库名字。 填入变更sql。

实现两栏布局和三栏布局的多种详细方法

目录 一、背景两栏布局三栏布局 二、两栏布局flex弹性布局 三、三栏布局两边使用 float,中间使用 margin两边使用 absolute,中间使用 margin两边使用 float 和负 margin使用 display: table 实现使用flex实现grid网格布局 参考文献 一、背景 在日常布局…

AI大模型专题:大模型赋能座舱,智能座舱新战场

今天分享的是AI大模型系列深度研究报告:《AI大模型专题:大模型赋能座舱,智能座舱新战场》。 (报告出品方:国泰君安证券) 报告共计:19页 大模型技术将给予智能座舱一次深度进化 拥抱大模型技术…

vue 打包下载多层zip文件

npm install jszip npm install file-saverimport JSZip from "jszip"; import FileSaver from "file-saver"; import {Message} from "view-design";/*** 下载文件 传数组* fileList* [* {* type:file,* name:17034953113790548.png,…

ubuntu22.04@laptop安装配置VNC服务端

ubuntu22.04laptop安装&配置VNC服务端 1. 源由2. 系统安装3. VNC安装3.1 系统更新3.2 lightdm安装3.3 x11vnc安装3.4 x11vnc配置3.5 x11vnc自启动3.6 x11vnc状态查询 4. 演示视频5. 附录 - “Failed to start x11vnc service.” 1. 源由 最近系统搞TensorFlow, OpenCV, Py…

免费的ppt网站分享

前言 相信大学生们深有体会,对于学校而言,好像是任何活动都需要我们做ppt,当你拿着自己辛苦做的ppt去展示现场的时候,你看到别人的ppt比你的还好,此时心情就是毙,当你知道人家不过是仅仅的1个小时不到就完成…