首页 > 产品 > 微控制器 (MCU) 和处理器 > 使用 Linux 的 Sitara™ 设备中的 USB 系统设计 >

基于 Arm 的处理器

最新课程

热门课程

1 设计 USB 硬件(数字部分)

USB 是一种流行的 接口,几乎无处不在。 USB 接口是为了实现 即插即用的易用性。 为了实现这一目标, USB 采用了复杂的架构 和协议,这使 USB 设计变得 不同寻常且很难 对设计错误进行调试。 本培训系列重点 介绍了使用 Linux 的 Sitara 器件 USB 系统设计。 本培训系列 具有多个模块, 从数字角度介绍了 USB 硬件设计, 解释了如何配置 Linux 内核和面向 不同 USB 用例的设备树, 如何使用 Sysfs 来检查 Linux 中的 USB 子系统, 如何在主机模式和 设备模式下使用 USB。 最后但也同样 重要的是,如何 在 USB 未实现 预期功能时进行调试。 首先,我们重点从 数字角度来探讨一下 USB 硬件设计。 我们将概括介绍 Sitara 器件中的 USB 子系统, 以及各种特性中 所提供的 USB 功能, 然后介绍 Sitara 器件 EVM 中的 USB 硬件参考设计 以及常见的 USB 硬件 设计错误。 目前,所有的 Sitara 器件均提供 两个支持 DRD 的 USB 模块。 什么是 DRD? DRD 是指双重角色器件。 这意味着 USB 模块 具有两个工作角色, 主机或设备,具体取决于 所连接的 USB 电缆的类型。 所以,每个 USB 模块 都支持三种不同的配置, 仅主机、仅设备 以及 DRD 模式。 每个 USB 模块都 具有集成的 PHY, 因此,不需要 外部 USB PHY。 每个 USB 模块 都具有 31 个端点, 包括 15 个 TX、15 个 RX 和 1 个双向端点 0。 这个表格显示了 Sitara 器件中 USB 模块的更多 详细信息。 从根本上来说, 有两种不同的 USB IP。 AM335x 使用的是 MUSB。 其他器件使用的是 DWC3。 在主机模式下, 所有这些 USB 控制器 都支持低速、全速和高速, 而且 AM57x 上的第一个 USB 端口还支持超速。 在器件模式下, 所有这些控制器 都支持全速和高速。 当然,AM57x 上的 第一个 USB 控制器 还支持超速。 注意,AM57x 上的 第二个 USB 模块 不支持超速。 所有这些 Sitara 器件中的 ROM 都支持从 USB 接口启动。 这个表格显示了 ROM 中支持的 不同的 USB 启动模式。 AM335x ROM 使用 USB0 接口支持 USB 外设启动, 这表示该器件是 USB 主机上的 USB 以太网器件。 AM437x ROM 也 使用 USB0 接口支持 USB 外设启动, 这表示该器件 也作为 USB 以太网器件。 它还使用 USB1 接口 支持 USB 内存启动, 可从[听不清]等 海量存储设备中 读取启动映像。 注意 ROM 在该内存 启动模式下不支持 USB 集线器。 AM57x ROM 使用 专有协议在 USB1 接口上 支持 USB 外设启动, 该接口是 AM57x 上的 第一个 USB 模块, 这在 TRM 中有说明。 现在,我们来看一下 EVM 上的 USB 参考设计。 这个表格显示了 AM335x EVM 上的 USB 配置。 第二个接口, 即 USB1, 在所有 AM335x EVM 上 都被配置为仅主机模式。 GP EVM 上的 USB0 接口配置为 DRD 模式,即处于 主机模式或设备模式, 具体取决于所连 USB 电缆的类型。 入门套件和 BeagleBoneBlack 上的 USB0 接口 处于仅设备模式。 所有 AM437x EVM 上的 USB 模块 都采用相同的配置方式, 即 USB0 处于 DRD 模式, USB1 处于仅主机模式。 所有 AM57x EVM 上的 USB1 模块都是仅主机模式, 而 USB2 则有所不同, 在 GP EVM 上为仅设备模式, 在 IDK EVM 上 却是 DRD 模式。 请注意,GP EVM 的 USB1 模块具有 USB 集线器,此外 AM571x IDK USB1 最高仅支持 高速,而非超速。 这个表格列出了 USB 模块的所有引脚。 除了这些针对 数据线的引脚, DRVVBUS 引脚用于 主机模式或 DRD 模式, 以驱动 USB 电源开关。 VBUS 引脚用于设备 模式,以检测 VBUS 电源。 注意,AM335x 在主机模式时 也需要此引脚。 ID 引脚在控制器 处于 DRD 模式时 控制运行模式。 该引脚接地时, 控制器进入主机模式。 该引脚悬空时, 控制器进入设备模式。 请注意,AM57x 没有 专门的 USB VBUS 和 USB ID 引脚。 PMIC 和 GPIO 引脚必须用于此目的。 下一张幻灯片 会提供更多细节。 这张屏幕截图显示 AM335x 和 AM47x 的 仅设备模式 USB 设计。 该图来自 BeagleBoneBlack A4 版 原理图。 DPDM 和 VBUS 引脚会直接连接 至插座。 这张屏幕截图显示了 AM335x 和 AM47x 的 仅主机模式 USB 设计。 该图也来自 BeagleBoneBlack A4 版 原理图。 DPDM 和 VBUS 引脚会直接连接 至相应插座。 ID 引脚则直接接地。 DRVVBUS 引脚 进入 USB 电源开关, 而电源开关的输出 则会流经 VBUS 线路。 这张屏幕截图显示了 AM335x 和 AM47x 的 DRD 模式 USB 设计。 该图来自 AM335x GP EVM 1.2a 版原理图。 它与仅主机 模式的设计非常类似。 唯一的区别 在于 ID 引脚, 该设计中的 ID 引脚不是直接接地, 而是直接 连接至 USB 插座。 到现在为止,我们 已学习了 AM335x 和 AM47x 三种运行模式的 USB 参考设计,这三种 模式分别为仅设备、 仅主机和 DRD 模式。 现在,我们来看 AM57x 的设计。 如前所述, AM57x USB 模块 没有专用的 USB VBUS 和 ID 引脚, 因此必要时 应使用 GPIO 引脚。 这张屏幕截图显示了 AM572x GP EVM A2.6 版上的 仅设备模式设计。 USB 数据线会 直接连接至插座, 但 VBUS 会进入 PMIC, 然后固定至 AM572x GPIO 引脚。 请根据箭头了解该设计 是如何将 VBUS 馈送至 AM572x 器件的。 这张屏幕截图显示了 AM57x 的仅主机模式 USB 设计。 该图来自 AM572x IDK EVM 1.3B 版。 与 AM335x 上的设计类似, 它的 USB 数据线也是直接 连接至插座, 而 DRVVBUS 引脚 则进入电源 开关的输入端。 区别是此设计 不需要 ID 引脚。 Linux 驱动程序知道 如何在仅主机模式下 运行该 USB 控制器。 这张屏幕截图显示了 AM57x 的 DRD 模式 USB 设计。 该图来自 AM572x IDK EVM 1.3B 版。 该设计与 AM57x 的仅主机模式设计 类似。 唯一区别在于 插座的 ID 引脚 直接连接至 GPIO, 因此 DRD 模式要求 AM57x 提供 两个 GPIO 引脚。 此处提供到 Sitara 器件的原理图检查 清单的链接。 请仔细查阅, 以避免常见的错误。 此外,底部的 链接是相应的 布局指南文档。 在设计 USB 模块时, 请将其用作一个参考。 这里是 USB 硬件 设计中常见错误的 集合。 我对此不再逐个讲解。 这些错误简单, 有时可以忽略。 只要您认真阅读 TRM 并理解 Sitara EVM 上的参考设计, 便可以避免这些错误, 但我想稍微解释 一下最后一个错误。 该错误还与软件有关。 每个电路板都使用 主振荡器,而后者的频率 则是在 U-Boot 中进行配置。 通常,Sitara EVM 使用 24MHz 的晶体, 因此,U-Boot 也 配置为适用于 24MHz。 有时,客户使用 其他频率的晶体, 但忘记了对 U-Boot 进行相应的修改。 以上就是本视频的全部内容。 如果您有任何问题, 请将其发布在 TI E2E 论坛上。 谢谢观看。

