ALC5621声卡调试记录

2023-05-16

转载请注明出处:https://blog.csdn.net/luomin5417/article/details/80731790


平台:imx6q

内核版本: linux 3.14

1.  硬件连接

图 1.1 硬件连接

2.  设备树修改

    根据硬件连接关系,编辑内核设备树文件。

2.1 音频解码器配置

    添加alc562x音频解码器描述,因为是挂在i2c-2下面所以定义在i2c3总线下(手册中从i2c设备0-2,设备树中i2c是从1-3)。


图2.1 解码器配置

2.2 声卡配置

图 2.2 声卡配置

2.3 设置音频接口i2s总线

    ssi主要负责音频数据的收发,具体的模块功能可以参考imx6q的手册,该处需要注意将cpu设置为slave模式,芯片设置为master模式,反过来设置,会导致调试时多花很多时间,因内核中fsl提供的驱动,貌似只实现了slave模式,之前在调试时在这个地方也花了很多时间


图 2.3 设置i2s总线音频接口

2.4 管脚配置

Audmux主要实现了外部设备与soc上的ssi模块的连接,设置管教时即配置audmux的连接管脚即可。


图 2-4 AUDMUX音频接口

设备树中的管脚配置


图 2-5 管脚配置

3.  驱动代码修改

3.1 ALC5621解码器驱动

    alc5621驱动编写的文件:alc5623.c和alc5623.h

3.2 声卡驱动

    声卡驱动编写的文件为:imx-alc562x.c和imx-audmux.h

4.  i2c控制接口调试

    i2c接口的调试可以通过逻辑分析仪抓取接口时序进行分析。在调试驱动时刚开始发现i2c总线没有响应,alc5621芯片控制接口没有工作,导致调试了一天,最后发现是alc5621芯片的时钟没有给。

图 4.1 i2c接口时序

5. i2s音频接口调试

i2s总线也可以通过逻辑分析仪进行接口调试分析,在调试i2s数据总线时也是发现没有数据输入和输出,主要集中要调试的地方是解决:

(1)  确定alc5621芯片和soc之间的主从关系

(2)  打开alc5621内部电源开关

完成这两方面的调试基本上是能够进行数据收发了。

6. 音频录播配置

(1)  模块加载:

insmod imx-ssi.ko

insmod imx6q-ssi.ko

insmod alc5623.ko

insmod imx-alc562x.ko

(2)  参数设置:

耳机播放:

设置声音

amixer cset numid=3,iface=MIXER,name='Headphone Playback Volume' 31

amixer cset numid=7,iface=MIXER,name='PCM Playback Volume' 31

设置通道

amixer cset numid=53,iface=MIXER,name='HP Mix DAC2HP PlaybackSwitch' on

图 6.1 通道配置

设置声道:

amixer cset numid=56,iface=MIXER,name='Left Headphone Mux' 1

amixer cset numid=55,iface=MIXER,name='Right Headphone Mux' 1


设置捕获声音:

amixer cset numid=12,iface=MIXER,name='Rec Capture Volume' 31

设置MIC1捕获声音:

amixer cset numid=10,iface=MIXER,name='Mic1 Capture Volume' 31

打开声音捕获开关:

amixer cset numid=26,iface=MIXER,name='Left Capture Mix Mic1 Capture Switch' on

amixer cset numid=17,iface=MIXER,name='Right Capture Mix Mic1Capture Switch' on

录音命令:

arecord-d 10 -f cd -t wav cap.wav

