资料介绍
Table of Contents
ADAU1701 Sound Audio System Linux Driver
Supported Devices
Reference Circuits
Evaluation Boards
Description
ADAU1701 is a SigmaDSP with DACs and ADCs,and support both analog and digital inputs/outputs(I2S). This driver is intended to drive ADAU1701 through I2S, so we adapt it into ASoC framework and treat it as an audio codec, also it needs to include firmware loading function to download firmware blob at the initializing time.
Source Code
Status
Files
Function | File |
---|---|
driver | sound/soc/codecs/adau1701.c |
include | sound/soc/codecs/adau1701.h |
Example platform device initialization
Below is an example which is used on Blackfin board file.
static struct i2c_board_info __initdata bfin_i2c_board_info[] = { [--snip--] #if defined(CONFIG_SND_SOC_ADAU1701) || defined(CONFIG_SND_SOC_ADAU1701_MODULE) { I2C_BOARD_INFO("adau1701", 0x34), }, #endif [--snip--] }
static int __init stamp_init(void) { [--snip--] i2c_register_board_info(0, bfin_i2c_board_info, ARRAY_SIZE(bfin_i2c_board_info)); [--snip--] return 0; } arch_initcall(board_init);
ASoC DAPM widgets
Name | Description |
---|---|
OUT0 | VOUT0 DAC Output |
OUT1 | VOUT1 DAC Output |
OUT2 | VOUT2 DAC Output |
OUT3 | VOUT3 DAC Output |
IN0 | Analog Audio Input 0 (ADC0) |
IN1 | Analog Audio Input 1 (ADC1) |
ALSA controls
Name | Description |
---|---|
Master Capture Switch | Mute/Unmute the ADCs |
DAI Configuration
The CODEC driver register one DAI called “adau1701”.
Supported DAI formats
Name | Supported by driver | Description |
---|---|---|
SND_SOC_DAIFMT_I2S | yes | I2S mode |
SND_SOC_DAIFMT_RIGHT_J | yes | Right Justified mode |
SND_SOC_DAIFMT_LEFT_J | yes | Left Justified mode |
SND_SOC_DAIFMT_DSP_A | no | data MSB after FRM LRC |
SND_SOC_DAIFMT_DSP_B | no | data MSB during FRM LRC |
SND_SOC_DAIFMT_AC97 | no | AC97 mode |
SND_SOC_DAIFMT_PDM | no | Pulse density modulation |
SND_SOC_DAIFMT_NB_NF | yes | Normal bit- and frameclock |
SND_SOC_DAIFMT_NB_IF | yes | Normal bitclock, inverted frameclock |
SND_SOC_DAIFMT_IB_NF | yes | Inverted frameclock, normal bitclock |
SND_SOC_DAIFMT_IB_IF | yes | Inverted bit- and frameclock |
SND_SOC_DAIFMT_CBM_CFM | yes | Codec bit- and frameclock master |
SND_SOC_DAIFMT_CBS_CFM | no | Codec bitclock slave, frameclock master |
SND_SOC_DAIFMT_CBM_CFS | no | Codec bitclock master, frameclock slave |
SND_SOC_DAIFMT_CBS_CFS | yes | Codec bit- and frameclock slave |
Sysclk Configuration
The sysclk source can be either be generated using the internal oscillator and an external crystal, or can come from an external clock signal.
enum adau1701_clk_src { ADAU1701_CLK_SRC_OSC, ADAU1701_CLK_SRC_MCLK, };
The sysclk rate is configured using the PLL_MODE0 and PLL_MODE1 pins. Though for completeness it should also be passed to snd_soc_dai_set_sysclk.
Example DAI Configuration
static int bfin_eval_adau1701_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = rtd->cpu_dai; struct snd_soc_dai *codec_dai = rtd->codec_dai; int ret; ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM); if (ret) return ret; ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM); if (ret) return ret; ret = snd_soc_dai_set_sysclk(codec_dai, ADAU1701_CLK_SRC_OSC, 12288000, SND_SOC_CLOCK_IN); return ret; } static struct snd_soc_ops bfin_eval_adau1701_ops = { .hw_params = bfin_eval_adau1701_hw_params, }; static struct snd_soc_dai_link bfin_eval_adau1701_dai = { .name = "adau1701", .stream_name = "adau1701", .cpu_dai_name = "bfin-i2s.0", .codec_dai_name = "adau1701", .platform_name = "bfin-i2s-pcm-audio", .codec_name = "adau1701.0-0034", .ops = &bfin_eval_adau1701_ops, };
Generate the firmware file
In order to use the SigmaDSP core of the ADAU1701 you need to provide a firmware file. Please refer to the SigmaDSP Firmware Utility for Linux page on how to generate a firmware file. The firmware file for ADAU1701 driver has to be named adau1701.bin.
ADAU1701 evaluation board driver
There is no dedicated Blackfin STAMP evaluation board for the ADAU1701. During test and driver development we used the EVAL-ADAU1701MINIZ board.
It can be easily wired to the Blackfin STAMP SPORT header.
Source Code
Status
Files
Function | File |
---|---|
driver | sound/soc/blackfin/bfin-eval-adau1701.c |
Kernel configuration
Device Drivers ---> [*] I2C support ---> [*] I2C Hardware Bus support ---> *** I2C system bus drivers (mostly embedded / system-on-chip) *** <*> Blackfin TWI I2C support (100) Blackfin TWI I2C clock (kHz)
Enable ALSA SoC evaluation board driver:
Device Drivers --->Sound card support ---> Advanced Linux Sound Architecture ---> ALSA for SoC audio support ---> Support for the EVAL-ADAU1701 boards on Blackfin eval boards
Hardware configuration
TODO
Driver testing
Load the driver and make sure the sound card is properly instantiated.
This specifies any shell prompt running on the target
root:/> modprobe snd-bf5xx-i2s root:/> modprobe snd-soc-bf5xx-i2s root:/> modprobe snd-soc-adau1701 root:/> modprobe snd-soc-bfin-eval-adau1701 dma rx:3 tx:4, err irq:45, regs:ffc00800 asoc: ADAU1701 <-> bf5xx-i2s mapping ok
This specifies any shell prompt running on the target
root:/> modprobe snd-pcm-oss root:/> tone TONE: generating sine wave at 1000 Hz... root:/> arecord -f cd | aplay Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
More information
- 用于Raspberry Pi的高分辨率流媒体(ADAU1701与TPA3255)
- 基于EVAL-ADAU1701MINIZ音频处理器的参考设计
- CN0162 通过ADAU1701 SigmaDSP编解码器、低功耗SSM2306 D类放大器和ADP3336 LDO调节器实现模拟音频输入、D类输出
- AD1836声音Linux漂流器
- ADAU1361声音编解码器Linux驱动程序
- SM2602声音Linux漂流器
- ADAU1977声音Linux漂流器
- ADAU第1373声音编解码器Linux驱动程序
- ADAU1781声音编解码器Linux驱动程序
- SM2518声音Linux漂流器
- ADAU1701:带两个ADC和四个DAC的SigmaDSP 28/56位音频处理器产品手册
- 基于EVAL-ADAU1701EB音频处理器的参考设计
- adau1701开发板原理图高清版免费下载 0次下载
- adau1701原文资料数据手册PDF免费下载(音频处理器) 64次下载
- 在自引导模式下使用ADAU1701_ADAU1702设计系统 149次下载
- 环绕声系统的基本概念、主要类型及关键技术 233次阅读
- 立体声音频放大器电路图分享 2159次阅读
- 立体声放大器电路图分享 4250次阅读
- 沉浸式音频的未来:计算机视觉辅助下的声音重现 1171次阅读
- 使用可视音频设计高效、实时的音频系统 843次阅读
- 最大限度地减少音频系统中模拟开关的总谐波失真 1878次阅读
- 如何实现音频系统的2路扬声器箱设计 1502次阅读
- 基于USound公司的先进个人MEMS技术应用音频系统 3218次阅读
- 单芯片音频系统ADAU1401的特点性能及应用电路 6888次阅读
- 低功耗24位立体声编译码器ADAU1781的主要特性及应用 2849次阅读
- 以数字音频系统为例介绍音频系统的构建 4503次阅读
- 拾音器是干什么用的_拾音器和麦克风的区别 5.4w次阅读
- linux系统数字音频设备的OSS和ALSA驱动结构分析(完整代码) 2778次阅读
- 拾音器和话筒分别有什么优势 2.2w次阅读
- adau1701的优点及缺点分析 1.9w次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多