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.

[参考译文] TAC5212:TAC5212 与 SAMA754G

Guru**** 2540720 points
Other Parts Discussed in Thread: TAC5212

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1563685/tac5212-tac5212-with-sama754g

部件号:TAC5212


工具/软件:

你好

我将 TAC5212 与 SAMA7G54 MPU 相连。 我将使用 SPI 镜像配置和 TDM 进行音频输入/输出。 请参阅随附的图片。 我在这里有几个问题。  

1.) 您能检查一下我的 TAC5212 SCH 在电容和 SPI 通信方面是否正常吗?

2) 任何 CONFIG/TDM 线路上是否需要上拉或下拉

3.) 我正在使用您网页上的 PPC。 按照我的理解、PPC 会生成配置文件/设置、然后下载到 TAC5212 中。 在 Windows 上、这是通过 USB 和 Devkit 完成的。 如何在运行 Yocto Linux 的嵌入式系统中使用相同的配置文件。 我会在 windows 中从 PPC 获得配置文件,我会将文件传输到运行 SAMA7G54 的系统。 如何将此配置文件从 SAMA7G54 上传到 TAC5212。 注意我使用 SPI。

4.) 进入 Yocto Linux 后、就可以更新 TAC5212 的设置。 我主要想更新编解码器的过滤部分、而不是输入/输出行数等。

