Beaglebone Black Custom Audio Cape DMA / IRQ麻烦

时间:2015-08-26 19:24:58

标签: audio linux-device-driver beagleboneblack alsa

我正在运行一个BBB直接运行debian。内核版本是3.8.13-bone-47。

我正在使用与here非常相似的斗篷。不同之处在于我使用的是TLV320AIC3106而不是AIC3104,我只启用了音频输出,我对此应用程序中的音频录制不感兴趣。

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

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

当我播放示例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出现其他问题的症状吗?我在其他地方错过了配置吗?

对于如何追踪这一点的任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:0)

我意识到它之前曾被多个地方所覆盖,但它永远不会被强调。确保在发送信息时,确保它通过I2C转到正确的地址。我今天早上发现音频编解码器位于地址0x1B,而驱动程序的地址为0x18。小而重要的区别。

简单的解决方法是编辑BB-BONE-AUDI-02-00A0.dts文件。

  • 将第65行编辑为<0x1B>。使用以下行重新编译:{{1​​}}
  • 将生成的文件移动到/ lib / firmware目录
  • 使用dtc -O dtb -o BB-BONE-AUDI-02-00A0.dtbo -b 0 -@ BB-BONE-AUDI-02-00A0.dts
  • 插入

应用这个简单的修复后,它似乎工作。我不能肯定地说,因为我必须使音频放大器电路保持运行状态。至少aplay会播放文件而不会崩溃我,这是一个开始。