【问题标题】:Beaglebone Black Custom Audio Cape DMA/IRQ troubleBeaglebone Black Custom Audio Cape DMA/IRQ 故障
【发布时间】:2015-11-20 23:48:05
【问题描述】:

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

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

我的应用程序的 pinout 与上面链接中的 cape 相同。

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

当我播放样本波形文件时,我收到以下消息: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 等其他问题的症状?我是否在其他地方缺少配置?

感谢您对如何追踪此问题的任何想法。

【问题讨论】:

  • 您可能需要检查编解码器是否已被驱动程序初始化。

标签: audio linux-device-driver beagleboneblack alsa


【解决方案1】:

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

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

  • 将第 65 行编辑为 <0x1B>。使用该行重新编译: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_capemgr*/slots 插入它

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

【讨论】:

  • 嘿,我也遇到了同样的问题。有什么可以建议我看的吗?
猜你喜欢
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 2014-09-19
  • 2016-11-30
相关资源
最近更新 更多