所有、
我有一个客户是位拆裂 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 表弟器件中...
此致、
布莱克