zedboard ——adau1761之capture录音调试(五)

  今天在进行zedboard开发板adau1761之录音调试,尝试从mic口录取声音再播放出来,调试卡了好久,竟然卡在mic口的三段式口不兼容四段式口的接头,好吧,孤陋寡闻了,汗!!!!!
下面开始说说调试的过程。

adau1761.state文件配置

  首先进行adau1761.state 配置文件的加载,这个是从ez.analog.com网站上找的lars大神(adau1761驱动的编写者)已经配置好的文件,可以直接用的。文件我上传到csdn了,adau1761.state
然后使用如下命令进行配置:

alsactl restore -c 0 -f adau1761.state

查看alsactl指令的使用方法:
这里写图片描述
-c设置声卡设备的编号,我是设备编号0,设成0,如果你要是加载7511的驱动,声卡设备编号是1,就设成1;
-f配置state文件,选择adau1761.state文件。

硬件电路与音频接头

接下来进行录音操作,在介绍录音之前,先说下adau1761的硬件电路及相关知识,还有那个三段式和四段式接头。
这里写图片描述
这里写图片描述
原始图纸在:资料与图纸
从上面的图纸可以看到AUDIO 有四个接头,蓝、粉、绿、黑四个颜色。

  1. line in 蓝色,主要用于连接电吉他、电子琴等外界设备的输出信号,这些设备本身的输出功率较大。
  2. MIC in 粉色,麦克风录音使用的接头,需要有前置放大器。
  3. line out 绿色,非功率输出的标准模拟输出,不能直接驱动耳机,中间需要加功放才能接耳机。
  4. headphone 黑色,耳机输出,可以直接接耳机。
    下面说下三段式接头和四段式接头:
    (1)名称
    耳机插头有3个环的,也就是插头被分割成3段,这种插头叫“三段线式插头”;那么插头有4个环的则被称为“四段线式插头”。
    这里写图片描述
    这里写图片描述
    (2)作用不同
    三段线插头决定了耳机只能有左、右两个喇叭,原因如下图:
    这里写图片描述
    四段线插头除了可以连接左右连个喇叭外,还可以连接麦克风。如图:
    这里写图片描述
    (3)接线定义不同
    三段线式接线定义:
    这里写图片描述
    四段线接线定义(有两种,如下两图):
    这里写图片描述
    这里写图片描述
    我在调试的时候就是用四段氏耳机直接插在了mic口,录音然后播放一直没声音,还以为是amixer的设置有问题,原来是zedboard的mic口是三段式的,查的四段式的不兼容。现在新出的笔记本都只有一个耳机口,和手机的耳机口一样,是四段式的,可以兼容三段式的。
录音

搞明白了这些,就可以开始录音了。录音使用arecord命令:
查看arecord命令的使用方法:
这里写图片描述

arecord -Dhw:ADAU1761 -fS32_LE -d10 -c2 -r48000 s32_le.wav

-D是选择ADAU1761设备;
-f是采样格式;
-d是采集10后停止;
-c是选择通道2;
通道2是什么通道?在alsa-utils库中aplay.c源码中有一段源码:

static void header(int rtype, char *name)
{
        if (!quiet_mode) {
                if (! name)
                        name = (stream == SND_PCM_STREAM_PLAYBACK) ? "stdout" : "stdin";
                fprintf(stderr, "%s %s '%s' : ",
                        (stream == SND_PCM_STREAM_PLAYBACK) ? _("Playing") : _("Recording"),
                        gettext(fmt_rec_table[rtype].what),
                        name);
                fprintf(stderr, "%s, ", snd_pcm_format_description(hwparams.format));
                fprintf(stderr, _("Rate %d Hz, "), hwparams.rate);
                if (hwparams.channels == 1)
                        fprintf(stderr, _("Mono"));
                else if (hwparams.channels == 2)
                        fprintf(stderr, _("Stereo"));
                else
                        fprintf(stderr, _("Channels %i"), hwparams.channels);
                fprintf(stderr, "\n");
        }
}

即通道1是mono,单声道;通道2是stereo,立体声;
-r是设置采样速率48000hz。
使用上述命令即可录音。

