⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _stv82x7.h.svn-base

📁 最新火热的CX32 源代码
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
/************************************************************************************
COPYRIGHT (C) STMicroelectronics 2005. All rights reserved.
This document contains proprietary and confidential information of the
STMicroelectronics Group. This document is not to be copied in whole orpart.
STMicroelectronics assumes no responsibility for the consequences of use of such
information nor for any infringement of patents or other rights of third
parties which may result from its use. No license is granted by implication or
otherwise under any patent or patent rights of STMicroelectronics.
STMicroelectronics products are not authorized for use as critical components in life
support devices or systems without express written approval of STMicroelectronics.
*************************************************************************************/
/*!
\defgroup STV82X7_INTRO STV82X7 Description
\date 10/10/2005
\author Steven CHEN - ST China

\par Introduction
This document describes the API of the STV82X7's sound module.

It handles the various features of the device: 
the Audio Switching, the Sound Demodulation, the Automatic Standard Recognition and 
all the Audio Processing.

The S/W is able to control a single STV82X7 device only, that is fitted for the 8 or 16 bits processor
to do S/W integration  and I2C Communication.
The developer uses polling rather than interrupt handling in order to be
informed about standard modification of the input IF signal.

The S/W will be built according to the value of the target platform as defined by the each STV82X7 families.
Several definition must be defined by the header file as bellow :
	_50KHZ_COEFFICIENT_FILTER_USED_
	_75KHZ_COEFFICIENT_FILTER_USED_
	_100KHZ_COEFFICIENT_FILTER_USED_
	_MN_27KHZ_COEFFICIENT_FILTER_USED_
	_MN_50KHZ_COEFFICIENT_FILTER_USED_
	_MN_75KHZ_COEFFICIENT_FILTER_USED_
	SUPPROT_I2S_FUNCTION
	_SUPPROT_OVER_STV8257_
	
AGC_GAIN, Volume, EQ, Balance and Prescale  values have to be adjusted on the each chassis.

\par Abbreviation
<ul>
	<li><STRONG>API</STRONG> ... Application Programming Interface </li>
	<li><STRONG>DSP</STRONG> ... Digital Signal Processor </li>
	<li><STRONG>SVC</STRONG> ... Smart Volume Control </li>
</ul>

\par Using The API
In order to use the STV82X7 , it must first be initiated, using the STV82X7_Initialise() function. During this
	call, all required resources are allocated (this call is done by the system supervisor) and main processor
	executes H/W reset.
Also S/W reset is executed by STV82X7_Initialise(), at that time all register values returns to reset values.
During this function call, this function will update patch through I2C's communication. 
After that, DSP block will be initialized by function call and it will be started.
After that, system developer wants to wide coefficient filter values( 75, 100 KHz ), this function executes 
	coefficient function in order to update new coefficient filter value, also  system developer must define Mecro
	to use wide coefficient filter values.
After that, some register values will be updated by STV82X7_InitRegister() in order to adjust
Volume, FM Time Out, Prescale, AGC Value, EQ, SRS Control and Pseudo effect.

System developer can use STV82X7_SetCenterVolume(), STV82X7_SetSurroundLeftVolume(), STV82X7_SetSurroundRightVolume(),
	STV82X7_SetHPLeftVolume(), STV82X7_SetHPRightVolume(), STV82X7_SetMasterVolume(), STV82X7_SetLeftScartVolume(),
	STV82X7_SetRightScartVolume(), STV82X7_SetLeftVolume() and STV82X7_SetRightVolume() in order to control each volumes.
System developer can use STV82X7_SetDigitalMute(), STV82X7_SetDigitalUnMute(), STV82X7_SetAutoSTDMute(),
	STV82X7_SetAutoSTDUnMute(), STV82X7_SetDACMute(), STV82X7_SetDACUnMute(), STV82X7_SetScartDigitalMute() and
	STV82X7_SetScartDigitalUnMute() in order to control each mute.
System developer can use STV82X7_SetVolumeMode() in order to control volume mode.
System developer can use STV82X7_ScartOutBalance(), STV82X7_SetLSBalance(), STV82X7_SetSurroundBalance
	and STV82X7_SetHPBalance() in order to control each balance.
System developer can use STV82X7_SetHPConfiguration() in order to control Head Phone.
System developer can use STV82X7_SetSubWoofer() in order to control Sub-Woofer.
System developer can use STV82X7_SetPinkNoiseGenerator() in order to generate Pink Noise.
System developer can use STV82X7_SetFMAMTimeOut() in order to set FM searching time out.
System developer can use STV82X7_SetNicamTimeOut() in order to set Nicam searching time out.
System developer can use STV82X7_SetZWTTimeOut() in order to set ZWT searching time out.
System developer can use STV82X7_SetScartDefaultPrescale(), STV82X7_SetFMAMDefaultPrescale() and
	STV82X7_NicamDefaultPrescale() in order to set prescale value for each sound system
System developer can use STV82X7_SetEqualizerValue() in order to set equalizer value.
System developer can use STV82X7_ControlTurboSound() in order to set loudness.
System developer can use STV82X7_AutoVolumeCtrl() in order to control auto volume.
System developer can use STV82X7_GetNicamWeakSignal() in order to control weak signal for Nicam.
System developer can use STV82X7_SetNicamMAE() in order to control MAE for Nicam.
System developer can use STV82X7_SetNicamSearchMode() in order to control search mode for Nicam.
System developer can use STV82X7_SetOutput_RFConfig() in order to control SIF channel matrix.
System developer can use STV82X7_SetInOutput_ScartConfig() in order to control scart channel matrix.
System developer can use STV82X7_CheckElectricalShock() in order to execute refresh.
System developer can use STV82X7_ChannelChanged() in order to execute channel change.
System developer can use STV82X7_AutoSearch() in order to execute channel change.
System developer can use STV82X7_ForcedSoundSystem() in order to set special sound system.
System developer can use STV82X7_SetAGCValue() in order to set AGC Value.
System developer can use STV82X7_ForcedMono() in order to force to play Mono.
System developer can use STV82X7_ReturnToStereoFromMono() in order to return to Stereo.
System developer can use STV82X7_DualLanguageSelection() in order to set Language.
System developer can use STV82X7_GetNicamSoundMode() in order to get Nicam sound mode.
System developer can use STV82X7_GetSoundSignalState() in order to get FM sound mode.
System developer can use STV82X7_GetSoundSystem() in order to get sound system.
System developer can use STV82X7_SetSoundSystem() in order to set sound system.
System developer can use STV82X7_SetI2SInOut() and STV82X7_SetI2SOutputSignal() in order to contorl I2S in & output.

\par Dependencies
Patch.h

\par History
Version   1.0.0	:	06/May/2005 - Young OH - (ST Korea) \n
Version   1.0.1	:	20/May/2005 - Young OH - (ST Korea) \n
						Modify		:	Return values.
										STV82X7_InitRegister().
										STV82X7_SetAGCValue().
						Compile		:	Under visual C++
						
Version   1.0.2	:	30/May/2005 - Young OH - (ST Korea) \n
						Add			:	Coefficients filter values for 27 KHz, 75 KHz and 100 KHz mode.
										Coefficients filter values for MN system.
										STV82X7_GetNicamWeakSignal()
										STV82X7_SetNicamMAE()
										STV82X7_SetI2SInOut()
										STV82X7_SetI2SOutputSignal()
										STV82X7_SetSRS_InputMode()
										STV82X7_SetSRS_TRUBASS()
						Modify		:	STV82X7_CheckElectricalShock()
											--> Add IRQ3 for electrical shocking test.
										STV82X7_InitRegister()
											--> Add STV82X7_SetNicamMAE()
						
Version   1.0.3	:	03/Jun/2005 - Young OH - (ST Korea) \n
						Add			:	STV82X7_SetScartVolumeMode()
										STV82X7_SetNicamTimeOut()
										STV82X7_SetZWTTimeOut()
										STV82X7_SetAVDelay()
										STV82X7_SetHPLeftVolume()
										STV82X7_SetHPRightVolume()
										STV82X7_SetDynamicBass()
										STV82X7_SetHPConfiguration()
										STV82X7_GetHPStatus()
										STV82X7_SetPinkNoiseGenerator()

						Modify		:	STV82X7_GetSoundSignalState()
										STV82X7_ControlTurboSound()
										STV82X7_AutoVolumeCtrl()
											--> Add Ramp-Up algorism
										Patch Data to Version 03
Version   1.0.4	:	08/Jun/2005 - Young OH - (ST Korea) \n
						Add			:	STV82X7_SetSurroundBalance()
						Modify		:	STV82X7_SetSoundSystem()
										STV82X7_SetHPBalance()
										STV82X7_SetLSBalance()
										STV82X7_ScartOutBalance()
										STV82X7_SetDefaultCoefficientValues()
					
Version   1.0.5	:	20/Jun/2005 - Young OH - (ST Korea) \n
						Add			:	STV82X7_AMShiftDirection()
										--> Improved field problem in France.
										--> Definition
										For Window S/W
										--> Definition
										V04 Patch
						Modify		:	STV82X7_AutoSearch()
										--> STV82X7_SetDefaultCoefficientValues() == > STV82X7_SetWideCoefficientValues()
										STV82X7_SetNicamSearchMode();
										--> Definition
										STV82X7_SetOutput_RFConfig();
										STV82X7_SetInOutput_ScartConfig();
										STV82X7_PlayBeeperSound();
					
Version   1.0.6	:	12/Jul/2005 - Young OH - (ST Korea) \n
						Add			:	STV82X7_SetScartDACMute()
										STV82X7_SetScartDACUnMute()
										STV82X7_SetSRSTRS_DolbyPro1_Effect()
										--> New function
						Modify		:	STV82X7_SetAVDelay()
										STV82X7_SetSoundSystem()
										STV82X7_SetFMAMDefaultPrescale()
										--> always set AM prescale to AM_PRESCALING_SECAM_L.
										STV82X7_SetPseudoEffect()
										--> not directly read register, call STV82X7_SetSRS_InputMode()'s function.
										STV82X7_SetSRSEffect()
										--> change function name : STV82X7_SetSRSWOW_Effect()
										STV82X7_SetI2SInOut()
										--> change function name : STV82X7_SetI2SOutput()
										STV82X7_WaitUpdateCoefficient()
						Delete		:	STV82X7_SetSRSGain()
										--> no more need, STV82X7_SetSRS_InputMode()'s function sets SRS-Gain in stead of STV82X7_SetSRSGain().

Version 1.0.3(China)  :   10/Oct/2005 - Steven CHEN - (ST Shenzhen) \n	
						Add			:	STV82X7_I2CFieldGetValue()
										STV82X7_I2CFieldUpdate()
										STV82X7_MuteSet()
										STV82X7_VolumeSet()
										STV82X7_BalanceSet()
										STV82X7_SoundStandardGet()
										DVAUD_LanguageSet()
										STV82X7_ConfigurationChange();
										STV82X7_2Chs_I2SAutoLock();
										--> New function
										
						Modify		:	
										STV82X7_UpdatePatchData()
										-->Simplify the Patch version control.
										STV82X7_I2CDataMaskWrite()
										-->Improved the i2c data mask write function.	
										Removed the I2C error return check.						

*/					
/*!
\defgroup STV82X7 STV82X7
*/
#ifndef _STV82X7_H	 
#define _STV82X7_H
//#define 	SUPPROT_I2S_FUNCTION

