关于TDA7564B的IIC驱动问题
各位亲们,最近我在调试一款音频功放芯片TDA7564B,按照数据手册配置,总共7个步骤。能工作输出音频,可是只能配置一次,就是说如果配置后打开芯片使他工作,然后做其他操作(比如配置13db增益,静音、低功耗什么的),就不工作了,IIC通信是正常的。简单来说就是那7个步骤只能操作一次,再操作芯片就失效了,需要重新上电。有哪位亲们对这方面配置有了解的,帮帮忙,感激不尽。 这是配置代码:
ubyte Open_TDA7564B(void)
{
ubyte Databyte;
/* 1 */
Databyte = 0B01000000;
Databyte = 0B00000000;
CorfigIICData(IIC_TDA7564B_ADDR, IIC_TDA7564B_RECEIVE, Databyte, 2);
if(StartIIC0(Transmit) == FALSE)//主控发送
{
return FALSE;
}
PIT1_DelayMs(2);
/* 2 */
CorfigIICData(IIC_TDA7564B_ADDR, IIC_TDA7564B_TRANSMISSION, Databyte, 4);
if(StartIIC0(Receive) == FALSE)//主控接收
{
return FALSE;
}
PIT1_DelayMs(1);
/* 3 */
Databyte= 0B00000001;
Databyte= 0B00010011;
CorfigIICData(IIC_TDA7564B_ADDR, IIC_TDA7564B_RECEIVE, Databyte, 2);
if(StartIIC0(Transmit) == FALSE)//主控发送
{
return FALSE;
}
PIT1_DelayMs(1);
/* 4 */
Databyte = 0B00100110;
Databyte = 0B00010000;
CorfigIICData(IIC_TDA7564B_ADDR, IIC_TDA7564B_RECEIVE, Databyte, 2);
if(StartIIC0(Transmit) == FALSE)//主控发送
{
return FALSE;
}
PIT1_DelayMs(1);
/* 5 */
CorfigIICData(IIC_TDA7564B_ADDR, IIC_TDA7564B_TRANSMISSION, Databyte, 4);
if(StartIIC0(Receive) == FALSE)//主控接收
{
return FALSE;
}
PIT1_DelayMs(1);
/* 6 */
Databyte = 0B00011110;
Databyte = 0B00010100;
CorfigIICData(IIC_TDA7564B_ADDR, IIC_TDA7564B_RECEIVE, Databyte, 2);
if(StartIIC0(Transmit) == FALSE)//主控发送
{
return FALSE;
}
PIT1_DelayMs(2);
/* 7 */
CorfigIICData(IIC_TDA7564B_ADDR, IIC_TDA7564B_TRANSMISSION, Databyte, 4);
if(StartIIC0(Receive) == FALSE)//主控接收
{
return FALSE;
}
return TRUE;
}
这是配置代码 有谁用过这款芯片{:sad:}求助啊 已解决,步骤之间需要延时,在手册里有说明 你是用什么开发板开发的
页:
[1]