USBXpress™ 设备配置与编程指南

电子说

1.4w人已加入

描述

USBXpress™ 设备配置与编程指南

在电子设备开发中,USB 接口的应用极为广泛。Silicon Labs 提供了一系列 USBXpress 单芯片连接桥解决方案,支持 USB 到串行协议,以及用于人机接口设备(HID)类和 USB 音频应用的专用桥。本文将详细介绍如何使用 Simplicity Studio 提供的工具来配置这些设备的选项,以及如何进行生产编程和订购预编程部件。

文件下载:CP2108EK.pdf

1. 基础知识

1.1 USB 供应商 ID 和产品 ID

每个 USB 设备都需要一个唯一的供应商 ID(VID)、产品 ID(PID)和序列号组合,以避免冲突。PC 通过匹配设备的 VID/PID 来使用相应的驱动程序。VID 由 USB 实施者论坛(USB - IF)分配给供应商公司,拥有特定 VID 的公司可以拥有该 VID 下的所有可能的 PID。可以从 http://www.usb.org/developers/vendor 获取唯一的 VID,也可以使用 Silicon Labs 的默认 VID(0x10C4),并通过 http://www.silabs.com/RequestPID 为基于 CP210x/CP211x/CP2130 的产品请求唯一的 PID。定制 USB 字符串虽然是可选的,但强烈推荐,因为唯一的 VID/PID 组合可以防止驱动程序与其他 USB 驱动程序冲突。

1.2 USB 标志和认证测试

USB 是广泛使用的外设,USB 实施者论坛(USB - IF)为符合条件的 USB 产品引入了受商标保护的标志。要使用该标志,USB 产品需要符合 USB - IF 的标准。产品通过 USB - IF 的合规性和/或认证测试意味着该产品已通过测试符合规范。每种 USB 产品都需要进行特定测试才能列入集成商列表,这对 OEM 和消费者都很重要,因为经过 USB - IF 测试和认证的产品可以确保相互兼容。要获得使用 USB - IF 标志的许可,需要向 USB - IF 注册产品的 VID 和 PID,并将产品提交到 USB - IF 合规计划,详情可参考 http://www.usb.org/developers/compliance。产品认证后可以添加到 USB - IF 集成商列表,并在产品上使用“Certified USB”标志。

2. 基本设备定制

不同系列的 USBXpress 设备在配置上有不同的要求。

