找回密码
 立即注册
楼主: 梁工

51 开源 180MHz-PWM-播放立体声音乐@32G12K128, USB-CDC实时传输音频

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-09-15 16:22:30

10

主题

46

回帖

444

积分

中级会员

积分
444
发表于 2025-8-25 15:07:25 | 显示全部楼层
梁*** 发表于 2025-8-25 13:52
这是综合应用,参考“Ai8051U实现USB全双工声卡”,但USB通讯改为串口通讯。
其实你的应用相对简单:
1、 ...

不需要对声音进行ADC采样
就是将音频文件通过串口功能发送给AI8051U,AI8051U将收到的串口数据转换成音频数据通过I2S发送出去。
我看USB声卡不需要解码,flash播放需要解码,两个例程在I2S中断中的处理不一样,那像上面的需求,我需要参考哪个例程进行修改?
截图202508251509034244.jpg

点评

那就看声卡中的播放部分,ADC上传部分去掉,将播放部分获取数据的USB程序,换成串口接收即可。要注意串口的速度是否足够。比如,单声道,16KHz采样,一个点2字节,则为32KB/S,用串口的话,一位起始位,8位数据,一  详情 回复 发表于 2025-8-25 17:03
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-8-25 17:03:03 | 显示全部楼层
cyf1*** 发表于 2025-8-25 15:07
不需要对声音进行ADC采样
就是将音频文件通过串口功能发送给AI8051U,AI8051U将收到的串口数据转换成音频 ...

那就看声卡中的播放部分,ADC上传部分去掉,将播放部分获取数据的USB程序,换成串口接收即可。要注意串口的速度是否足够。比如,单声道,16KHz采样,一个点2字节,则为32KB/S,用串口的话,一位起始位,8位数据,一位停止位,即10位一个字节,则要求串口速度至少要320Kbps,实际要更高,因为需要处理同步。
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-09-15 16:22:30

10

主题

46

回帖

444

积分

中级会员

积分
444
发表于 2025-8-25 18:31:54 | 显示全部楼层
梁*** 发表于 2025-8-25 17:03
那就看声卡中的播放部分,ADC上传部分去掉,将播放部分获取数据的USB程序,换成串口接收即可。要注意串口 ...

我打算先用CDC串口调通,再将CDC串口改成串口。
将USB声卡例程中USB获取数据的部分放到cdc的中断回调函数中处理,i2s中断处理函数仍旧使用USB声卡部分代码。使用串口助手发送音频文件,喇叭没有声音。梁工能帮忙看下是哪里的问题吗?



截图202508251828117212.jpg
截图202508251828296035.jpg
截图202508251828402814.jpg
截图202508251829052398.jpg

点评

STC32G12K128,没有I2S接口! 你的应用可以参考我较早的程序: 51开源-仿USB声卡I2S接口播放PCM格式立体声音乐@STC32F12K54 USB-CDC实时传输音频流 https://www.stcaimcu.com/thread-5246-1-1.html (出处: 国芯人工  详情 回复 发表于 2025-8-25 22:49
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-8-25 22:49:11 | 显示全部楼层
cyf1*** 发表于 2025-8-25 18:31
我打算先用CDC串口调通,再将CDC串口改成串口。
将USB声卡例程中USB获取数据的部分放到cdc的中断回调函数 ...

STC32G12K128,没有I2S接口!

你的应用可以参考我较早的程序:
51开源-仿USB声卡I2S接口播放PCM格式立体声音乐@STC32F12K54 USB-CDC实时传输音频流
https://www.stcaimcu.com/thread-5246-1-1.html
(出处: 国芯人工智能技术交流网站)
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-09-15 16:22:30

10

主题

46

回帖

444

积分

中级会员

积分
444
发表于 2025-8-26 09:42:31 | 显示全部楼层
梁*** 发表于 2025-8-25 22:49
STC32G12K128,没有I2S接口!

你的应用可以参考我较早的程序:

MCU用的是AI8051U,播放ADPCM音频

点评

方法一样的。  详情 回复 发表于 2025-8-26 10:16
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-09-15 16:22:30

10

主题

46

回帖

444

积分

中级会员

积分
444
发表于 2025-8-26 09:43:31 | 显示全部楼层
梁*** 发表于 2025-8-25 22:49
STC32G12K128,没有I2S接口!

你的应用可以参考我较早的程序:

这个我参考了一下,移植了CDC的数据处理和I2S中断函数,播放PCM音频没有声音

点评

先输出一个正弦波看看,说不定是你的I2S还没正常呢?分开调试I2S和串口通信。  详情 回复 发表于 2025-8-26 10:15
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-8-26 10:15:30 | 显示全部楼层
cyf1*** 发表于 2025-8-26 09:43
这个我参考了一下,移植了CDC的数据处理和I2S中断函数,播放PCM音频没有声音 ...

先输出一个正弦波看看,说不定是你的I2S还没正常呢?分开调试I2S和串口通信。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-8-26 10:16:02 | 显示全部楼层
cyf1*** 发表于 2025-8-26 09:42
MCU用的是AI8051U,播放ADPCM音频

方法一样的。
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-09-15 16:22:30

10

主题

46

回帖

444

积分

中级会员

积分
444
发表于 2025-8-26 10:34:37 | 显示全部楼层
梁*** 发表于 2025-8-26 10:15
先输出一个正弦波看看,说不定是你的I2S还没正常呢?分开调试I2S和串口通信。 ...

I2S是正常的,81-I2S-播放下载在FLASH中的立体声ADPCM音乐-TLV320AIC23B这个例程可以播放音频

点评

那我抽时间给你写一个例子吧  详情 回复 发表于 2025-8-26 12:00
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-8-26 12:00:52 | 显示全部楼层
cyf1*** 发表于 2025-8-26 10:34
I2S是正常的,81-I2S-播放下载在FLASH中的立体声ADPCM音乐-TLV320AIC23B这个例程可以播放音频
...

那我抽时间给你写一个例子吧
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-16 11:57 , Processed in 0.145158 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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