imx8mm 播放声音的问题

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx8mm 播放声音的问题

1,358 Views
CheLL
Contributor III

Android9的环境下,用codec芯片aw8838播放声音,

播放48000Hz 32bit的单通道平台侧没有报错,但是传给codec的参数显示频率是44100Hz 和 宽度是16bit,导致codec侧check i2s signal错误。

换成播放44100Hz 16bit单通道的wav文件就报错,报错内容如下:

inyplay /storage/emulated/0/Music/test_44100_16.wav <
[ 219.883427] aw8838_startup: enter
[ 219.892745] aw8838_startup: enter
[ 219.897552] aw8838_set_fmt: fmt=0x4001
[ 219.901374] lv.t aw8838_get_mclk_rate rate=44100 hz
[ 219.906282] imx-aw8838 sound-aw8838: lv.t imx_aif_hw_params mclk_freq=11289600 hz
[ 219.917922] fsl-sai 30030000.sai: failed to derive required Tx rate: 1411200
[ 219.925016] fsl-sai 30030000.sai: ASoC: can't set 30030000.sai hw params: -22
[ 219.932202] aw8838_mute: mute state=1
Unable to open PCM device 0 (cannot set hw params: Invalid argument)
evk_8mm:/ #

是什么原因导致错误,要修改什么文件吗?

请各位大佬指导一下

万分感谢!

0 Kudos
Reply
2 Replies

1,347 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi CheLL,

这说明CPU端无法配置为44.1K对应的bitclcok,造成SAI的配置错误。tinyalsa也不能做采样频率的转换。命令行测试只能证明你的codec driver移植是正确的。

另外,android 统一使用44.1K的采样频率,应用层会做采样频率的转换。所以,请使用android app播放音频。

 

Have a nice day!

B.R,

Weidong

 

0 Kudos
Reply

1,343 Views
CheLL
Contributor III

Hi weidong_sun

感谢您的回答,现在因为不知道怎么移植codec的驱动到imx8mm的Android9 的平台,所以用的tinyplay,因为是Android9的平台,所以想请教下,怎么将新的驱动添加到hal层,这样Android的app才能测试?

真的非常急需这方面的解答,希望您告知一下?

 

关于CPU端无法配置为44.1K对应的bitclcok,这个有方法配置吗?

 

Bset wishs

CheLL

0 Kudos
Reply