图 6.2 录音





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ALC5621声卡调试记录 的相关文章

  • oprofile库安装与使用

    一 概述 oprofile库是linux平台上的一个功能强大的性能分析工具 xff0c 支持两种采样方式 xff1a 基于事件的采样与基于时间的采样 1 xff09 基于事件的采样 xff1a oprofile只记录特定事件 xff08 比
  • 超声波模块

    HC SR04 简介 HC SR04超声波模块可提供2cm 400cm的距离感测功能 xff0c 测量精度可以达到3mm 模块包括超声波发射器 xff0c 接收器与控制电路 基本工作原理 1 采用Trig引脚触发 xff0c 给至少10us
  • /proc/interrupts

    proc interrupts中的字段依次是逻辑中断号 中断在各CPU上发生的次数 xff0c 中断所属父设备名称 硬件中断号 中断触发方式 电平或边沿 中断名称 proc interrupts的具体实现查看代码kernel irq pro
  • BGP-LS 简介

    BGP LS xff08 BGP Link state xff09 汇总IGP协议收集的拓扑信息上送给上层控制器 产生原因 BGP LS是收集网络拓扑的一种新的方式 BGP LS特性产生前 xff0c 路由器使用IGP xff08 OSPF
  • ubuntu下vnc使用

    使用apt cache search vncserver命令搜索可以用来安装vncserver的软件包 xff0c 这里选用vnc4server安装vnc 2 使用apt get install vnc4server命令安装vncserve
  • 使用“反射”将 Java 中一种对象类型转换为另外一种类型

    将一种对象类型转换为另外一种类型的常用场景 场景如下 xff1a 一般后端是使用 MVC 三层架构进行分层 实体类 User 用于接收数据库中的数据 xff1b 表现层 UserVo 将数据传给前端 这中间免不了要将实体类转换为表现层中的对
  • Ubuntu18.04 vnc灰屏问题

    vnc安装完以后 xff0c 用客户端登录发现只有5901端口可用 xff0c 但是其他端口登录上去以后都是灰屏的 查找了一下 xff0c 需要修改配置文件 vnc xstartup为如下内容 xff1a bin bash export d
  • 安装docker

    1 查看docker安装目录 whereis docker docker usr bin docker etc docker usr libexec docker usr share man man1 docker 1 gz 2 查询运行文
  • 关于PiBOT使用的一些问题汇总--ing

    xff1a 多机通讯是按照教程设置环境变量ROS MASTER URI 初始化 pibot init env sh xff0c 使用rostopic已经能够查看 xff0c 但是主机PC无法启动launch 原因 xff1a 个人测试是需要
  • ubuntu 19.10系统解决E: 仓库 “http://ppa.launchpad.net/webupd8team/java/ubuntu eoan Release” 没有 Release 文件。

    在终端换源后遇到E 仓库 http ppa launchpad net webupd8team java ubuntu eoan Release 没有 Release 文件 问题 解决方法 xff1a 将对应的ppa删除即可 第一步 xff
  • 使用org-mode生成晨检报告

    原文地址 https lujun9972 github io blog 2020 04 10 使用org mode生成晨检报告 index html 我们设置了每天8点多自动进行调用一次晨检脚本 xff0c 该脚本会将检查的一些数据存入本地
  • 使用Pi-hole屏蔽广告

    原文地址 https www lujun9972 win blog 2020 12 05 使用pi hole屏蔽广告 index html 目录 获取Pi的对外IP地址安装Pi hole配置DNS配置拦截域名 获取Pi的对外IP地址 我们一
  • 笑话理解之Mature

    原文地址 https www lujun9972 win blog 2020 12 09 笑话理解之mature index html 目录 The difference between government bonds and men T
  • 笑话理解之Hearing

    原文地址 https www lujun9972 win blog 2020 12 09 笑话理解之hearing index html 目录 The Hearing Problem The Hearing Problem In a chu
  • Emacs 作为 MPD 客户端

    原文地址 https www lujun9972 win blog 2022 06 26 emacs 作为 mpd 客户端 index html 今天才知道 xff0c Emacs居然内置了一个 mpc el 可以将 Emacs 转换为 M
  • 编译SONiC交换机镜像(转,参考2)

    sonic buildimage 编译SONiC交换机镜像 描述 以下是关于如何为网络交换机构建 ONIE 兼容网络操作系统 xff08 NOS xff09 安装程序镜像的说明 xff0c 以及如何构建在NOS内运行的Docker镜像 请注
  • Emacs 作为 MPD 客户端

    原文地址 https www lujun9972 win blog 2022 06 26 emacs 作为 mpd 客户端 index html 今天才知道 xff0c Emacs居然内置了一个 mpc el 可以将 Emacs 转换为 M
  • 使用 calc 计算保险实际收益率

    原文地址 https www lujun9972 win blog 2022 08 10 使用 calc 计算保险实际收益率 index html 今天某银行的客户经理来推销一个 增额终身寿险 xff0c 号称是能锁定3 5 的收益率 具体
  • Emacs使用Deft管理笔记

    1 Deft介绍 Deft是一款写作和管理纯文本格式笔记的工具 通过它可以快速的查到或新建笔记 Deft的下载地址是Deft 也可以通过浏览或者拷贝git仓库 xff1a git clone git jblevins org git def
  • linux挂载samba文件系统的方法

    1 手工挂载 有两个命令可以用来手工挂载samba文件系统 xff0c 一个是mount xff0c 一个是smbmount 1 1 使用mount命令挂载 mount就是用于挂载文件系统的 xff0c SMB做为网络文件系统的一种 xff

随机推荐