找回密码
 立即注册
查看: 298|回复: 7

求助大佬,usb数据接收出错

[复制链接]
已绑定手机

4

主题

10

回帖

166

积分

注册会员

积分
166
发表于 2026-6-11 20:53:56 | 显示全部楼层 |阅读模式
单片机型号STC32F12K54,usb接收音频流,通过dma送到iis里,目前能被主机识别,播放音乐就全是爆音,然后我尝试播放1khz音频进行测试,发现波形完全畸变,然后排查了很久,目前是怀疑数据接收出错了,我做了些实验:

1.使用固定数值生成1khz波形,dac波形是正常的,那大概率排查dma和iis配置错误和运行错误了
2.那是不是usb写入和dma读取相互干扰呢,我没有做任何情况缓冲的手段,所以在播放1khz音频时拔出usb,这样usb就没有新数据了,缓冲的内容就不会改变了,但是波形还是畸形的,那停止dma,拔出usb后用串口把数据发出来,弄成固定数值,结果也是一样畸形的
用网易云播放的时候发现这个1k波形会剧烈变动,固定的稳定的畸形波形是用这个网址测的:https://www.onlinemictest.com/zh/tone-generator/,不过win10本身播放器播放也是稳定的
然后我就弄不动了,感觉主机也不太可能发送错误的数据,那就是我读取的过程错了,但是我实在是看不出来了

IMG_20260611_200610.jpg

usb to i2s.zip

75.64 KB, 下载次数: 21

回复

使用道具 举报 送花

已绑定手机

4

主题

10

回帖

166

积分

注册会员

积分
166
 楼主| 发表于 2026-6-11 21:50:07 | 显示全部楼层
忘记说了,如果要下程序的话,调整irc频率到49.152mhz,数据接收在usb_out()这个子函数里,iis功能脚P_SW3=0x40,在I2S_ChuShiHua()这个子函数里
回复

使用道具 举报 送花

已绑定手机

121

主题

5081

回帖

1万

积分

超级版主

无情的代码机器

积分
11216
发表于 2026-6-12 09:18:21 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

83

主题

8216

回帖

1万

积分

超级版主

积分
17634
发表于 2026-6-12 11:20:54 | 显示全部楼层
注意数据的大小端模式,单片机使用大端模式,电脑使用的是小端模式。
回复

使用道具 举报 送花

已绑定手机

4

主题

10

回帖

166

积分

注册会员

积分
166
 楼主| 发表于 2026-6-15 13:33:12 | 显示全部楼层
经过不严谨的测试,传输数据时,某一段数据疑似被跳过替换成了别的数据,导致某一段数据重复了两次,不清楚是主机发送的数据就是如此还是单片机的问题
回复

使用道具 举报 送花

已绑定手机

4

主题

10

回帖

166

积分

注册会员

积分
166
 楼主| 发表于 2026-6-16 19:48:26 | 显示全部楼层
在收到设置接口SetInterface或者设置配置SetConfiguration指令时,一口气设置outcsr2或incsr2和inmaxp或outmaxp这两个寄存器,其他时候不要设置,如果提前设置了,对应端点收不到数据,如果提前设置了maxp在指令到来时再设置csr2,数据会错
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25102
发表于 2026-6-17 14:33:42 | 显示全部楼层
用 AI8051U 来做音频测试,我们例程多
回复

使用道具 举报 送花

已绑定手机

4

主题

10

回帖

166

积分

注册会员

积分
166
 楼主| 发表于 2026-6-25 21:59:25 | 显示全部楼层
整了个异步声卡,48k/44.1k16bit立体声,无麦克风,iis功能脚P_SW3=0x40,在I2S_ChuShiHua()这个子函数里,飞利浦格式,下载选择40m就好,目前两个采样率在我的win10电脑上都能稳定运行,其他情况不知道,采样率的切换依赖IRTRIM的调节,但是看手册这个每个芯片的力度不一样,差太多反馈也救不回来,如果要调,以48k举例,lrclk调到48-47.9跳就好了,异步对快于主机的频率支持不是很好,48-48.1跳会救不回来,如果出现爆音,可以切个歌看看还有没有,当然如果出现爆音一般也就不能运行

usb to i2s.zip

58.72 KB, 下载次数: 17

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-9-22 06:53 , Processed in 0.072526 second(s), 73 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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