📄 lh79524_sdk_audio_driver.h
字号:
/***********************************************************************
* $Workfile: lh79524_sdk_audio_driver.h $
* $Revision: 1.0 $
* $Author: ZhangJ $
* $Date: Oct 20 2004 09:37:02 $
*
* Project: LH79524 audio driver
*
* Description:
* This file contains driver support for the audio on SDK79520
*
* Revision History:
* $Log: //smaicnt2/pvcs/VM/sharpmcu/archives/sharpmcu/software/csps/lh79524/bsps/sdk79524/include/lh79524_sdk_audio_driver.h-arc $
*
* Rev 1.0 Oct 20 2004 09:37:02 ZhangJ
* Initial revision.
*
*
*
***********************************************************************
* SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
* OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
* AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES,
* SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
*
* SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY
* FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A
* SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE
* FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
*
* COPYRIGHT (C) 2003 SHARP MICROELECTRONICS OF THE AMERICAS, INC.
* CAMAS, WA
**********************************************************************/
#ifndef LH79524_SDK_AUDIO_DRIVER_H
#define LH79524_SDK_AUDIO_DRIVER_H
#ifdef __cplusplus
extern "C" {
#endif
/***********************************************************************
* TI TLV320DAC23 stereo audio chip definition
**********************************************************************/
#define REG_LEFT_CONTROL (0x0)
#define REG_RIGHT_CONTROL (0x1)
#define REG_LEFT_VOL (0x2)
#define REG_RIGHT_VOL (0x3)
#define REG_ANALOG_PATH (0x4)
#define REG_DIGITAL_PATH (0x5)
#define REG_POWER_DOWN (0x6)
#define REG_DIGITAL_FORMAT (0x7)
#define REG_SAMPLE_RATE (0x8)
#define REG_DIGITAL_ACTIVATION (0x9)
#define REG_RESET (0xf)
#define REG_LEFT_CONTROL_DEFAULT (0x080)
#define REG_RIGHT_CONTROL_DEFAULT (0x080)
#define REG_LEFT_VOL_DEFAULT (0x0f9)
#define REG_RIGHT_VOL_DEFAULT (0x0f9)
#define REG_ANALOG_PATH_DEFAULT (0x01a)
#define REG_DIGITAL_PATH_DEFAULT (0x000)
#define REG_POWER_DOWN_DEFAULT (0x03f)
#define REG_DIGITAL_FORMAT_DEFAULT (0x001)
#define REG_SAMPLE_RATE_DEFAULT (0x000)
#define REG_DIGITAL_ACTIVATION_DEFAULT (0x000)
#define REG_RESET_DEFAULT (0x000)
/***********************************************************************
* Audio device configuration structure
**********************************************************************/
/* type definition for digital audio de-emphasis */
typedef enum
{
DE_EM_DISABLE,
DE_EM_32KHZ,
DE_EM_44KHZ,
DE_EM_48KHZ
}DE_EMPHASIS_T;
/* type definition for audio data format */
typedef enum
{
FORMAT_MSB_RIGHT,
FORMAT_MSB_LEFT,
FORMAT_I2S,
FORMAT_DSP
}DATA_FORMAT_T;
/* Audio chip configuration operation type */
typedef enum
{
LEFT_LINE_SIMU_UPDATE,
/* left line simultaneous volume/mute update,
arg = 1 enable, arg = 0 disable */
RIGHT_LINE_SIMU_UPDATE,
/* right line simultaneous volume/mute update
arg = 1 enable , arg = 0 disable */
LEFT_LINE_INPUT_MUTE,
/* left line input is muted, arg = 1 mute,
arg = 0 normal */
RIGHT_LINE_INPUT_MUTE,
/* right line input is muted, arg = 1 mute,
arg = 0 normal */
LEFT_HEADPHONE_SIMU_UPDATE,
/* left headphoine channel simultaneous volume
mute update, arg = 1 enable, arg = 0 disable */
RIGHT_HEADPHONE_SIMU_UPDATE,
/* right headphone channel simultaneous volume
mute update, arg = 1 enable, arg = 0 disable */
LEFT_CHANNEL_ZERO_CROSS_DETECT,
/* turn on left channel zero-crsoo detect
arg = 1 turn on, arg = 0 turn off */
RIGHT_CHANNEL_ZERO_CROSS_DETECT,
/* turn on right channel zero-crsoo detect
arg = 1 turn on, arg = 0 turn off */
LEFT_HEADPHONE_VOL,
/* Set left channel volume - arg = input db from
+6 dB to -73 dB. -73 dB is mute, +6 dB is loudest */
RIGHT_HEADPHONE_VOL,
/* Set right channel volume - arg = input db from
+6 dB to -73 dB. -73 dB is mute, +6 dB is loudest */
ANALOG_AUDIO_DAC,
/* turn on analog audio dac, arg = 1 turn on
arg = 0 turn off */
ANALOG_AUDIO_BYPASS,
/* Enable analog audio bypass, arg = 1 enable,
arg = 0 disable */
DIGITAL_AUDIO_DAC_SOFT_MUTE,
/* Enable digital audio dac soft mute, arg = 1 mute,
arg = 0 normal */
DIGITAL_AUDIO_DE_EMPHASIS,
/* Set Digital audio de-emphasis, arg = DE_EM_DISABLE disable,
arg = DE_EM_32KHZ 32Khz, arg = DE_EM_44KHZ 44.1khz,
arg = DE_EM_48KHZ 48khz */
POWER_ON,
/* Turn on power, arg = 1 turn on,
arg = 0 turn off */
CLOCK_ON,
/* Turn on clock, arg = 1 turn on,
arg = 0 turn off */
OSCILLATOR_ON,
/* Turn on oscillator, arg = 1 turn on,
arg = 0 turn off */
OUTPUTS_ON,
/* Turn on output, arg = 1 turn on,
arg = 0 turn off */
DAC_ON,
/* Turn on DAC, arg = 1 turn on,
arg = 0 turn off */
LINE_INPUT_ON,
/* Turn on Line input, arg = 1 turn on,
arg = 0 turn off */
DIGITAL_MASTER_MODE,
/* Set as master mode, arg = 1 master mode,
arg = 0 slave mode */
DIGITAL_DAC_LEFT_RIGHT_SWAP,
/* Enable DAC left/right swap, arg = 1 enable,
arg = 0 disable.*/
DIGITAL_DAC_LEFT_RIGHT_PHASE,
/* arg = 1 DAC left/right phase - Right channel on,
LRCIN low. arg = 0 DAC left/right phase -
Right channel on, LRCIN high */
DIGITAL_INPUT_BIT_LENGTH,
/* Input bit length. arg = 16, 16 bit. arg = 20,
20 bit. arg = 24, 24bit. arg = 32, 32bits */
DIGITAL_DATA_FORMAT,
/* arg == FORMAT_MSB_RIGHT, Data format is MSB first, right aligned */
/* arg == FORMAT_MSB_LEFT, Data format is MSB first, left aligned */
/* arg == FORMAT_I2S, Data format is I2S format */
/* arg == FORMAT_DSP, Data format is DSP format, frame sync followed
by two data words */
CLOCK_OUTPUT_DIVIDER,
/* Sample rate clock output divider. arg = 1 MCLK/2
arg = 0 MCLK */
CLOCK_INPUT_DIVIDER,
/* Sample rate clock input divider. arg = 1 MCLK/2
arg = 0 MCLK */
SAMPLE_RATE_VALUE,
/* Set SR3, SR2, SR1 and SR0 value - arg
represents SR3 to SR0 */
BASE_OVERSAMPLING_RATE,
/* arg = 1, Base oversampling rate - USB mode, 272fs
Normal mode, 384fs */
/* arg = 0, Base oversampling rate - USB mode, 250fs
Normal mode, 256fs */
USB_NORMAL_MODE,
/* Clock mode select. arg = 1 USB mode.
arg = 0 Normal mode */
DIGITAL_ACTIVATE_INTERFACE,
/* Digital interface active. arg = 1 active. arg = 0
inactive */
RESET_CHIP,
/* RESET the chip. arg = 1 reset the chip */
SDK79520_SAMPLE_RATE_CONTROL
/* Configuring the sampling rate according to
SDK79520 crystal value, see SDK_SAMPLE_T */
} AUDIO_ACTION_T;
/* Audio sampling rate pre defined value type */
typedef enum
{
SAMPLE_48_KHZ, /* 48 khz */
SAMPLE_44P1_KHZ, /* 44.1 khz */
SAMPLE_32_KHZ, /* 32 khz */
SAMPLE_24_KHZ, /* 24 khz */
SAMPLE_22P05_KHZ, /* 22.05 khz */
SAMPLE_16_KHZ, /* 16 khz */
SAMPLE_12_KHZ, /* 12 khz */
SAMPLE_11P025_KHZ, /* 11.025 khz */
SAMPLE_8_KHZ, /* 8 kzh */
SAMPLE_4_KHZ, /* 4 khz */
SAMPLE_2_KHZ /* 2 khz */
}SDK_SAMPLE_T;
/***********************************************************************
* Audio driver functions
**********************************************************************/
/* Send configuration command throught CPLD SPI interface */
INT_32 audio_tl320dac23_configuration(AUDIO_ACTION_T action, INT_32 arg);
/* Configure the audio chip */
void audio_tl320dac23_configure(SDK_SAMPLE_T sample_rate);
#ifdef __cplusplus
}
#endif
#endif /* LH79520_SDK_AUDIO_DRIVER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -