cancel
Showing results for 
Search instead for 
Did you mean: 

why my firmware becomes unstable with b-g431-ESC1 MCU revision X

coren.1
Associate II

Hi,

as explained into the title, i am developing a firmware on this board which is stable. i have bought a new set of board and after flashed, the firmware becames unstable :unamused_face:

Searching a reason why i have seen that the MCU revision is not the same: Y with my first board set on which the firmware is stable, X with the second set giving unstability. Please what is the problem ? what i need to adapt ?

11 REPLIES 11
cedric H
ST Employee

Hello @coren.1​ ,

The revision X is a bug fix version of the revision Y. It fixes an ADC issue when regular conversion are interrupted by an injected conversion.

We are not aware of any regression introduced by the revision X.

What kind of instability do you see ?

Best Regards

Cedric

coren.1
Associate II

My firmware is sensorless.

I set a speedRef to reach at the end of start-up

with revision Y, i observe 0,2A current consumption at speedRef and it is stable, with revision X current consumption increases from 0,2 A without limit it seems

cedric H
ST Employee

Could you try to decrease the KP speed and see how does it behave. (start by a division by 2 for instance)

Cedric

coren.1
Associate II

I take the time to re-wire an X card, I do this test and get back to you

coren.1
Associate II

Since I changed my startup procedure, I didn't have to re-test an "X".

There, I noticed from the alignment a higher bcp current then at the end of the starting procedure a difference of about 0.6 A (25.2V)), then the current increases

With the Y version, the alignment does not create such a high current and the current rise is very gradual.

coren.1
Associate II

it is clear that from the call to HAL_TIM_PWM_start && HAL_TIMex_PWM_start, equivalent to the start of the alignment procedure, the current in case X jumps by 0.5 / 0.6 A

then increases quicker and goes higher than with Y. besides, I noticed smoke by leaving too long time this card. I am impressed

coren.1
Associate II

that was the value of the deadtime. I changed it from 1F to 33 and that made it possible to find a stable firmware. But 2 things, I do not understand why and especially now the temperature, so far very low, reached values ​​too high. I have to find the right settings again

coren.1
Associate II

Please, could you, if possible, what are the modification(s) between the revision Y and revision X that could explain the different behaviour of a firmware, especially why need to change the deadtime value moreover this is not a true solution because it increases the temperature ?

cedric H
ST Employee

Hello @coren.1​ ,

I checked with people in charge of the production, and there are no other changes done on the board when we switched from revision Y to revision X.

On our side, we did several tests with both version X and Y.

Here is a screen shot of the current measured with version X :

The plots represent 5 sequences of start stop. Each sequence is composed of two parts, one open loop start that consumes more current and a small current as soon as the observer takes the control.

0693W00000HokPBQAZ.pngHere is the same measurement done with version Y:

Both versions produce very similar results.

0693W00000HokSnQAJ.pngCould you tell us a bit more about your software environment. Do you use the motorcontrol SDK, if yes which version ?

You mentioned a call to HAL_TIM_PWM_start && HAL_TIMex_PWM_start, but those functions are not part of the SDK delivery.

Best regards

Cedric