This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PCM2906C:多个 USB 音频编解码器与软件的区别

Guru**** 2374090 points
Other Parts Discussed in Thread: PCM2906C
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1164799/pcm2906c-distinction-of-multiple-usb-audio-codecs-from-software

器件型号:PCM2906C
主题中讨论的其他器件: PCM2906

我们将基于 PCM2906C 音频编解码器的多个(多达4个)器件连接到一台 Linux 计算机。 正确检测器件、因为音频卡和传感器数据可通过 ALSA API 记录。

现在、我们需要一种将器件与软件内部区分开的方法。 从数据表中可以清楚地看出、PCM2906C 不支持序列号。 是否有任何其他方法可以通过软件唯一标识每个器件? 或者是否有方法修改已购买器件的供应商 ID 或产品 ID 等值? 在数据表中、供应商 ID 的值为0x08BB、产品 ID 的值为0x2906、可以修改。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对供应商/产品 ID 的更改需要更改无法用于成品的掩码。

    通过在数据表中看到可以修改供应商/产品 ID 的位置、您会看到什么?

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的回复。

    我刚刚看到、此信息不是来自 PCM2906C 数据表、而是来自 PCM2906数据表。 在表3的第19页中、可以看到供应商 ID 和产品 ID 是可修改的默认值。 也许可以说、如果买方愿意、他们可以在生产过程中进行更改。 但是、在我们的情况下、这不适用、因为我们购买了内置于测量器件中的编解码器。

    我们找到了使用 udev 规则按 USB 端口显示设备的变通办法,现在可以使用。 如果有任何方法、我们可以通过 ALSA 从器件中读取的任何信息、或者直接从 USB 器件中读取的信息能够区分这些信息、我仍然有兴趣。

    再次感谢、致以诚挚的问候

    Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    相关知识。

    让我问一下我们的 Linux 专家是否有这样的方法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Richard、

    在 Linux 中、我们可以通过查询 PCM 或声卡来区分设备。 您可以使用以下命令来获取:

    cat /proc/asound/pcm

    cat /proc/asound/cards

    ALSA API 可使用器件 ID 来选择要使用的器件。

    谢谢、此致

    陆凯文

    应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kevin:

    感谢你的答复。

    实际上、我正在寻找器件的唯一标识符、如序列号或类似标识符。 我们以前能够通过设备 ID 区分设备、但问题在于系统重新启动时未修复设备 ID。 有时在重新启动后会切换设备 ID、具体取决于哪个设备可能会更快地加电。

    我们设法通过更改 Linux 中的 udev 和 ALSA 规则来缓解此问题、以便在每个 USB 端口上添加特定的设备名称、就像它们在 USB 集线器上编号一样。 现在、当设备连接到 USB 集线器上的 USB 端口3时、将始终为其分配设备名称"sound_USB_3"

    再次非常感谢、祝您一周愉快

    最好

    Richard