2.1 定制 CP210x 非 HID USB 设备

  • 请求唯一 PID:从 http://www.silabs.com/RequestPID 为新产品设计请求唯一的 PID,或从 usb.org 获取 VID/PID。
  • 下载驱动:从 http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx 下载适合操作系统的 VCP 驱动,该驱动需与 CP210x 设备的默认 VID 和 PID 匹配才能与设备通信。
  • 更改描述符:使用 Xpress Configurator 更改设备可编程内存中的描述符。
  • 选择驱动:如果需要 USBXpress 驱动,可从 http://www.silabs.com/usbxpress 下载,该驱动默认不匹配 CP210x 设备的默认 VID/PID,需要对设备或驱动(或两者)进行定制以匹配。
  • 更新驱动:使用 USB 驱动定制向导和 AN220SW 及 AN220 中的说明更新驱动以适应新的 PID 和其他更改的描述符。
  • Windows 认证:在 Windows 系统下,定制驱动有资格进行 WHQL 转售商提交认证,需在 WinQual 网站(https://sysdev.microsoft.com)注册获取账户,使用 Internet Explorer 浏览器,需要 Verisign ID 注册,注册后通知 Silicon Labs 支持团队添加为注册转售商,完成再认证过程。详细说明可参考 AN807。

CP210x 系列设备提供 USB 到 UART 的通信,需要在主机上安装驱动。Silicon Labs 提供了两种驱动:虚拟 COM 端口(VCP)驱动和 USBXpress 驱动,一次只能为一个设备关联一个驱动,驱动基于匹配的 VID/PID 与设备关联。

2.2 定制 CP211x HID USB 设备

  • 请求唯一 PID:从 http://www.silabs.com/RequestPID 为新设计请求唯一的 PID。
  • 更改描述符:使用 Xpress Configurator(或 CP21xx 设备定制软件用于 CP2114 设备)更改设备固件中的描述符。

CP211x 系列属于 HID 类设备,大多数操作系统可以使用通用的原生驱动自动识别,不需要额外安装驱动,但 PC 应用程序需要使用特定的 CP211x HID 规范与设备通信,相关规范可参考 AN433 和 AN496。

2.3 定制 CP2130 USB - to - SPI 设备

  • 请求唯一 PID:从 http://www.silabs.com/RequestPID 为新产品设计请求唯一的 PID,或从 http://www.usb.org/ 获取 VID/PID。
  • 下载驱动:从 http://www.silabs.com/CP2130EK 下载适合操作系统的 WinUSB 驱动,该驱动需与 CP2130 设备的默认 VID 和 PID 匹配才能与设备通信。
  • 更改描述符:使用 Xpress Configurator 更改设备固件中的描述符。
  • 修改驱动文件:修改 WinUSB 驱动的硬件安装文件(.inf)以适应新的 PID 和其他更改的描述符,定制驱动需确保完全正确,因为驱动认证后文件不能有任何更改,对 Windows 安装 .inf 文件的更改需要进行新的 Windows 硬件质量实验室(WHQL)测试。
  • Windows 认证:与 CP210x 设备类似,在 Windows 系统下进行 WHQL 转售商提交认证,详细说明可参考 AN807。

CP2130 系列设备提供 USB 到 SPI 的通信,通常可以使用通用的 USB 驱动,如 Microsoft 的 WinUSB 或开源的 libUSB 驱动,需要生成适当的驱动 INF 文件将 CP2130 与特定的 USB VID/PID 关联。

3. 设备定制软件

Silicon Labs 提供了两种工具来定制 USBXpress 设备:Simplicity Studio 中的 Xpress Configurator 和遗留的 CP21xx 设备定制软件。

3.1 Xpress Configurator

Xpress Configurator 通过 Simplicity Studio 支持所有主要操作系统,可对除 CP2114 外的所有 USBXpress 设备进行编程,未来版本将添加对 CP2114 的支持。可以配置设备的 USB 属性,如 Vendor ID / Product ID、设备字符串、发布版本、USB 电源模式等,大多数设备还有其他可配置选项,如调制解调器信号、特殊功能、GPIO、接口选项等。

工具会验证配置的所有更改,并在视图底部的 [Problems] 列表中提醒用户任何配置问题或潜在问题。用户开发出有效的配置后,可点击 [Program to Device] 将配置下载到设备。工具还会从设备读取配置以确保请求的值已正确编程,如果设备被锁定或为一次性可编程且已编程,请求的值可能无法编程到设备,此时存储在设备上与请求值不匹配的值将被高亮显示。

工具还包含每个可配置参数的数据表信息,点击参数旁边的小 [I] 按钮可查看。在设备编程和导入过程中,工具会在项目视图底部的 [Status] 窗格提供实时状态更新,状态消息的描述可在相应的编程 API 文档中找到。

配置完成后,工具可用于生成生产编程的输出配置,或向 Silicon Labs 请求预编程部件。保存项目时会生成一个配置文件,可与 Standalone Manufacturing Tools 一起用于设备的生产编程。点击 [Request Parts] 按钮并填写所需信息,然后点击 [Confirm and Send] 可订购预编程设备。

3.1.1 示例 Xpress Configurator 使用

以 CP2103 USB - to - UART 桥为例:

  • 连接设备:将板卡连接到 Simplicity Studio,启动器窗口会显示一组兼容的应用程序。
  • 创建项目:在 Simplicity Studio 中点击 [Xpress Configurator] 打开配置工具。
  • 设备配置:新项目通常分为 [Device Configuration] 和 [Port Configuration] 两个主要配置区域。在 [Device Configuration] 部分输入自定义的 [Product String] 和 [Serial String],可改变设备连接到主机时的显示方式。在 [Port Configuration: GPIO] 部分更改 GPIO.2 和 GPIO.3 的 [Reset Latch] 值为“Low”,可打开 CP2103 - EK 上的 LED DS2 和 DS3;配置 GPIO.0 和 GPIO.1 的 [Latch Control] 选项分别为 TX Toggle 和 RX Toggle,可使 CP2103 - EK 上的发送和接收 LED 在设备通过 UART 发送或接收数据时闪烁。
  • 编程设备:如果 [Problems] 列表中没有问题,点击 [Program To Device] 进行编程。
  • 测试配置:编程完成后,设备会自动验证请求的设置是否已应用,如果设备返回的设置与请求的不同,会显示错误信息。可通过 USB View 等程序确认 USB 属性,对于具有关联虚拟 COM 端口驱动的 USB - to - UART USBXpress 设备,可使用 Hyperterminal 等串行终端程序测试 UART 行为,对于其他设备,可使用其软件包中分发的示例应用程序进行测试。

3.1.2 常见问题排查

  • 设置编程失败:这通常是由于对一次性可编程设备上已编程过的字段进行编程,或设备已被锁定导致的。如果是这种情况,需要获取新设备来编程所需设置。
  • 编程后设备未找到:仅适用于 CP210x 设备。
  • 设备无响应:仅适用于一次性可编程设备,通常是由于设备的 VPP 引脚连接不正确导致的,需要检查 VPP 引脚是否根据设备数据手册正确连接,连接正确后可能需要重置设备。
  • 功能不支持:通常是由于尝试使用不同部件编号的配置对设备进行编程,或使用了未实现特定功能的旧版本部件导致的。需要确保用于配置设备的项目与设备的部件编号匹配,如果设备和项目匹配但仍出现错误,检查设备的版本,如果是旧版本,可忽略此错误。

3.2 CP21xx 设备定制软件

CP21xx 设备定制软件是一个 Windows 应用程序,主要用于 CP2114 系列设备。软件会自动识别连接到 PC 的设备,启动时会搜索 Windows 注册表中的 CP21xx 设备,并将找到的所有设备的完整路径信息插入“Select Device”下拉列表中,自动选择第一个设备。

该软件使用 Windows 主机 API 函数,可对连接设备的可编程区域中的描述符进行读写访问。也可以使用适合特定生产环境需求的 DLL 实现自定义应用程序。对于大订单,也可以在生产时在工厂设置描述符。

3.2.1 CP2114 设备定制

  • Set IDs 选项卡:可修改的参数包括 VID、PID、Power、Power Mode、Release Version、Flush Buffers、Manufacturer、Product Description 和 Serial Number。
  • Port Configuration 设置:点击“Port Configuration”选项卡可访问端口配置设置,点击值框中的数字可访问每个引脚配置的下拉菜单选项,更改值后会高亮显示,完成后点击“Program Device”按钮保存设置。CP2114 中的 GPIO 引脚设置可修改为输入、输出推挽或输出开漏,可从下拉菜单中选择 GPIO 引脚配置选项和替代功能。Suspend Value 设置允许在选定的引脚启用锁存,Suspend Mode 有类似的菜单,可在挂起模式下为不同引脚选择开漏或推挽。

3.2.2 CP2114 DAC 配置

点击 [Advanced] 选项卡并选择 [DAC Configuration CP2114] 可访问 DAC 配置实用程序,该应用程序允许将音频配置字符串发送到一次性可编程内存,CP2114 使用该音频字符串配置 DAC/CODEC。

4. 编程选项

4.1 独立制造工具

Xpress Configurator 生成的配置文件可与独立制造工具(SMT)命令行编程器一起使用来编程 USBXpress 设备。该文件可在 Simplicity Studio 中通过展开配置器项目在项目资源管理器中访问。每个系列的设备都有自己的制造工具,如 cp210xsmt 用于 CP210x 系列设备。

4.1.1 独立制造工具使用

独立制造工具从命令行使用,输入结构为:tool.exe option1 option1_argument option2 option2_argument…。工具的选项包括:

  • --help:输出帮助页面。
  • --reset:对所有连接的设备执行软复位,相当于 USB 断开/重新连接。
  • --device - count :指定连接的设备数量,编程过程如果发现设备数量不同或无法打开设备将不会启动,验证过程将不断重试直到可以验证指定数量的设备。
  • --serial - nums {X Y Z…}|GUID:用于指定要写入设备的序列号,只有提供此选项才会写入序列号。{X Y Z} 指定要编程到设备的序列号列表,提供的序列号数量必须与要编程的设备数量匹配,否则会报告错误;GUID 表示 SMT 将使用平台提供的 UUID 生成函数自动生成唯一的序列号写入连接的设备。
  • --set - and - verify - config config_file_name:使用配置文件中的配置对每个设备进行编程和验证,并打印编程的序列号列表。
  • --set - config config_file_name:使用配置文件中的配置对每个设备进行编程,并打印编程的序列号列表。
  • --verify - config config_file_name:使用配置文件中的配置验证每个设备,如果任何连接的设备验证失败,smt 将报告错误。注意 --serial - nums GUID 不能与该选项一起使用,需要传递编程过程中报告的序列号。

4.1.2 独立制造工具示例

给出了两个使用独立制造工具的示例,分别展示了使用 set - and - verify 选项和分步骤进行配置、复位和验证的过程。

4.2 内部编程

对于生产订单,Silicon Labs 为所有 USBXpress 设备提供编程服务,预编程设备可以直接安装在最终系统中,无需进行系统内编程。如果使用 Xpress Configurator,点击 [Request Parts] 按钮,填写表格并点击 [Confirm and Send],会提供后续操作说明,也可以联系当地销售代表了解更多信息。

在实际的电子设计中,你是否遇到过类似的 USB 设备配置和编程问题呢?你又是如何解决的呢?欢迎在评论区分享你的经验。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • 编程

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分