This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TLV320AIC3104:与AIC31和TM4C123GH6PM微控制器的I2C通信

Guru**** 2362840 points
Other Parts Discussed in Thread: TLV320AIC3104
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/627833/ccs-tlv320aic3104-i2c-communication-with-aic31-and-tm4c123gh6pm-microcontroller

部件号:TLV320AIC3104

工具/软件:Code Composer Studio

大家好,

微控制器和音频编解码器之间的通信不工作。 它被吸入第五行中的函数"WriteReG_AIC"中。 我´将音频编解码器配置为ADC和DAC,但无法与它进行任何通信。 有人能帮帮我吗?

VOID Init_I2C (void)
{//SysCl PeripheralReset(sysctl_Periph_I2c1)
	;
	PinTypePeripheralEnable(sysctl_Periph_I2c1);		//启用I2C

	//SysCl封装配置GPIO;
	配置外设GPIO	

		

			
			

	;外设配置外设		
	GPIO;外设配置外设

		//初始化I2C主中继器(100 Kbps)
}


_Bool WriteReG_AIC (UINT32_t ucReg,UINT32_t ucBits)
{
I2CMasterSlaveAddrSet (I2C1_base,SLAVE_ADDR_AIC3104,FALSE);
I2CMasterDataPut(I2C1_base, ucReg);
while (I2CMasterBusy (I2C1_base));
I2CMasterControl (I2C1_BASE,I2C_MASTER_CMD_STUSTREG_SEND_START);
while (I2CMasterBusy (I2C1_base));
如果(I2CMasterErr(I2C1_base)!= I2C_MASTER_ERR_NONE)返回FALSE;

I2CMasterDataPut(I2C1_base, ucbits);
I2CMasterControl (I2C1_BASE,I2C_MASTER_CMD_STUSTREG_SEND_FINISH);
while (I2CMasterBusy (I2C1_base));
如果(I2CMasterErr(I2C1_base)!= I2C_MASTER_ERR_NONE)返回FALSE;

返回true;
}

void Init_adc (void)
{
	WriteReG_AIC (19,0x07);		// LINE1LP至左侧ADC,单端,增益=0dB,通电,软步进=关闭
	WriteReG_AIC (22, 0x07);		// LINE1RP至右ADC,单端,增益= 0dB,通电,软步进=关闭
	WriteReG_AIC (15, 0x80);		//左ADC PGA未静音,增益=0dB
	WriteReG_AIC (16,0x80);		//右ADC PGA未静音,增益=0dB
}

void Init_DAC (void)
{
	Writeref_AIC (7,0x0A);		//左DAC至左通道,右DAC至右通道,FS(AIC)=48kHz
	,刻录E0(Reg E0); 		//打开左右DAC的电源,HPLCOM是单端
	WriteReG_AIC (41, 0x00);		// DAC_L1和DAC_R1,用于路由到线路输出和HP输出,左右DAC具有独立的音量控制
	WriteReG_AIC (43, 0x00);		//左音量,静音=关闭,增益=0dB
	WriteReG_AIC (44, 0x00);		//右音量,静音=关闭,增益= 0dB

	WriteReG_AIC (47,0x80); 		// DAC_L1至HPLOUT (耳机)
	WriteReG_AIC (51,0x0F);		//启动HPLOUT
	WriteReG_AIC (64,0x80);		// DAC_R1至HPROUT (耳机)
	WriteReg _AIC (65,0x0F);		//启动HPROOUT WriteReg _AIC (

	82,0x80)		;IC_LER1/
	REG_96		
			(eR1/写R1/) AIC_RAM 093 (左/左),AIC_RAM (96),写AIC_RAM (96),左/左/右),AIC_RAM,E093 (写AIC_RAM (96),AIC_RAM),ERO_RAM (96),ELOR
	) 		//加电RIGHT _LOP/M
}

void Init_AIC3104 (void)
{
	Init_I2C();

	WriteReG_AIC (0);		//页面选择
	WriteReG_AIC (1),0x80;		//软件重置

	WriteReG_AIC (8, 0xC0);		// BCLK和WCLK作为输出(0,0x00)
			;
			

	
	
//写模式(Is_9); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Sadullah,

    我们可以在音频转换器论坛中查看TLV320AIC3104配置,但此问题似乎与所用功能的编程有关。 另外,从代码的上下文来看,问题可能与I²C总线状态有关。  可能Code Composer论坛的同事可以为您提供有关此问题的更准确的答案。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师