是不是还有其他地方的代码也需要同步更新呢
T5 3.12.25 i2s使用问题
-
heixia.wang@tuya.com
- Posts: 27
Re: T5 3.12.25 i2s使用问题
实际有数据发出去吗?这个错误说明dma完成中断是触发的
-
heixia.wang@tuya.com
- Posts: 27
Re: T5 3.12.25 i2s使用问题
这个是我们现在在用的i2s驱动代码,你看看有没有差异,版本之间修改的部分就是tkl_i2s.c和这几个驱动文件
- Attachments
-
- i2s_zip.zip
- (8.92 KiB) Downloaded 4 times
-
heixia.wang@tuya.com
- Posts: 27
Re: T5 3.12.25 i2s使用问题
逻辑分析仪数据对的上吗?你的i2s接收和发送的配置是否一致?
Re: T5 3.12.25 i2s使用问题
你们用的是12.25的sdk吗,还是有更新的sdk,我这边更新一下
-
heixia.wang@tuya.com
- Posts: 27
Re: T5 3.12.25 i2s使用问题
delay更换为bk_delay,我们当前用的是smp版本,sdk变动非常大,不建议直接替换
Re: T5 3.12.25 i2s使用问题
我这边测试,就算只发送一次,他还是一直保持这个波形,而不是过一会变低电平,这应该不正常吧
目前发送这边,代码如下:
Code: Select all
static void __test_media_i2s_play(void *arg)
{
TUYA_I2S_BASE_CFG_T i2s_cfg;
int ret = 0;
i2s_cfg.mode = TUYA_I2S_MODE_MASTER | TUYA_I2S_MODE_TX;
i2s_cfg.communication_format = I2S_COMM_FORMAT_STAND_I2S;
i2s_cfg.channel_format = TUYA_I2S_CHANNEL_FMT_RIGHT_LEFT;
i2s_cfg.bits_per_sample = TUYA_I2S_BITS_PER_SAMPLE_16BIT;
i2s_cfg.mclk = 0;
i2s_cfg.sample_rate = 4;
i2s_cfg.i2s_dma_flags = 1;
ret = tkl_i2s_init(SEND_I2S_NUM, &i2s_cfg);
if(OPRT_OK != ret) {
bk_printf("i2s_init fail %d\r\n", __LINE__);
return;
}
bk_printf("*********************i2s_init SEND_I2S_NUM sucess %d\r\n", __LINE__);
{
ret = tkl_i2s_send(SEND_I2S_NUM, PCM_SPK16000, TEST_AUDIO_DATA_LEN_PER_SECOND);
if( ret < 0) {
bk_printf("*********************SEND_I2S_NUM fail ret = %d %d\r\n",ret, __LINE__);
return;
}
bk_printf("*********************SEND_I2S_NUM continue %d\r\n", __LINE__);
}
}
接收端的功放MAX98357A,看了下是支持 目前t5这边的配置的,并且PCM_SPK16000这个数据,也是从你们另外的Demo中copy过来的
-
heixia.wang@tuya.com
- Posts: 27
Re: T5 3.12.25 i2s使用问题
只要不停止i2s fifo里的最后一个数据会一直向外发送