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.
所有、
我有一个客户是位拆裂 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、那么他们应该能够做到这一点。
此致、
布兰登·费舍尔