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.

[参考译文] MSPM0G3507:位拆裂 I2S - IOMUX 反转输出位

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1230956/mspm0g3507-bit-banging-i2s---iomux-invert-output-bit

器件型号:MSPM0G3507

所有、  

我有一个客户是位拆裂 I2S 总线。  他非常接近使它工作.  我很想看到他作为他人的原型成功。  他写道:

我已将 SPI 配置为16位的 TI 同步模式、并通过轮询 TX FIFO 为空来重新加载1个字。  可以通过中断进行 TX FIFO 更新、但现在不需要。

在 TX Fifo 1字负载时、我切换端口引脚以模拟 I2S LRCLOCK 功能、在示波器上、Ms 位时序会发生偏移但稳定、时钟是连续的。

问题在于、许多 I2S 器件需要一个正时钟沿、即 PICO 上的数据输出在上升时钟之前的设置下降沿发生变化、但 TI SYNC 模式在正/上升沿移动数据、这在许多设置/保持时间是一个竞态条件。

MSPM0L 器件显示 IOMUXnn.26是 I/O 的 INV 位、但这在 IOMUX 上的 MSPM0G3507 FRM 上没有显示。  G3507 FRM IOMUX 文本和图表提到 INV 位、但在 寄存器定义和.h 文件中的 FRM IOMUXnn.26中不存在。

如果我可以将该 SPICLK 驱动器反相、那么我可以通过简单地将连续的字偏移2ms/ls 位来使所有内容与 LRCLOCK 正确相位、这样就可以正常使用 I2S 函数。  借助32位移位器、偏斜需重新对齐连续的16位 I2S 数据字。

您能否确认 IOMUXnn 寄存器第26位是否用作 MSPM0G3507上的反相 I/O 控制、或者是否已从评估器件中删除该控制?

 很难想象 MSPM0G 器件芯片网络列表会将设计放入较慢的 MSPM0L 表弟器件中...

此致、  

布莱克

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

    您好、Blake、

    该反转位可用、并且存在于 MSPM0G 的 IOMUX 中。 但是、对于 SPI 等某些时序关键型路径、在 SPI 模式下、它在量产芯片中被禁用。 请参见早期样品功能差异文档(位于 MySecureSoftware 文件夹中)中的 IOMUX_ENH_01。 MSPM0G 上的 SPICLK 可以运行得快得多、因此时序限制更严格、这就是在该模式下禁用它的原因。 这应该在《生产参考手册》中进行澄清

    他们需要以多高的 SPI SCLK 速度运行? 我将在内部检查是否针对所有 SCLK 引脚或仅针对指定的高速引脚禁用该位。  

    此致、
    布兰登·费舍尔

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

    您好、Blake、

    对于该更新延迟、我们深表歉意。 我已经在末端进行了测试、当配置为 SPI 模式时、反版本位似乎在标准 IO 上仍然起作用。  

    如果他们不需要 足够快的 SPICLK 运行速度来获得高速 IO、那么他们应该能够做到这一点。  

    此致、
    布兰登·费舍尔