ZHCAEY8 January   2025 AM2612

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 USB 的实际应用
    2. 1.2 本文档中使用的首字母缩写词
  5. 2AM261x USB 产品
    1. 2.1 AM261x USB 硬件
    2. 2.2 AM261x USB 软件
      1. 2.2.1 软件架构
      2. 2.2.2 AM261x USB 应用示例
      3. 2.2.3 USB DFU 引导加载程序
  6. 3USB 用例和应用
  7. 4参考资料

AM261x USB 软件

强大的驱动程序库提供了微控制器与 USB 外设之间的无缝交互,简化了开发过程。USB 有时被视为一种相当复杂的协议,而 TinyUSB 则让 USB 变得简单易用。TinyUSB 栈是一个功能非常丰富的开源 USB 栈,具有线程安全和内存安全特性,并且不进行动态运行时内存分配。借助 TinyUSB 栈,开发人员可以使用 TinyUSB 栈中提供的 USB 类轻松创建应用。TinyUSB 栈的源代码中已经内置了一些器件和主机模式的示例。例如,该栈包含 HID 主机控制器的示例,其可以轻松从栈中移植出来并内置在 MCU_PLUS_SDK 中。为了支持 RNDIS 等采用 TCP/IP 协议的类,TinyUSB 栈也可以配置为与 LwIP 栈一起使用。

低电平 USB 驱动程序可分为两部分:一部分是片上芯片 (SoC) 移植层,其包含 AM261x 上端口的特定信息;另一部分是实际的 USB 器件核心驱动程序,其实现了完整的 USB 功能。应用开发人员可以直接使用驱动程序而无需中间件栈(TinyUSB 栈)的参与,并在其上编写应用;也可以使用中间件栈,这将大量简化开发过程。

 AM261x USB 软件方框图图 2-2 AM261x USB 软件方框图

TinyUSB 栈支持以下类:音频、视频、Bluetooth、CDC、DFU、HID、MIDI、MSC、网络、USBTMC、供应商等,但并非所有这些类都能在 AM261x 上运行(例如,由于 AM261x 上没有 Bluetooth 硬件,因此无法启用 Bluetooth® 类)。要启用 SDK 开箱即用后不支持的新类,开发人员只需:

  1. 创建一个 tusb_config.h 文件,描述端点的大小、类、Tx 和 Rx 缓冲区的大小等。
  2. 让器件驱动程序支持所有必需的端点和传输回调函数。
  3. 使用所需的 USB 类构建应用。
  4. 重新构建 TinyUSB 栈并将其链接到应用。
  5. 重新构建应用。

通过上述步骤,用户可以快速启用非标准 SDK 产品的不同 USB 类。