/*PC_DEBUG_MODE: PC Visual C++ debug mode. If defined PC_DEBUG_MODE, "stdafx.h" 
must be included in other DVAUD\*.cpp files should be enabled.*/
//#define PC_DEBUG_MODE 

#define kSTV82X7_Address 0x80

/*!
\ingroup STV82X7
Specifies coefficient filter values for BG, I, DK.
*/
#define _75KHZ_COEFFICIENT_FILTER_USED_

/*!
\ingroup STV82X7
Specifies coefficient filter values for MN.
*/
#define _MN_27KHZ_COEFFICIENT_FILTER_USED_


//*******************************************************
//             Register Define
//*******************************************************

/*STV82X7 CUT2 Register defines----------------------------*/

//-- IC General Control ---------------------------------
#define kCUT_IDReg        		  		 0x00
#define kRESETReg					 0x01
#define kI2S_CTRLReg				 0x04
#define kI2S_STATReg				 0x05
#define kI2S_SYNC_OFFSETReg 		 0x06

//--- Clocking 1 ---------------------------------------
#define kSYS_CONFIGReg			  	 0x07
#define kFS1_DIVReg					 0x08
#define kFS1_MDReg					 0x09
#define kFS1_PE_HReg					 0x0A
#define kFS1_PE_LReg					 0x0B

