Now configure the FCCU registers in initialization function,there eout pin is in fault state.However there is no fault inject,and the eout fault state can't exit.Why the eout pin is in fault status while there is no fault?And how to change the eout pin to normal state?
Hi,
Are you observing fault state before or after you configure FCCU EOUT?
It would be helpful if you share with us also your connection with \SBC fccu side.
Also the pull resistor used.
regards,
Peter
First of all,we use the pull resistor.
Before configure FCCU EOUT,the F0 is in low voltage,the F1 is in high voltage,this mean the normal state.
However,when configure FCCU.CFG.B.FCCU_SET_AFTER_RESET = 0x1,it goes into the fault state(the F0 is in high voltage,the F1 is in low voltage) and can't exit the state at all.
I am confused why and how to exit the fault state,and whether there is something wrong with my configuration.
This is hard to say from information you have shared.
Are you using SBC chip with FCCU interface?
By default FCCU use Dual rail switching protocol:
Unless you configure FCCU CFG by DCF record.
Before configure FCCU EOUT,the F0 is in low voltage,the F1 is in high voltage,this mean the normal state.
So, this is fault state. Did you configured DCF record for different protocol?
regards,
Peter
Which MCU are you using? and may you share your FCCU register contents?
The MCU is MPC5744P,the initialization function shows as below:
void MCAL_FCCU_Init(void)
{
MCAL_FCCU_Clr_Fault();
/* Unlock configuration */
FCCU.TRANS_LOCK.B.TRANSKEY = 0xBC;
/* provide Config state key */
FCCU.CTRLK.R = 0x913756AF;
/* enter config state - OP1 */
FCCU.CTRL.R = 0x1;
/* Verify if state change was sucessful */
while (FCCU.CTRL.B.OPS != 0x3); //operation status successful
/* Configure FCCU to react on NCF with short reset */
FCCU.NCFS_CFG[0].B.NCFSC15 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC16 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC17 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC18 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC19 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC20 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC21 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC22 = 0x1;
FCCU.NCFS_CFG[1].B.NCFSC23 = 0x1;
FCCU.CFG.B.FCCU_SET_AFTER_RESET = 0x1; // Write to start FCCU functioning.
FCCU.CFG.B.SM = 0;
FCCU.CFG.B.FOM = 2;
FCCU.EOUT_SIG_EN[0].R = 0xFFFFFFFF;
FCCU.NCF_TOE[0].R = 0xFFFFFFFF; //ALARM Timeout Enable
FCCU.NCF_E[0].R = 0x00FF8000; // NCF[15]-NCF[23]
FCCU.IRQ_ALARM_EN[0].R = 0x00FF8000; // NCF[15]-NCF[23]
//set up the NOMAL mode of FCCU
FCCU.CTRLK.R = 0x825A132B; //key for OP2
FCCU.CTRL.R = 0x2; //set the OP2 - set up FCCU into the NORMAL mode
while (FCCU.CTRL.B.OPS != 0x3); //operational status succesfull
}