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.

[参考译文] EK-TM4C123GXL:从 SSI 模块创建 I2S

Guru**** 2465890 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/663725/ek-tm4c123gxl-creating-i2s-out-of-ssi-modules

器件型号:EK-TM4C123GXL
主题中讨论的其他器件: TM4C123

我正在尝试使用 EK-TM4C123GXL 上的两个 SSI 模块读取 I2S 数据。 我已将其配置为在2.8224MHz 的从模式下运行、以读取位时钟。 我想使用来自 I2S 主机的左/右时钟作为以44.1kHz 运行的片选(CS)、在这种情况下、下降沿会导致一个 SSI 模块读取24位数据、而上升沿会触发另一个。

我想一种解决方案是运行一个 SSI 模块将 L/R 时钟读作数据、而另一个模块在每次低/高和高/低转换后读取24位。

但是、如果可以使用 FSS 引脚或其他 GPIO 引脚触发和中断、这会导致 SSI 模块读取数据、我更愿意这样做。 问题是、仅仅将一个中断附加到 FSS 引脚上就无法读取速度高达44.1kHz 的转换。

是否有解决方案可让我读取速度高达44.1kHz 的转换、或者是否需要使用第二个选项?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    下面是一个 TM4C123应用手册、介绍了如何使用 SPI 来仿真 I2S。 请参阅以下链接。

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

    查尔斯

    感谢您的示例! 当 FSS 被拉至低电平时、SSI 模式似乎只支持读取、而我在示例中看不到它们在 FSS 被置为有效时能够读取的位置。 在其中一条 FSS 线路上是否需要物理而不是门、或者软件中是否有方法将其更改为在断言而不是取消断言时读取?

    此外、是否有 SSI 连续从机接收模式、只要 FSS 保持低电平、它就允许我读取24位作为两个12位数据? 我当前使用 的是具有80MHz/12位速率的 SSI_FRF_MOTO_MODE_2、并在 SSI_RXFF 上触发中断。

    我正在使用  

    while ((HWREG (SSI1_base + SSI_O_SR)& SSI_SR_RNE)== 4)  

    以读取 RX FIFO 缓冲区的所有内容。

    如果您能提供任何澄清、我们将不胜感激。

    谢谢、

    杰克逊

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

    感受您的烦恼-但确实存在 ARM MCU、其中包括"本机 I2S 端口"-以及此类"设计/实施的"器件-最常见的是-显著的性能下降-尝试"一起滑动"副本...

    我们是否从"化学家"中学到了?    无论他们 "按摩/攻击" 多  种"碱"金属多长时间/强度如何-很少会产生"黄金"...

    在某个时候、投入的"额外"时间/精力-导致(通常)性能下降-必须考虑(部分)...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jackson、
    FSS 是传统 Motorola (现在为 Freescale -> NXP -> Qualcomn -> Broadcom???)中的 CS (芯片选择)信号 低电平有效的 SPI 帧格式。 没有软件方法来反转极性。

    如果要使 CS 保持活动状态以读取整个24位数据、则需要配置8位帧大小并连续读取三个8位数据。 您需要使用 SSIAdvModeSet()将 QSSI 模块置于高级模式,然后在传输过程中使用 SSIAdvFrameHoldEnable() API 来保持 CS。