//--- Demodulator --------------------------------------
#define kDEMOD_CTRLReg			 	0x0C
#define kDEMOD_STATReg				0x0D
#define kAGC_CTRLReg				0x0E
#define kAGC_GAINReg					0x0F
#define kDC_ERR_IFReg				0x10

//--- Demodulator Channel 1 ----------------------------
#define kCARFQ1HReg				 0x12
#define kCARFQ1MReg				 0x13
#define kCARFQ1LReg				 0x14
#define kFIR1C0Reg					 0x15
#define kFIR1C1Reg					 0x16
#define kFIR1C2Reg				 	 0x17
#define kFIR1C3Reg					 0x18
#define kFIR1C4Reg					 0x19
#define kFIR1C5Reg					 0x1A
#define kFIR1C6Reg					 0x1B
#define kFIR1C7Reg				 	 0x1C
#define kACOEFF1Reg				 0x1D
#define kBCOEFF1Reg				 0x1E
#define kCRF1Reg						0x1F
#define kCETH1Reg					 0x20
#define kSQTH1Reg				 	 0x21
#define kCAROFFSET1Reg			 0x22

//--- Demodulator Channel 2 ----------------------------
#define kIAGCRReg					 0x25
#define kIAGCCReg					 0x26
#define kIAGCSReg					 0x27
#define kCARFQ2HReg				  0x28
#define kCARFQ2MReg				 0x29
#define kCARFQ2LReg				 0x2A
#define kFIR2C0Reg					 0x2B
#define kFIR2C1Reg					 0x2C
#define kFIR2C2Reg					 0x2D
#define kFIR2C3Reg					 0x2E
#define kFIR2C4Reg					 0x2F
#define kFIR2C5Reg					 0x30
#define kFIR2C6Reg					 0x31
#define kFIR2C7Reg				 	 0x32
#define kACOEFF2Reg				 0x33
#define kBCOEFF2Reg				 0x34
#define kSCOEFFReg				 0x35
#define kSRFReg					 0x36
#define kCRF2Reg					 0x37
#define kCETH2Reg					 0x38
#define kSQTH2Reg					 0x39
#define kCAROFFSET2Reg			 0x3A