播放

播放使用aplay命令:

aplay -Dhw:ADAU1761 -fS32_LE -c2 -r48000 s32_le.wav

相关参数参考上述arecord命令的介绍,把耳机接在黑色接头就可以听见声音了。

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Zedboard板基于SOC的Adau1761测试项目 郑郁正(百度) 项目模板来自:Lab4 1、 在vivado下执行TCL脚本可以生成SOC模型。 2、 直接创建SDK项目。 3、 将Line In输入的音频处理后送Line Out。 4、 通过SW0可以选择是否滤波处理音频,还是直通。 主要问题是提供的TCL脚本与vivado2015.2不兼容,按网上“ vivado + zedboard之audio驱动”的步骤运行TCL失败。其二是adau1761.h adau1761.c、iic.h、iic.c没用(实际上模板中也没有)。其三是testapp.c中的xfir_hw.h不存在(实际上不做滤波处理时可以删除)。 说明一下如何修改TCL脚本。 1、 解压labsoure.rar后将 ..\labsource\sources\lab4 拷贝到 d:\ 下。 2、 启动vivado后点主菜单中的window中的Tcl Console打开Tcl Console命令窗口。 3、 在Tcl Console窗口下面的命令框中输入cd d:/lab4 4、 用windows的“记事本”打开该目录中的audio_project_create.tcl 文档(用其它文本编辑器打开也可以)。 5、 首先将第2行create_project audio C:/xup/hls/labs/lab4/audio -part xc7z020clg484-1路径改为create_project audio d:/lab4/audio -part xc7z020clg484-1 6、 第15行set_property ip_repo_paths C:/xup/hls/sources/lab4 [current_fileset]路径改为set_property ip_repo_paths d:/lab4 [current_fileset] 7、 将audio_project_create.tcl 的每一行拷贝入 Tcl Console 命令框中执行。 8、 执行第7行“create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.3 processing_system7_0”产生错误: ERROR: [BD 5-216] VLNV <xilinx.com:ip:processing_system7:5.3> is not supported for this version of the tools.The latest version is:5.5 ERROR: [Common 17-39] 'create_bd_cell' failed due to earlier errors. 9、 在右上Diagram窗口右击鼠标选“Add IP…”,选择倒数第2个IPcore:“ZYNQ7 Processing System”,将出现在Tcl Console窗口中的“create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 processing_system7_0”拷贝代替第7行。实际上是vivado版本兼容问题,将5.3改为了5.5。 10、 注消25行、26行。因为 执行第25行 delete_bd_objs [get_bd_nets processing_system7_0_fclk_clk1] 产生警告: WARNING: [BD 5-234] No nets matched 'get_bd_nets processing_system7_0_fclk_clk1' 执行第26行 connect_bd_net -net [get_bd_nets processing_system7_0_fclk_clk0] [get_bd_pins proc_sys_reset/slowest_sync_clk] [get_bd_pins processing_system7_0/FCLK_CLK0] 产生错误: WARNING: [BD 5-235] No pins matched 'get_bd_pins proc_sys_reset/slowest_sync_clk' WARNING: [BD 41-395] Exec TCL: all ports/pins are already connected to '/processing_system7_0_FCLK_CLK0' ERROR: [BD 5-4] Error: running connect_bd_net. ERROR: [Common 17-39] 'connect_bd_net' failed due to earlier errors.” 11、 注销59行。因为执行第59行 connect_bd_net [get_bd_pins processing_system7_0/FCLK_RESET0_N] [get_bd_pins proc_sys_reset/ext_reset_in] 产生错识 WARNING: [BD 5-235] No pins matched 'get_bd_pins proc_sys_reset/ext_reset_in' ERROR: [BD 41-701] connect_bd_net requires at least two pins/ports, or one pin/port and a net ERROR: [BD 5-4] Error: running connect_bd_net. ERROR: [Common 17-39] 'connect_bd_net' failed due to earlier errors. 12、 回到vivado主菜单file中close project,不保存任何内容。关闭vivado,删除d:/lab4/audio目录。 重新启动vivado后点主菜单中的Tools中的Run Tcl Script…,选中d:/lab4/audio_project_create.tcl,即可自动完成硬件SOC系统的创建,工程项目位于d:/lab4/audio中。 1. 在右上窗口Diagram中右击鼠标选“Validate Design”验证。 2. 进入主菜单File选“Save Block Design”保存创建的系统结构图。 3. 点击左上窗口Design的左下选项Sources,显示项目顶层结构,右击其中的顶层“system(system.bd)(6)”选“Create HDL Wrapper”OK 4. 点击左上窗口Sources中“Constraints”右边的“+”展开,右击constrs_1  Add Sources  Next  点中间的“+”,添加管脚文件d:/lab4/zed_audio_constraints.xdc。(由于新版本的vivado区分大小写字母,所以必须将该文件中的IIC、GPIO换成小写字母iic、gpio) 5. 进入主菜单Flow选Generate BitStream。运行过程中都点OK。 6. 进入主菜单File选Export  Export Hardware…  将“Include Bitstream”左加的框打勾  OK 7. 进入主菜单File选Launch SDK。 在SDK中 1、 进入主菜单File选New  Application Project,在Project Name输入框中输入一个项目命zyzAudio,然后Next进到下一级选空白项目模板Empty Project。 2、 点开左边项目管理窗口中的zyzAudio,右击src后import,选General中的File System,找到d:/lab4目录,将audio.h和testapp.c选中加入项目中。 3、 注销testapp.c包含的头文件 #include “xfir_hw.h 4、 修改滤波器函数filter_or_bypass_input(),注销if(sw_check & 01){…}语句全体,将其后的两条输出语句 Xil_Out32(I2S_DATA_TX_L_REG, u32DataL); Xil_Out32(I2S_DATA_TX_R_REG, u32DataR); 改为 if(sw_check & 01){ Xil_Out32(I2S_DATA_TX_L_REG, u32DataL); Xil_Out32(I2S_DATA_TX_R_REG, u32DataR); }else{ static u32 zyzTest=0; zyzTest += 0x0800; Xil_Out32(I2S_DATA_TX_L_REG, zyzTest<<8); Xil_Out32(I2S_DATA_TX_R_REG, zyzTest<<8); } 5、 进入主菜单Xilinx Tools选Program FPGA,将BitStream.bit下载到板上。 6、 进入主菜单Run选Run Configuration…,然后用GDB运行程序。 7、 运行时,拨动板上的SW0,耳机插入Line Out即可听到声音。如果有音频从Line In输入,也可以听到。
### 回答1: ADAU1701是ADI公司生产的一款数字信号处理器,它主要用于音频信号处理。ADAU1701的主要特点是灵活性和高度可编程性,它通过普通的I²C或SPI接口连接到主机,用户可以通过使用ADI的SigmaStudio工具箱来设计和设置各种各样的数字音频处理算法,从而实现各种不同的音频处理效果。比如,用户可以将ADAU1701用于音频混合、均衡、音量控制、各种音效等等。除此之外,ADAU1701还具有低延迟、低功耗和高抗干扰等优势,因此它被广泛应用于各种音频处理场合,包括便携式音响、汽车音响、家庭影院等等。另外,由于ADAU1701的I²C接口与普通的MCU兼容性较好,因此使用它可以很好地帮助用户快速完成复杂的音频处理任务。 ### 回答2: adau1701是一款数字信号处理器。该DSP芯片内置8个ADC和8个DAC,可处理多达4个输入通道和4个输出通道。它具有低延迟、高保真的特点,在音频处理、音频分析、音频效果等领域有广泛的应用。adau1701还支持外部控制,可通过SPI接口、I2C接口等控制其参数和功能。在高端音频设备中,adau1701是一个非常重要的芯片,能够提供高质量的音频处理和输出,为用户带来非凡的听觉体验。同时,adau1701的控制接口也可以很容易地与其他芯片和设备进行通信,可以实现多种功能。总之,adau1701是一款性能优异、灵活可控的DSP芯片,应用广泛,对于音频领域的技术人员以及从事音频设备生产的企业而言,是必不可少的工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜风~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值