5.) 我看到您有 TAC5212 的驱动程序。 在论坛上,我看到 debian 支持...它是否适用于 Yocto Linux。 我知道 Yocto Linux 有 alsa 模块...但是 Yocto 是嵌入式系统、而不是 Ubuntu。 我只是想知道。

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

    您好、

    确保您的 SPI 连接到正确的引脚、它在原理图中并不是非常具体、下面提醒一下哪些引脚是:

    还有一个注意事项是只有 GPIO1 和 2、而不是 0、因此您的 GPIO 连接在标记中不清楚。 但除此之外、原理图看起来很好。 上拉 ADDR 会将器件置于 SPI 模式。 TDM 不需要上拉或下拉、并且 SPI 实际上也不需要上拉或下拉。 如果这是 SPI 总线上的唯一器件、则不需要任何上拉/下拉电阻。

    PPC 生成 I2C 脚本、这些脚本只是寄存器设置。 因此、您可以自己编写一个转换器脚本来处理这些 I2C 写入、并将其转换为 SPI 写入。 这取决于您如何使用 MCU 写入 SPI、因此我在这里无法给出超具体的建议、但我可以解释 PPC 寄存器写入的格式:

    “W a0 00 03“<-这表示写入地址为“a0",“,寄存、寄存器 0x00 且寄存器 0x00 的值为 0x03 的器件。 这将是页面更改寄存器、因此现在写入后、器件将写入第 3 页。

    “W a0 33 5c“<-写入寄存器 0x33 上的器件 a0、值 0x5c 为 01011100。

    可以通过寄存器写入来调整滤波。 我不确定驱动程序是否支持滤波器调整、即使您确实将驱动程序安装到 Yocto 系统上也是如此。 通常、驱动器用于连接到不同的输入或输出、通过寄存器写入调整音量、以及通过 ALSA 系统将 I2S/TDM 数据路由到器件。 我相信驱动程序可以在 Yocto 上运行、只需将其添加到内核中即可。 如果您能够自行控制 ASI 和寄存器写入、也可以在没有驱动程序的情况下使用芯片。

    如果您需要更多帮助、请告诉我。

    此致、
    Mir

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

    你(们)好

    据我所知、PICO 是指外设输入控制器输出...与 MOSI 类似、而 POCI 是外设输出和控制器、与 MISO 类似。 在我的设计中、它的连接方式与 Pico<=>MOSI,POCI<=>MISO 类似。

    关于 GPIO、SCH 电平端口标记为 GPIO1 和 GPIO2、但顶部 U10 上的引脚标签为 GPIO0 和 GPIO1。 希望这能清除它。

    我计划使用 2 个 TAC5212、其中 CLK、PICO、POCI 共享、而 CSZ 不共享。 您能否确认我是否仍需要或不需要在共享线路上使用上拉电阻器?

    配置的更多信息。 这一点现在更清楚了。 后续跟进您的 I2C 示例

    “W a0 00 03“

    在 SPI 模式下、这意味着我不需要“a0",“,因为、因为 CSZ 负责寻址预期的 TAC5212。 之后是 2 个 8 位字、其中“00"是“是寄存器地址、“03"是“是 要写入寄存器的数据。 这意味着我的主器件 (SAMA7G54) 必须能够  根据 7.5.1.2 SPI 控制接口通过 SPI 处理 16 位字...是否正确?

     

    关于过滤...也许我不够清楚。 我指的是数据表“可编程系数寄存器“中的第 8.2 节和 “SLAU902A - TAx5x12EVM-K 评估模块“中的第 3.3.2.6.1-3 节。 对我来说、这些看起来像是 TAC5212 的一些语音过滤和混合功能。 我只是问是否可以实时调整?

    谢谢你

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

    您好、

    您可以在 CSZ 线路上放置~4.7K-10k 的上拉电阻、以确保它们在未激活时保持高电平、但在共享线路上不需要任何电阻。  

    关于 SPI 数据 — 是的,您只需要地址和寄存器值,每个值为 8 位。 该地址实际上为 7 位、但最后一位是读取或写入位、它会替换 I2C 命令的“w"或“或“r"。“。 一次将为 16 位、可以选择更多位、因为您可以连续写入寄存器而不重新发送地址。

    关于滤波器、是的、您可以在器件运行时调整滤波器、但可能会收到砰砰声。我建议您在更改这些寄存器之前将器件置于睡眠模式或关闭任何输出。 我刚才的意思是这些滤波器寄存器没有在驱动器中实现、因此您需要自己写入寄存器。

    此致、
    Mir

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

    在上一篇文章中、您提到了 ASI  

    您能解释一下它是什么吗

    Mirza

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

    您好、

    对于我们的音频转换器、我们在器件和 MCU 之间发送两种类型的数字数据 — I2S 和 I2C。 “ASI"是“是音频串行 接口、包括 I2S 数据 (DIN/DOUT) 以及 CCLK、BCLK 和 WCLK 等必要的 I2S 时钟。 寄存器写入通过 I2C 或 SPI 完成。 因此、该驱动程序是 Linux 与音频编解码器连接的一种有点标准化的方式、其中包括用于配置器件的 I2C/SPI 写入以及控制接收/发送音频数据的 I2S 时钟和时序。 我认为您应该尝试使用驱动程序、但您可能需要更改驱动程序、以便在滤波器寄存器写入时包含默认设置、或者在系统中初始化器件后发送 I2C/SPI 命令。  

    此致、
    Mir

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

    你好

    感谢您发送编修。

    我是否可以假设 I2S 和 TDM 是相同的、并且两者都受驱动器支持

    Mirza

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

    尊敬的 Mirza:

    I2S 和 TDM 是相似的、通常是 I2S 是两通道、TDM 可以有更多或更少的通道、它们在 WCLK 与 BCLK 对齐的方式和 WCLK 的占空比上有所不同。 驱动程序应该支持这两种模式、您需要在 DTS 文件中指定、如下所示:  

    			simple-audio-card,format = "i2s";
     

    您可以访问驱动程序“doc"文件夹“文件夹中的示例 dts 配置: https://git.ti.com/cgit/lpaa-android-drivers/tac5x1x-linux-driver/tree/doc

    此致、
    Mir

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

    你(们)好  

    正如我在数据表中所理解的、TAC5212 同时支持 I2S 和 tdm。 我的设备已连接、以便我使用 MPU 的 TDM 端口。

    您发送的链接是 TAC5212 的官方 TI 驱动程序吗?

    按照您的建议跟进 DTS 应该是什么样的  

    simple-audio-card,format = "tdm";


    这是正确的吗?

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

    您好、

    实际上“tdm"不“不是作为可能的格式之一存在、我认为最接近的是“dsp_a"或“或只是“I2S_",“,但、但在 dts 文件的 CPU 特定部分中添加了一些 dai-tdm-slo-num 和时隙宽度。

    以下是简单的声卡文档: https://www.kernel.org/doc/Documentation/devicetree/bindings/sound/simple-card.txt

    这是另一篇论坛帖子、其中包含有关 TDM 和音频设置的 DTS 文件的一些有用信息: https://www.marcusfolkesson.se/blog/audio-and-embedded-linux/

    此外、是的、我发送的链接是 TAC5212 驱动程序、它尚未包含在 Linux 内核中、因此您可以通过链接访问它: https://git.ti.com/cgit/lpaa-android-drivers/tac5x1x-linux-driver/tree/ 、.c 和.h 文件位于 src 中。

    此致、
    Mir