📄 triton_functions.c
字号:
/* BGSLP */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGSLP_CFG_STS);
sprintf(st,"\rPMC_SLAVE_BGSLP_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGSLP_RES_ID);
sprintf(st,"\rPMC_SLAVE_BGSLP_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGSLP_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_BGSLP_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* TSHUTDOWN */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_TSHUTDOWN_CFG_STS);
sprintf(st,"\rPMC_SLAVE_TSHUTDOWN_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_TSHUTDOWN_RES_ID);
sprintf(st,"\rPMC_SLAVE_TSHUTDOWN_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_TSHUTDOWN_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_TSHUTDOWN_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* BIAS */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BIAS_CFG_STS);
sprintf(st,"\rPMC_SLAVE_BIAS_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BIAS_RES_ID);
sprintf(st,"\rPMC_SLAVE_BIAS_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BIAS_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_BIAS_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* CLKON */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CLKON_CFG_STS);
sprintf(st,"\rPMC_SLAVE_CLKON_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CLKON_RES_ID);
sprintf(st,"\rPMC_SLAVE_CLKON_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CLKON_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_CLKON_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* STATE_MNGT */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_STATE_MNGT_CFG_STS);
sprintf(st,"\rPMC_SLAVE_STATE_MNGT_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_STATE_MNGT_RES_ID);
sprintf(st,"\rPMC_SLAVE_STATE_MNGT_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_STATE_MNGT_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_STATE_MNGT_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* SLEEP_MNGT */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_SLEEP_MNGT_CFG_STS);
sprintf(st,"\rPMC_SLAVE_SLEEP_MNGT_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_SLEEP_MNGT_RES_ID);
sprintf(st,"\rPMC_SLAVE_SLEEP_MNGT_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_SLEEP_MNGT_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_SLEEP_MNGT_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* P2_CLKEN */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_P2_CLKEN_CFG_STS);
sprintf(st,"\rPMC_SLAVE_P2_CLKEN_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_P2_CLKEN_RES_ID);
sprintf(st,"\rPMC_SLAVE_P2_CLKEN_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_P2_CLKEN_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_P2_CLKEN_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* BAT_PRES_CHECK */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BAT_PRES_CHECK_CFG_STS);
sprintf(st,"\rPMC_SLAVE_BAT_PRES_CHECK_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BAT_PRES_CHECK_RES_ID);
sprintf(st,"\rPMC_SLAVE_BAT_PRES_CHECK_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BAT_PRES_CHECK_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_BAT_PRES_CHECK_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
}
/*---------------------------------------------------------------------
// NAME : Triton_Audio_Restore_initial_Context
//
// DESCRIPTION : Set reset value to all Audio register.
//
// PARAMETERS : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//---------------------------------------------------------------------*/
void Triton_Audio_Restore_initial_Context(void)
{
/* to access to the page of the Abb module AUDIO */
MSI2C_AccessPage(AUDIO_page);
MSI2C_MasterPollingSendAbb(AUDIO_TOGB,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_CTRL1,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_CTRL2,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_CTRL3,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_CTRL4,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_CTRL5,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_CTRL6,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_POPMAN,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_POPAUTO,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_SIDETONE,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_VULGAIN,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_VDLGAIN,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_OUTEN1,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_OUTEN2,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_OUTEN3,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_AUDLGAIN,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_AUDRGAIN,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_VPLLTEST,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_STPLLTEST,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_VFTEST,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_AUDFTEST1,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_AUDFTEST2,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_AUDFTEST3,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_HFTEST1,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_HFTEST2,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_POPTEST1,0x0);
MSI2C_MasterPollingSendAbb(AUDIO_POPTEST2,0x0);
}
/*-------------------------------------------------------------------------------
// NAME : reg_test
//
// DESCRIPTION : register Test value after reset
//
// PARAMETERS : register table UWORD8
//
// RETURN VALUE: number of error UWORD16
//
// LIMITATIONS : None
//------------------------------------------------------------------------------- */
UWORD16 reg_test(UWORD8 REG_LIST[],UWORD16 length_tab,char *REG_NAME)
{
UWORD16 result_tmp;
UWORD8 read_value;
char st[80];
int i;
result_tmp = 0x0;
// sprintf(st,"\rsize of tab : %x\r\n",length_tab/4);
// SERI_Send(st);
SERI_Send("\r REG | READ | EXPECTED\r\n");
for ( i=0; i<length_tab/4;i++)
{
read_value = (MSI2C_MasterPollingReceiveAbb(REG_LIST[i*4]) & REG_LIST[i*4+1]);
if ( read_value == (REG_LIST[i*4+3] & REG_LIST[i*4+1]) )
{
result_tmp |= 0x0;
// sprintf(st,"\r %35s \r",REG_NAME+(i*35));
// SERI_Send(st);
sprintf(st,"\r %35s %2x | %2x | %2x\r\n",REG_NAME+(i*35),REG_LIST[i*4],read_value,REG_LIST[i*4+3]);
SERI_Send(st);
}
else
{
result_tmp += 0x1;
// sprintf(st,"\r %35s \r",REG_NAME+(i*35));
// SERI_Send(st);
// SERI_Send("\r REG | READ | EXPECTED ERROR !\r\n");
sprintf(st,"\r %35s...%2x....|...%2x...|...%2x...ERROR !\r\n",REG_NAME+(i*35),REG_LIST[i*4],read_value,REG_LIST[i*4+3]);
SERI_Send(st);
}
}
return (result_tmp);
}
/*-------------------------------------------------------------------------------
// NAME : module_reg_test
//
// DESCRIPTION : module's register Test value after reset
//
// PARAMETERS : no
//
// RETURN VALUE: number of error UWORD16
//
// LIMITATIONS : None
//-------------------------------------------------------------------------------*/
UWORD16 Aux_reg_test(void)
{
UWORD16 result_temp = 0x0;
SERI_Send("\r\n.........................AUX BAR.......................\r\n");
MSI2C_AccessPage(USB_page);
SERI_Send("\r.......USB\r\n");
result_temp = reg_test(USB_REG_LIST,USB_REG_LENGTH,USB_REG_NAME);
SERI_Send("\r.......MADC\r\n");
result_temp += reg_test(MADC_REG_LIST,MADC_REG_LENGTH,MADC_REG_NAME);
SERI_Send("\r.......VIB\r\n");
result_temp += reg_test(VIB_REG_LIST,VIB_REG_LENGTH,VIB_REG_NAME);
SERI_Send("\r.......AUX\r\n");
result_temp += reg_test(AUX_REG_LIST,AUX_REG_LENGTH,AUX_REG_NAME);
SERI_Send("\r.......WLED\r\n");
result_temp += reg_test(WLED_REG_LIST,WLED_REG_LENGTH,WLED_REG_NAME);
SERI_Send("\r.......BCI\r\n");
result_temp += reg_test(BCI_REG_LIST,BCI_REG_LENGTH,BCI_REG_NAME);
SERI_Send("\r.......SIM\r\n");
result_temp += reg_test(SIM_CARD_REG_LIST,SIM_CARD_REG_LENGTH,SIM_CARD_REG_NAME);
return (result_temp);
}
UWORD16 Audio_reg_test(void)
{
UWORD16 result_temp = 0x0;
SERI_Send("\r\n.........................AUDIO BAR.....................\r\n");
MSI2C_AccessPage(AUDIO_page);
result_temp = reg_test(AUDIO_REG_LIST,AUDIO_REG_LENGTH,AUDIO_REG_NAME);
return (result_temp);
}
UWORD16 Int_reg_test(void)
{
UWORD16 result_temp = 0x0;
SERI_Send("\r\n.........................INT BAR.......................\r\n");
// correction of INT2_IT2STATUSP1L Reset Value
// INT2_REG_LIST[7*4+3] = 0x80;
// SERI_Send("\rINT2_IT2STATUSP1L modified to 0x80 instead of 0x00\r\n");
MSI2C_AccessPage(INT2_page);
result_temp = reg_test(INT2_REG_LIST,INT2_REG_LENGTH,INT2_REG_NAME);
return (result_temp);
}
UWORD16 Pwr_reg_test(void)
{
UWORD16 result_temp = 0x0;
SERI_Send("\r\n.........................POWER BAR.....................\r\n");
MSI2C_AccessPage(PMC_MASTER_page);
// correction of PMC_MASTER_STS_HW_CONDITIONS Reset Value
// PMC_MASTER_REG_LIST[7*4+3] = 0x90;
// SERI_Send("\rPMC_MASTER_STS_HW_CONDITIONS modified to 0x90 instead of 0x80\r\n");
SERI_Send("\r.......MASTER\r\n");
result_temp = reg_test(PMC_MASTER_REG_LIST,PMC_MASTER_REG_LENGTH,PMC_MASTER_REG_NAME);
SERI_Send("\r.......SLAVE\r\n");
result_temp += reg_test(PMC_SLAVE_REG_LIST,PMC_SLAVE_REG_LENGTH,PMC_SLAVE_REG_NAME);
SERI_Send("\r.......RTC\r\n");
result_temp += reg_test(RTC_REG_LIST,RTC_REG_LENGTH,RTC_REG_NAME);
return (result_temp);
}
// -------------------------------------------------------
// Function to access Triton Registers via UART -> I2C
// -------------------------------------------------------
void I2C_uart(void)
{
UWORD32 page,module,reg_num,action,data,control;
char st[80];
int i;
control = 1;
while(control)
{
page = 0xffff;
reg_num = 0xffff;
action = 0xffff;
data = 0xffff;
while(page == 0xffff)
{
SERI_Send("\r USB < 0 > \r\n");
SERI_Send("\r MADC < 1 > \r\n");
SERI_Send("\r AUX < 2 > \r\n");
SERI_Send("\r VIB < 3 > \r\n");
SERI_Send("\r WLED < 4 > \r\n");
SERI_Send("\r BCI < 5 > \r\n");
SERI_Send("\r SIM_CARD < 6 > \r\n");
SERI_Send("\r INT < 7 > \r\n");
SERI_Send("\r AUDIO < 8 > \r\n");
SERI_Send("\r RTC < 9 > \r\n");
SERI_Send("\r PMC_MASTER < A > \r\n");
SERI_Send("\r PMC_SLAVE < B > \r\n");
SERI_Send("\r\nENTER TRITON MODULE < 0 -> B > \r\n");
module = SERI_GetHexNum(0x01);
if (module<0x9)
page =0x0;
else if (module<0xC)
page =0x1;
}
while(reg_num == 0xffff)
{
switch(module) {
case 0 :
for ( i=0; i<USB_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&USB_REG_NAME[i*35],USB_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 1 :
for ( i=0; i<MADC_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&MADC_REG_NAME[i*35],MADC_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 2 :
for ( i=0; i<AUX_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&AUX_REG_NAME[i*35],AUX_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 3 :
for ( i=0; i<VIB_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&VIB_REG_NAME[i*35],VIB_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 4 :
for ( i=0; i<WLED_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&WLED_REG_NAME[i*35],WLED_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 5 :
for ( i=0; i<BCI_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&BCI_REG_NAME[i*35],BCI_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 6 :
for ( i=0; i<SIM_CARD_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&SIM_CARD_REG_NAME[i*35],SIM_CARD_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 7 :
for ( i=0; i<INT2_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&INT2_REG_NAME[i*35],INT2_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 8 :
for ( i=0; i<AUDIO_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&AUDIO_REG_NAME[i*35],AUDIO_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 9 :
for ( i=0; i<RTC_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&RTC_REG_NAME[i*35],RTC_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 0xA :
for ( i=0; i<PMC_MASTER_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&PMC_MASTER_REG_NAME[i*35],PMC_MASTER_REG_LIST[i*4]);
SERI_Send(st);
}
break;
case 0xB :
for ( i=0; i<PMC_SLAVE_REG_LENGTH/4;i++)
{
sprintf(st,"\r %35s <%2x>\r\n",&PMC_SLAVE_REG_NAME[i*35],PMC_SLAVE_REG_LIST[i*4]);
SERI_Send(st);
}
break;
default :
break;}
SERI_Send("\r\nENTER TRITON REGISTER NUMBER < 00..FF > \r\n");
reg_num = SERI_GetHexNum(0x02);
}
if(page == 0)
{
MSI2C_AccessPage(0x00);
}
if(page == 1)
{
MSI2C_AccessPage(0x01);
}
while((action == 0xffff)|(action<0x2))
{
SERI_Send("\r\nACTION < WRITE = 0 READ = 1 ABORT = A> \r\n");
action = SERI_GetHexNum(0x01);
switch(action)
{
case 1 :
data = MSI2C_MasterPollingReceiveAbb((UWORD8)reg_num);
sprintf(st,"\r\nPAGE : %x REG : %x DATA : %x \r\n", page,reg_num,data);
SERI_Send(st);
break;
case 0:
data = 0xffff;
while(data == 0xffff)
{
SERI_Send("\r\nDATA? \r\n");
data = SERI_GetHexNum(0x02);
SERI_Send("\r\nDATA Written \r\n");
}
MSI2C_MasterPollingSendAbb((UWORD8)reg_num,(UWORD8)data);
break;
default:
break;
}
}
SERI_Send("\r\nContinue ? < 0 : No , 1 : Yes > \r\n");
control = SERI_GetHexNum(0x01);
if(control != 1)
break;
} // while control
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -