TI论坛
直播中

王银喜

7年用户 2387经验值
私信 关注
[问答]

请问cc3200 i2s怎么设置左对齐或者右对齐模式?


  • CC3200 手册 swru367中有提到i2s支持左对齐或者右对齐,但是在sdk提供的api中没有找到如何设置,请问哪位高人知道,请指点一下,谢谢

回帖(1)

笑尽往事

2024-10-21 18:04:38
CC3200 I2S支持左对齐和右对齐模式,但是在SDK中确实没有直接的API来设置。不过,你可以通过修改I2S寄存器来实现这个功能。以下是如何设置左对齐和右对齐模式的方法:

1. 首先,你需要找到I2S寄存器的地址。在CC3200中,I2S寄存器位于0x4008C000地址。

2. 接下来,你需要修改I2S的配置寄存器。配置寄存器的地址是0x4008C000 + 0x20(0x4008C020)。配置寄存器的位定义如下:

   - BIT[2:0]:I2S模式选择(0x0:I2S,0x1:左对齐,0x2:右对齐,0x3:DSP,0x4:PCM)
   - BIT[3]:I2S时钟极性(0:正常,1:翻转)
   - BIT[4]:I2S时钟相位(0:正常,1:翻转)
   - BIT[5]:I2S主/从模式(0:从模式,1:主模式)

3. 要设置左对齐模式,你需要将配置寄存器的BIT[2:0]设置为0x1。例如,你可以使用以下代码:

```c
volatile uint32_t *i2sConfig = (uint32_t *)0x4008C020;
*i2sConfig = (*i2sConfig & 0xFFFFFFF8) | 0x1; // 设置左对齐模式
```

4. 要设置右对齐模式,你需要将配置寄存器的BIT[2:0]设置为0x2。例如,你可以使用以下代码:

```c
volatile uint32_t *i2sConfig = (uint32_t *)0x4008C020;
*i2sConfig = (*i2sConfig & 0xFFFFFFF8) | 0x2; // 设置右对齐模式
```

通过以上步骤,你可以在CC3200上设置I2S的左对齐和右对齐模式。请注意,修改寄存器可能会影响其他I2S功能,因此在修改寄存器之前,请确保了解你的应用需求。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分