USB 是一种流行的 接口,几乎无处不在。

USB 接口是为了实现 即插即用的易用性。

为了实现这一目标, USB 采用了复杂的架构

和协议,这使 USB 设计变得

不同寻常且很难 对设计错误进行调试。

本培训系列重点 介绍了使用 Linux 的

Sitara 器件 USB 系统设计。

本培训系列 具有多个模块,

从数字角度介绍了

USB 硬件设计,

解释了如何配置 Linux 内核和面向

不同 USB 用例的设备树,

如何使用 Sysfs 来检查 Linux 中的 USB 子系统,

如何在主机模式和 设备模式下使用 USB。

最后但也同样 重要的是,如何

在 USB 未实现 预期功能时进行调试。

首先,我们重点从 数字角度来探讨一下

USB 硬件设计。

我们将概括介绍 Sitara 器件中的

USB 子系统, 以及各种特性中

所提供的 USB 功能,

然后介绍 Sitara 器件 EVM 中的

USB 硬件参考设计 以及常见的 USB 硬件

设计错误。

目前,所有的 Sitara 器件均提供

两个支持 DRD 的 USB 模块。

什么是 DRD?

DRD 是指双重角色器件。

这意味着 USB 模块 具有两个工作角色,

主机或设备,具体取决于 所连接的 USB 电缆的类型。

