硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1247|回复: 9
收起左侧

求问 通过I2S发送PCM音频问题

[复制链接]

16

主题

58

回帖

106

积分

初级会员

积分
106
发表于 2024-12-10 13:36:38 | 显示全部楼层 |阅读模式
如题,I2S目前配置为飞利浦标准,如果发送PCM音频的话软件如何更改配置
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-11 09:00:29 | 显示全部楼层
PCM 音频混音算法分享
https://forum.anfulai.cn/forum.p ... 0521&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2024-12-11 09:52:52 | 显示全部楼层
eric2013 发表于 2024-12-11 09:00
PCM 音频混音算法分享
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=110521&fromuid=58
(出处:  ...

硬汉,我之前看了这个分享,感觉跟我这个需求不太一样,我是通过网口接收一个PCM数字音频流,边接收边通过I2S发出去,不用多个文件/音频流处理,hal库有I2S_STANDARD_PCM_SHORT配置,就是不知道这个怎么用
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-12 09:47:42 | 显示全部楼层
lishang4650 发表于 2024-12-11 09:52
硬汉,我之前看了这个分享,感觉跟我这个需求不太一样,我是通过网口接收一个PCM数字音频流,边接收边通 ...

这个我没用过。
回复

使用道具 举报

2

主题

25

回帖

31

积分

新手上路

积分
31
发表于 2024-12-17 10:50:44 | 显示全部楼层
你的I2S后边接的是codec吗?如果是就按照codec支持的I2S格式配置就可以了。那逻辑分析仪看一下配置后的波形就明白了。
回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2024-12-19 14:19:06 | 显示全部楼层
xiaokang2009 发表于 2024-12-17 10:50
你的I2S后边接的是codec吗?如果是就按照codec支持的I2S格式配置就可以了。那逻辑分析仪看一下配置后的波形 ...

I2S后通过一个频率转换器src4190发给了DSP芯片ADAU1701,接的不是codec。
回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2024-12-19 15:10:15 | 显示全部楼层
xiaokang2009 发表于 2024-12-17 10:50
你的I2S后边接的是codec吗?如果是就按照codec支持的I2S格式配置就可以了。那逻辑分析仪看一下配置后的波形 ...

刚测试了下,I2S直接发送PCM音频可以正常处理
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-19 16:34:10 | 显示全部楼层
lishang4650 发表于 2024-12-19 15:10
刚测试了下,I2S直接发送PCM音频可以正常处理

我也学习了下,我还以为PCM是什么特别的格式,原来就是原始的音频数据。

肯定可以直接送音频DAC直接使用。
回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2024-12-25 10:32:26 | 显示全部楼层
eric2013 发表于 2024-12-19 16:34
我也学习了下,我还以为PCM是什么特别的格式,原来就是原始的音频数据。

肯定可以直接送音频DAC直接使 ...

感谢硬汉,确实是这样,我之前看PCM协议格式跟I2S不一样,以为要处理
另外请教下,我现在通过网口接收采样率44.1kHz,16位的PCM音频,并通过I2S送出去,实现边收边播。现在有个问题:网口通信有固定周期,因此需要先缓存一定时间,再延迟播放。但接收44.1kHz的音频需要比较大的缓存,以1s音频数据为例,44.1*1000*16/8 =  88200字节,数据量太大了。即便使用双缓冲接收100ms的数据,也需要两个9000字节的buffer。MCU使用的F745, SDRAM空间大小320kB,是不是只能使用动态内存分配,且不释放?我试了下直接用两个9000的全局数组,程序乱了。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-26 07:54:48 | 显示全部楼层
lishang4650 发表于 2024-12-25 10:32
感谢硬汉,确实是这样,我之前看PCM协议格式跟I2S不一样,以为要处理。
另外请教下,我现在通过网 ...

可以缓冲10ms,100ms的量
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:54 , Processed in 0.043834 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表