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

📄 iis.h

📁 samsung 最新芯片2450 的测试程序.
💻 H
字号:
#ifndef __IIS_H__
#define __IIS_H__

#include "codec.h"

#ifdef __cplusplus
extern "C" {
#endif



#define PLAY_IIS    0	//init1341 mode
#define RECORD_MIC_IN  1
#define RECORD_LINE_IN 2 
#define RECORD_PLAY_SIM 3



#define	I2S_PORT0	0//I2S_PORT
#define I2S_PORT1   1//

#define I2S_PCLK	0//CLK_SRC
#define I2S_EPLL	1
#define I2S_EXTCLK	2
#define I2S_EPLLREF	3
#define I2S_NOFORSLAVE	4



#define	I2S_MASTER	0//I2S_OPMODE IMS[1]
#define I2S_SLAVE  1

#define I2S_DMA		0//I2S_DMAPOLLING
#define I2S_POLLING	1


#define I2S_IMS_PCLK	0//IMS[0]
#define I2S_IMS_I2SCLK	1


#define I2S_MODE_TX	0//I2S_TXR
#define I2S_MODE_RX	1
#define I2S_MODE_TXR	2

#define I2S_FORMAT_I2S	0//I2S_FORMAT
#define I2S_FORMAT_MSB	1
#define I2S_FORMAT_LSB	2
#define I2S_FORMAT_NOP	3


typedef struct
{
	unsigned char		CodecID;
	unsigned char		Port;	
	unsigned char		MasterSlave;
	unsigned char		Txrmode;
	unsigned char		LineMic;

	unsigned char		Testsource;//tx : file@31000000 direct, file, testpattern.
	unsigned int		pcmsize;
	//unsigned char		Sourceformat;//continous, fifo format	
	unsigned int 		recordSec;//rx

	unsigned short		BitperCh;
	unsigned int		SyncClkFreq;//samplerate
	unsigned short		Totch;
	int					maskingch;	

	unsigned char		ClkSrc;//in case of master
	unsigned int		SourceFreq;	
	unsigned short		CDCLKFreqFs;
	unsigned int 		CDCLKFreq;	
	unsigned char		BitClkFS;
	unsigned int		BitClk;

	unsigned char 		Dataformat;
	unsigned char 		DmaPolling;		
	bool 				benUnderInt;
	bool 				ben24bittest;
}IIS_State;


typedef struct
{
	unsigned int*		uStartAddr;	
	unsigned int*		uCurrAddr;
	unsigned int 		totalsizeByte;
		
	unsigned int		i;
	unsigned int		unitsizeByte;//trnasfer unit size
	unsigned int		maxRepeatcnt;
	unsigned int		currRepeatcnt;
	bool				bend;
}IIS_Addr;


typedef struct
{
	unsigned int		uStartAddr;
	unsigned int		uSizeByte;//TC*byte/TC
	unsigned int		uTC;//trnasfer unit size		
}DMA_array;

#define MAX_I2S_DMA_array	10
typedef struct
{
	unsigned int	uStartAddr;	
	unsigned int 	uTotalsizeByte;
	unsigned int 	uUnitsizeTC;
	unsigned int	uUnitsizeByte;
	unsigned int	uBytePerTC;	

	unsigned int 	uIndex;
	unsigned int	uNums;
	DMA_array 		oArray[MAX_I2S_DMA_array];
}DMA_info;



#define I2S_MAX_UNDERRUN_STATIC	10
typedef struct
{
	unsigned int 		rIiscon;
	unsigned int		rIisfic;
	unsigned int 		iOffset;//of playing
}IIS_Statistic;


void Test_IIS(void);
void Test_IISALL(void);


//ii_new.c
void I2S_Select_port(void);
void I2S_Select_MasterSlave(void);

void I2S_Select_testsource(void);
	void I2S_Testdataprepare(void);
	void I2S_Testdataprepare2(void);
	void I2S_Testdataprepare3(void);
	void I2S_Testdataprepare4(void);
		void I2S_selectsetting(void);
			void I2S_selectBit(void);
			void I2S_selectSyncFreq(void);
			void I2S_Select_Totch(void);
			void I2S_Select_ChannelMask(void);
			
			void I2S_Select_Rec(int isec);

void I2S_ClockSettingPathsetting(void);
	void I2S_Select_CDclkFS(void);
	void I2S_Select_BFS(void);
	unsigned char Select_IIS_Master_CLK(int sel);
		void I2S_PCLK_speed_change(int fout, int fin);
	
	//Select_Slave in iis.c

void I2S_setETC(void);
	void I2S_Select_i2slinkmode(void);
	void I2S_Select_dmapolling(void);
	void I2S_en_underrunINT(void);
	void I2S_en_24bittest(void);


bool I2S_Setting(int port, int MasterSlave,
				int trx, int i2sformat, int rootfs, int bitclkfs, int ch, int bit, int DmaPolling);


#ifdef __cplusplus
}
#endif

#endif    //__IIS_H__

⌨️ 快捷键说明

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