所以,每个 USB 模块 都支持三种不同的配置,

仅主机、仅设备 以及 DRD 模式。

每个 USB 模块都 具有集成的 PHY,

因此,不需要 外部 USB PHY。

每个 USB 模块 都具有 31 个端点,

包括 15 个 TX、15 个 RX 和 1 个双向端点 0。

这个表格显示了 Sitara 器件中 USB 模块的更多

详细信息。

从根本上来说, 有两种不同的 USB IP。

AM335x 使用的是 MUSB。

其他器件使用的是 DWC3。

在主机模式下, 所有这些 USB 控制器

都支持低速、全速和高速, 而且 AM57x 上的第一个

USB 端口还支持超速。

在器件模式下, 所有这些控制器

都支持全速和高速。

当然,AM57x 上的 第一个 USB 控制器

还支持超速。

注意,AM57x 上的 第二个 USB 模块

不支持超速。

所有这些 Sitara 器件中的 ROM

都支持从 USB 接口启动。

这个表格显示了 ROM 中支持的

不同的 USB 启动模式。

AM335x ROM 使用 USB0 接口支持

USB 外设启动, 这表示该器件是

USB 主机上的 USB 以太网器件。

AM437x ROM 也 使用 USB0 接口支持

USB 外设启动, 这表示该器件

也作为 USB 以太网器件。

它还使用 USB1 接口 支持 USB 内存启动,

可从[听不清]等 海量存储设备中

读取启动映像。

注意 ROM 在该内存 启动模式下不支持 USB

集线器。

AM57x ROM 使用 专有协议在 USB1 接口上

支持 USB 外设启动, 该接口是 AM57x 上的

第一个 USB 模块, 这在 TRM 中有说明。

现在,我们来看一下 EVM 上的 USB 参考设计。

这个表格显示了 AM335x EVM 上的

USB 配置。

第二个接口, 即 USB1,

在所有 AM335x EVM 上 都被配置为仅主机模式。

GP EVM 上的 USB0 接口配置为

DRD 模式,即处于 主机模式或设备模式,

具体取决于所连 USB 电缆的类型。

入门套件和 BeagleBoneBlack

上的 USB0 接口 处于仅设备模式。

所有 AM437x EVM 上的 USB 模块

都采用相同的配置方式, 即 USB0 处于 DRD 模式,

USB1 处于仅主机模式。

所有 AM57x EVM 上的 USB1 模块都是仅主机模式,

而 USB2 则有所不同, 在 GP EVM 上为仅设备模式,

在 IDK EVM 上 却是 DRD 模式。

请注意,GP EVM 的 USB1 模块具有

USB 集线器,此外 AM571x IDK USB1

最高仅支持 高速,而非超速。

这个表格列出了 USB 模块的所有引脚。

除了这些针对 数据线的引脚,

DRVVBUS 引脚用于 主机模式或 DRD 模式,

以驱动 USB 电源开关。

VBUS 引脚用于设备 模式,以检测 VBUS 电源。

注意,AM335x 在主机模式时

也需要此引脚。

ID 引脚在控制器 处于 DRD 模式时

控制运行模式。

该引脚接地时, 控制器进入主机模式。

该引脚悬空时, 控制器进入设备模式。

请注意,AM57x 没有 专门的 USB VBUS 和

USB ID 引脚。

PMIC 和 GPIO 引脚必须用于此目的。

下一张幻灯片 会提供更多细节。

这张屏幕截图显示 AM335x 和 AM47x 的

仅设备模式 USB 设计。

该图来自 BeagleBoneBlack A4 版

原理图。

DPDM 和 VBUS 引脚会直接连接

至插座。

这张屏幕截图显示了 AM335x 和 AM47x 的

仅主机模式 USB 设计。

该图也来自 BeagleBoneBlack A4 版

原理图。

DPDM 和 VBUS 引脚会直接连接

至相应插座。

ID 引脚则直接接地。

DRVVBUS 引脚 进入 USB 电源开关,

而电源开关的输出 则会流经 VBUS 线路。

这张屏幕截图显示了 AM335x 和 AM47x 的

DRD 模式 USB 设计。

该图来自 AM335x GP EVM 1.2a 版原理图。

它与仅主机 模式的设计非常类似。

唯一的区别 在于 ID 引脚,

该设计中的 ID 引脚不是直接接地,

而是直接 连接至 USB 插座。

到现在为止,我们 已学习了 AM335x 和

AM47x 三种运行模式的 USB 参考设计,这三种

模式分别为仅设备、 仅主机和 DRD 模式。

现在,我们来看 AM57x 的设计。

如前所述, AM57x USB 模块

没有专用的 USB VBUS 和 ID 引脚,

因此必要时 应使用 GPIO 引脚。

这张屏幕截图显示了 AM572x GP EVM A2.6 版上的

仅设备模式设计。

USB 数据线会 直接连接至插座,

但 VBUS 会进入 PMIC, 然后固定至 AM572x GPIO 引脚。

请根据箭头了解该设计 是如何将 VBUS 馈送至

AM572x 器件的。

这张屏幕截图显示了 AM57x 的仅主机模式

USB 设计。

该图来自 AM572x IDK EVM 1.3B 版。

与 AM335x 上的设计类似, 它的 USB 数据线也是直接

连接至插座, 而 DRVVBUS 引脚

则进入电源 开关的输入端。

区别是此设计

不需要 ID 引脚。

Linux 驱动程序知道 如何在仅主机模式下

运行该 USB 控制器。

这张屏幕截图显示了 AM57x 的 DRD 模式 USB 设计。

该图来自 AM572x IDK EVM 1.3B 版。

该设计与 AM57x 的仅主机模式设计

类似。

唯一区别在于 插座的 ID 引脚

直接连接至 GPIO, 因此 DRD 模式要求

AM57x 提供 两个 GPIO 引脚。

此处提供到 Sitara 器件的原理图检查

清单的链接。

请仔细查阅, 以避免常见的错误。

此外,底部的 链接是相应的

布局指南文档。

在设计 USB 模块时, 请将其用作一个参考。

这里是 USB 硬件 设计中常见错误的

集合。

我对此不再逐个讲解。

这些错误简单, 有时可以忽略。

只要您认真阅读 TRM 并理解 Sitara

EVM 上的参考设计, 便可以避免这些错误,

但我想稍微解释 一下最后一个错误。

该错误还与软件有关。

每个电路板都使用 主振荡器,而后者的频率

则是在 U-Boot 中进行配置。

通常,Sitara EVM 使用 24MHz 的晶体,

因此,U-Boot 也 配置为适用于 24MHz。

有时,客户使用 其他频率的晶体,

但忘记了对 U-Boot 进行相应的修改。

以上就是本视频的全部内容。

如果您有任何问题, 请将其发布在

TI E2E 论坛上。

谢谢观看。

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

1 设计 USB 硬件(数字部分)

所属课程:使用 Linux 的 Sitara™ 设备中的 USB 系统设计 发布时间:2022.04.12 视频集数:7 本节视频时长:00:11:17

本培训概述了 Sitara 嵌入式处理器(AM335x、AM437x 和 AM57x)中的 USB 子系统。它还介绍了仅以数字为重点的 USB 硬件设计。包括参考设计、硬件设计清单和常见的设计错误。

TI培训小程序