我直接运行运行Debian的BBB。内核版本为3.8.13-bone-47。
我正在使用与here非常相似的披风。不同之处在于,我使用的是TLV320AIC3106而不是AIC3104,并且我仅启用了音频输出,我对在此应用程序中录制音频不感兴趣。
我的应用程序引出线与上面链接中的海角相同。
我已按照here链接启动了斗篷并开始运行。在尝试播放示例wave文件之前,我拥有的所有内容都与教程的输出相匹配。
播放样本wave文件时,出现以下消息:aplay: pcm_write:1710: write error: Input/output error
运行dmesg
给我ALSA sound/core/pcm_lib.c:1010 playback write error (DMA or IRQ trouble?)
我遇到麻烦的地方是我不了解DMA如何发挥作用。这是DMA问题吗?这是我的I2C出现其他问题的征兆吗?我是否在其他地方缺少配置?
任何有关如何跟踪此问题的想法都将受到赞赏。
最佳答案
我知道它以前已经在多个地方讨论过,但是永远不能强调它。确保在发送信息时,请确保它通过I2C到达正确的地址。我今天早上发现音频编解码器位于地址0x1B,而驱动程序的地址为0x18。小而关键的差异。
简单的解决方法是编辑BB-BONE-AUDI-02-00A0.dts文件。
<0x1B>
。使用以下行重新编译:dtc -O dtb -o BB-BONE-AUDI-02-00A0.dtbo -b 0 -@ BB-BONE-AUDI-02-00A0.dts
echo BB-BONE-AUDI-02 > /sys/devices/bone_capemgr*/slots
插入应用此简单的修复程序后,它似乎可以工作。我不能肯定地说,因为我必须使音频放大器电路保持正常运行。至少aplay会播放文件而不会崩溃,这是一个开始。
关于audio - Beaglebone Black Custom Audio Cape DMA/IRQ麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32235074/