資料介紹
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次閱讀
下載排行
本周
- 1HFSS電磁仿真設計應用詳解PDF電子教程免費下載
- 24.30 MB | 128次下載 | 1 積分
- 2雷達的基本分類方法
- 1.25 MB | 4次下載 | 4 積分
- 3電感技術講解
- 827.73 KB | 2次下載 | 免費
- 4從 MSP430? MCU 到 MSPM0 MCU 的遷移指南
- 1.17MB | 2次下載 | 免費
- 5有源低通濾波器設計應用說明
- 1.12MB | 2次下載 | 免費
- 6RA-Eco-RA2E1-48PIN-V1.0開發板資料
- 35.59 MB | 2次下載 | 免費
- 7面向熱插拔應用的 I2C 解決方案
- 685.57KB | 1次下載 | 免費
- 8愛普生有源晶體振蕩器SG3225EEN應用于儲能NPC、新能源
- 317.46 KB | 1次下載 | 免費
本月
- 12024年工控與通信行業上游發展趨勢和熱點解讀
- 2.61 MB | 763次下載 | 免費
- 2HFSS電磁仿真設計應用詳解PDF電子教程免費下載
- 24.30 MB | 128次下載 | 1 積分
- 3繼電保護原理
- 2.80 MB | 36次下載 | 免費
- 4正激、反激、推挽、全橋、半橋區別和特點
- 0.91 MB | 32次下載 | 1 積分
- 5labview實現DBC在界面加載配置
- 0.57 MB | 21次下載 | 5 積分
- 6在設計中使用MOSFET瞬態熱阻抗曲線
- 1.57MB | 15次下載 | 免費
- 7GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 14次下載 | 免費
- 8AD18學習筆記
- 14.47 MB | 8次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935113次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191360次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81578次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73804次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多