TLE986x Bridge phase outputs are inverted, Output is Passive High

Announcements

Webinar: Integrated solutions for smaller, simpler low-voltage motor control design.
Join the webinar to experience!

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
AmolKoli
Level 4
Level 4
First solution authored 10 questions asked 50 sign-ins

Hello Team,

We are driving a DC motor using TLE986x and FET bridge combo.
Have used the sample code for LIN and DC motor drive as our base.

Its observed that the PWM duty output is inverted, and the Phase outputs remain high during passive state.

AmolKoli_0-1706838448558.png

We need to configure non-inverted duty and passive low for the drive output.
Could you please help with the configuration.

Below is code snip for our existing control:

void BDRVupdateConductionState(unsigned char gu8_cstate)
{
 
switch (gu8_cstate)
{
 
case PWM_CW:
 
// current dir on eval board : phase A to B on CW command
// BDRVOUTC = 0b00001100;
// BDRVOUTB = 0b00001000;
BDRV_Set_Bridge(Ch_PWM, Ch_PWM, Ch_En, Ch_On);
 
break;
 
case PWM_CCW:
 
// current dir on eval board : phase B to A on CCW command
// BDRVOUTC = 0b00000011;
// BDRVOUTB = 0b00000010;
BDRV_Set_Bridge(Ch_En, Ch_On, Ch_PWM, Ch_PWM);
 
break;
 
case PWM_OFF:
 
// all 4 BDRV channels OFF
// BDRVOUTC = 0b00001111; // all 4 are software controlled
// BDRVOUTB = 0b00000000; // force inactive state on all 4
BDRV_Set_Bridge(Ch_Off, Ch_Off, Ch_Off, Ch_Off);
break;
 
case PWM_LOW_ON:
 
// low side ON, high side OFF
// BDRVOUTC = 0b00001111; // all 4 are software controlled
// BDRVOUTB = 0b00001010; // force active state on low side
BDRV_Set_Bridge(Ch_En, Ch_En, Ch_En, Ch_En); //TODO Amol - check brake operation(now configured as per test results)
 
break;
 
default:
break;
 
}
}

Passive state configuration :
AmolKoli_1-1706838667137.png

 

0 Likes
1 Solution
Raj_C
Moderator
Moderator
Moderator
250 solutions authored 500 replies posted 50 likes received

Hi @AmolKoli,

If you want to match the compare value set in the ConfigWizard with the High state then please change the state of the passive to High as shown below:

Raj_C_0-1706873115298.png

 

Please let me know if you have further questions.

 

Thank you

Best Regards

Raj Chaudhari

View solution in original post

2 Replies
Raj_C
Moderator
Moderator
Moderator
250 solutions authored 500 replies posted 50 likes received

Hi @AmolKoli,

If you want to match the compare value set in the ConfigWizard with the High state then please change the state of the passive to High as shown below:

Raj_C_0-1706873115298.png

 

Please let me know if you have further questions.

 

Thank you

Best Regards

Raj Chaudhari

AmolKoli
Level 4
Level 4
First solution authored 10 questions asked 50 sign-ins

Hello @Raj_C ,
Thanks.
This worked for me.
In addition I had to make some changes in the BDRV channel drive pattern to match the new Phase state to get expected Phase duty w/f.
like BDRV_Set_Bridge(Ch_PWM, Ch_PWM, Ch_En, Ch_On)  Change> BDRV_Set_Bridge(Ch_On, Ch_En, Ch_PWM, Ch_PWM);

0 Likes