audio - Beaglebone Black Custom Audio Cape DMA/IRQ麻烦

标签 audio linux-device-driver beagleboneblack alsa

我直接运行运行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文件。

  • 将第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会播放文件而不会崩溃,这是一个开始。

    关于audio - Beaglebone Black Custom Audio Cape DMA/IRQ麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32235074/

    相关文章:

    android - 我可以直接在 android 中播放 .caf 文件吗?

    jquery - 导航到同一文件中的另一个页面时,如何停止音频播放?

    linux - 添加 DEFINE_WAIT 无法在 linux 模块中编译

    linux - 如何在 Linux 中获取 USB(HID 使用 ID)连接设备的使用 ID 或类似属性

    python - 回复 : How Can I Get Flask to Use GPIO Pins to Change the LED Brightness on Linux with a BeagleBone Black?

    java - 在JApplet中顺序播放音频片段

    javascript - 使用 HTMLMediaElement 向后播放音频

    c - Linux block 过滤器驱动程序

    mmap可以通过函数传递地址吗?

    beagleboneblack - BeagleBone Black 卡住