//--- Nicam --------------------------------------------
#define kNICAM_CTRLReg			 0x3D
#define kNICAM_BERReg			 	 0x3E
#define kNICAM_STATReg			 0x3F

//--- Stereo FM (kzweiton00) ------------------------------
#define kZWT_CTRLReg				 0x40
#define kZWT_TIMEReg				 0x41
#define kZWT_STATReg				 0x42

//--- Analog Control -----------------------------------
#define kADC_CTRLReg				 	 0x56
#define kSCART1_2_OUTPUT_CTRLReg	 0x57
#define kSCART3_OUTPUT_CTRLReg		 0x58

//--- Cloc#define king 2 ---------------------------------------
#define kFS2_DIVReg					 0x5A
#define kFS2_MDReg					 0x5B
#define kFS2_PE_HReg				 	 0x5C
#define kFS2_PE_LReg					 0x5D

//--- DSP Control --------------------------------------
#define kHOST_CMDReg					 0x80
#define kIRQ_STATUSReg				 0x81
#define kSOFT_VERSIONReg				 0x82
#define kONCHIP_ALGOSReg			 	 0x83
#define kDSP_STATUSReg				 0x84
#define kDSP_RUNReg					 0x85
#define kI2S_IN_CONFIGReg				 0x86
#define kI2S_IN_SHIFT_RIGHTReg			 0x87
#define kI2S_IN_MASKReg			 	 0x88
#define kAV_DELAYReg					 0x89

//--- Automatic Standard Recognition System ------------
#define kAUTOSTD_CTRLReg					 0x8A
#define kAUTOSTD_STANDARD_DETECTReg	 0x8B
#define kAUTOSTD_STEREO_DETECTReg		 0x8C
#define kAUTOSTD_TIMERSReg		 		 0x8D
#define kAUTOSTD_STATUSReg				 0x8E

//--- Audio Preprocessing & Selection ------------------
#define kDC_REMOVAL_INPUTReg				 0x90
#define kDC_REMOVAL_LReg					 0x91
#define kDC_REMOVAL_RReg					 0x92
#define kPRESCALE_SELECTReg		 		 0x93
#define kPRESCALE_AMReg					 0x94
#define kPRESCALE_FMReg					 0x95
#define kPRESCALE_NICAMReg				 0x96
#define kPRESCALE_SCARTReg				 0x97
#define kPRESCALE_I2S_1Reg		 		 0x98
#define kPRESCALE_I2S_2Reg				 0x99
#define kPRESCALE_I2S_3Reg				 0x9A
#define kDEEMPHASIS_DEMATRIXReg			 0x9B

#define kPEAK_DET_INPUTReg				 0x9D
#define kPEAK_DET_LReg			 	 0x9E
#define kPEAK_DET_RReg				 0x9F
#define kPEAK_DET_L_RReg				 0xA0

//--- Matrixing ----------------------------------------
#define kAUDIO_MATRIX_INPUTReg		 0xA2 	
#define kAUDIO_MATRIX_CONFIGReg		 0xA3 	
#define kAUDIO_MATRIX_LANGUAGEReg		 0xA4 	

#define kDOWNMIX_IN_MODEReg			 0xA6 	
#define kDOWNMIX_OUT_MODEReg			 0xA7 	
#define kDOWNMIX_DUAL_MODEReg		 0xA8 	
#define kDOWNMIX_CONFIGReg			 0xA9 	

//--- Audio Processing ---------------------------------
#define kPRO_LOGIC_CONTROLReg		 0xAA 	
#define kPCM_SRND_DELAYReg			 0xAB 	
#define kPCM_CENTER_DELAYReg			 0xAC 	
#define kPRO_LOGIC2_CONFIGReg		 0xAD 	
#define kPRO_LOGIC2_DIMENSIONReg		 0xAE 	
#define kPRO_LOGIC2_LEVELReg			 0xAF 	
#define kNOISE_GENERATORReg			 0xB0 	
#define kTRUSRNDXT_CONTROLReg		 0xB1 	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -