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

📄 main.c

📁 Audio codec--TLV320AIC31 裸测代码
💻 C
字号:
#include <stdio.h>
#include "hw_lib.h"
#include "apb_i2c_module.h"

/*
static unsigned char script_aic23[][3] = {//LOUT I2S SLAVE MODE
		                                 // USED FOR PALYBACK()
{0x34,0x0a,0x00},	
{0x34,0x0c,0x07},
{0x34,0x0e,0x03},	
{0x34,0x10,0x00},
{0x34,0x12,0x01}
};
*/
/*
static unsigned char script_aic23[][3] = {//Lin1 I2S SLAVE MODE
		                                 // USED FOR record
	{0x34,0x01,0x17},	
	{0x34,0x03,0x17},
	{0x34,0x05,0x10},
//	{0x34,0x05,0x79},
//	{0x34,0x07,0x11},
	{0x34,0x08,0x12},
	{0x34,0x0a,0x05},	
	{0x34,0x0c,0x00},
	{0x34,0x0e,0x02},	
	{0x34,0x10,0x01},
	{0x34,0x12,0x01}
};
*/
/**************************

static unsigned char script_aic23[][3] = {
{0x34,0x01,0x17},
{0x34,0x03,0x17},
{0x34,0x05,0x79},
{0x34,0x07,0x79},
{0x34,0x08,0x10},
{0x34,0x0a,0x00},
{0x34,0x0c,0x20},
{0x34,0x0e,0x02},
{0x34,0x10,0x18},
{0x34,0x12,0x01},
{0x34,0x1e,0x00},
};

/*
static unsigned char script_aic23[][3] = {//MICIN I2S SLAVE MODE
		                                 // USED FOR record
{0x34,0x01,0x17},	
{0x34,0x03,0x17},
//{0x34,0x05,0x10},
{0x34,0x05,0x7f},
//{0x34,0x07,0x11},
{0x34,0x06,0x0},
{0x34,0x08,0x14},
{0x34,0x0a,0x05},	
{0x34,0x0c,0x01},
//{0x34,0x0e,0x03},
{0x34,0x0e,0x02},	
//{0x34,0x10,0x01},
{0x34,0x10,0x00},
{0x34,0x12,0x01}
};
*/

/*
static unsigned char script_aic23[][3] = {//LOUT I2S SLAVE MODE
                                                 // USED FOR PALYBACK(),MIC IN
{0x34,0x00,0x17},
{0x34,0x02,0x17},
//{0x34,0x05,0x10},
//{0x34,0x05,0x79},
//{0x34,0x07,0x11},
//{0x34,0x06,0x0},
{0x34,0x08,0x14},
//{0x34,0x08,0x1c},
{0x34,0x0a,0x05},
{0x34,0x0c,0x0b},
//{0x34,0x0e,0x03},
{0x34,0x0e,0x02},       //usb mode 
//{0x34,0x10,0x01},
{0x34,0x10,0x00},
{0x34,0x12,0x01}
};
*/

static unsigned char script_aic23[][3]={ //USED FOR record
	{0x34,0x01,0x1f},	
	{0x34,0x02,0x17},
	{0x34,0x08,0x12},
	{0x34,0x0a,0x00},	
	{0x34,0x0c,0x8},
	{0x34,0x0e,0x02},	
	{0x34,0x10,0x01},
	{0x34,0x12,0x01}
	};

#define PIN_MASKBASE	0x20020000
int PinMask( int device , int enable )
{
	u32 mask;
	int error = 0;
	switch( device )
	{
	case 0:		// disable 656 out ( 68k clock ).
		mask = (1<<14);
		break;
	case 1:		// i2c out
		mask = 0x00000400;
		break;
	case 2:
		mask = (1<<21);	// disable 656 out ( sensor clock enable)
		break;
	case 3:		// 68k enable( sci disable )
		mask = (1<<15);
		break;
	default:
		error = 1;
	}
	if( mask )
	{
		volatile int* pinmark = (volatile int*)hw_map_io( PIN_MASKBASE , 0x1000 , 0 );
		if( pinmark )
		{
			if( enable )
				pinmark[0x10c/4] |= mask;
			else
				pinmark[0x10c/4] &= ~mask;
			hw_unmap_io( (void*)pinmark , 0x1000);
		}
		else
		{
			error = 2;
		}
	}
	return error;
}
#define mysetreg(reg,data) *reg = (data)
#define myredreg(reg,data) data = *reg

#define CLKSEL ((volatile int *)0x20020144)

int main(void)
{
	int i , count = sizeof(script_aic23) / sizeof(script_aic23[0]);
	int temp;
	PinMask( 1 , 1 );	// enable i2c pin mask
/*	
	myredreg(CLKSEL,temp);
	mysetreg(CLKSEL,temp|0x0);
	
	myredreg(((int*)0x2002010c),temp);
	mysetreg(((int*)0x2002010c),temp|1<<18);
*/	
	
	init_i2c();	
	for( i=0; i<count; i++ )
	{
		transmitData( 2 , &script_aic23[i][1] , script_aic23[i][0]/2 );
		hw_delay(1);
	}
	dele_i2c();
		
	while(0)
	{
		playback();
		}

	//record();
	getchar();
	
	return 0;
}

⌨️ 快捷键说明

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