Audio Beaglebone黑色定制音频Cape DMA/IRQ故障

Audio Beaglebone黑色定制音频Cape DMA/IRQ故障,audio,linux-device-driver,beagleboneblack,alsa,Audio,Linux Device Driver,Beagleboneblack,Alsa,我在经营一家BBB,直接开箱即用,经营debian。内核版本是3.8.13-bone-47 我正在用一件和那件很相似的披风工作。区别在于我使用的是TLV320AIC3106而不是AIC3104,我只启用了音频输出,我对在这个应用程序中录制音频不感兴趣 我的应用程序的引脚与上面链接中的cape相同 我已经按照链接启动并运行了斗篷。在我尝试播放示例wave文件之前,我拥有的所有内容都与教程的输出相匹配 播放示例波形文件时,我收到以下消息:aplay:pcm\u write:1710:write er

我在经营一家BBB,直接开箱即用,经营debian。内核版本是3.8.13-bone-47

我正在用一件和那件很相似的披风工作。区别在于我使用的是TLV320AIC3106而不是AIC3104,我只启用了音频输出,我对在这个应用程序中录制音频不感兴趣

我的应用程序的引脚与上面链接中的cape相同

我已经按照链接启动并运行了斗篷。在我尝试播放示例wave文件之前,我拥有的所有内容都与教程的输出相匹配

播放示例波形文件时,我收到以下消息:
aplay:pcm\u write:1710:write error:Input/output error

运行
dmesg
会给我
ALSA声音/核心/pcm_lib.c:1010播放写入错误(DMA或IRQ故障?

我遇到的问题是我不明白DMA是如何发挥作用的。这是DMA问题吗?这是我的I2C出现问题的症状吗?我是否缺少其他地方的配置


任何关于如何追踪这一点的想法都将不胜感激。

我意识到它之前已经在多个地方被介绍过了,但它永远不会被强调得足够。确保在发送信息时,确保信息通过I2C传输到正确的地址。今天早上我发现音频编解码器的地址是0x1B,而驱动程序的地址是0x18。微小但关键的差异

简单的修复方法是编辑BB-BONE-AUDI-02-00A0.dts文件

  • 将第65行编辑为
    。使用以下行重新编译:
    dtc-O dtb-O BB-BONE-AUDI-02-00A0.dtbo-b 0-@BB-BONE-AUDI-02-00A0.dts
  • 将生成的文件移动到/lib/firmware目录
  • 使用echo BB-BONE-AUDI-02>/sys/devices/BONE\u capemgr*/slots将其插入

在应用了这个简单的修复之后,它似乎起了作用。我不能肯定地说,因为我必须让音频放大器电路启动并稳定运行。至少aplay可以播放文件而不会对我造成崩溃,这是一个开始。

您可能需要检查编解码器是否已由驱动程序初始化。嘿,hikey也遇到了同样的问题。有什么你可以建议我看的吗?