cancel
Showing results for 
Search instead for 
Did you mean: 

(Environment: MCSDK 5.Y.2 + STM32CubeMX 6.3.0) NUCLEO-F446RE is not working compared to other NUCLEO boards while using the same power board & BLDC motor with the same configuration. What would be the possible cause for this problem?

THA.1
Associate II

(Environment)

  • MCSDK 5.Y.2, MC Workbench 5.Y.2, CubeMX 6.3.0​, IAR EWARM 8.50

(Test Result)

  • NUCLEO-G431RB + X-NUCLEO-IHM16M1 + GBM2804H-100T(BLDC sensorless) => working well
  • NUCLEO-L476RG + the same board & motor & configuration => working well
  • NUCLEO-F446RE + the same board & motor & configuration => motor startup fail !

All MCU pin configuration and motor control parameters are the same except for MCU specific ones.

0693W00000GWjNhQAL.jpg0693W00000GWjNmQAL.png 

(Detail Observation)

When motor startup (with F446RE) , it looks current control is not working.

During the initial alignment (about 1 second):

  • Electrical Anlge: 0 (by virtual speed sensor)
  • Iq_Reference (= Ia reference): linearly increased from zero along Rev-up curve
  • Iq_Measured (=Ia): smoothly increased but not exactly follow Iq_Reference => Not normally expected !
  • Vq: alternates between +/-Vmax => Not normally expected !
  • Id_Reference: 0
  • Id_Measured: smoothly decreased from zero to negative value => Not controlled !!!
  • Vd: +Vmax because of (Id_Reference - Id_Measured) => Not controlled !!!

1 ACCEPTED SOLUTION

Accepted Solutions
cedric H
ST Employee

Hello @THA.1​ ,

As promised, I worked on your setup. I attached here a compressed version of the stmcx file I used.

Important point, I had to do an hardware modification to be able to spin the motor.

The issue comes from the fact that IHM16 connect the current of phase V to 2 pins C10_18 and C10_24.

C10_24 is the one connected to PB1 where an ADC channel is available, that is Ok. But C10_18 is not connected to PB11 that does not exist on F446, but to VCAP_1 which is connected to the ground through a capacitor. Say it differently C10_18 connects the ADC input used to read the current of phase V to the ground, this is the reason why you were not able to spin your motor. There are two different ways to fix the issue, you can unsolder the resistor R41 on the IHM16, or cut the pin C10_18 on the F446 Nucleo connector.

(I think the second option is safer - I guess you do not need to have VCAP pin presents at morpho connector).

Hope it helps.

Cedric

View solution in original post

9 REPLIES 9
Cristiana SCARAMEL
ST Employee

Hello @THA.1​ and welcome to the ST Community.

Since your question is about STM32 MCSDK, I moved your thread from the topic Motor Control Hardware to "STM32 Motor Control".

THA.1
Associate II

Thanks.

I tried it with MCSDK 5.4.7 and MCSDK 5.Y.3 in order to double check MCSDK 5.Y.2 defect, but I got the same result - not working, startup failure with F446RE.

Since NUCLEO-L476RG has the same pin configuration and working well, I don't think it's hardware problem such as incompatibility with the power board.

I strongly suspect MC Workbench because it does not automatically assign F446RE MCU pins compatible with X-NUCLEO-IHM16M1 (PWM out, current feedback input, DC voltage input, etc) as do for L476RG and G431RB (why difference?).

THA.1
Associate II

[Update]

I tried it by adding NUCLEO MCU boards to MC Workbench as custom board, that is, all MCU configuration should be done manually.

(Result)

NUCLEO-L476RG as custom board + X-NUCLEO-IHM16M1 + GBM2804H-100T(BLDC sensorless)  => working well

NUCLEO-F446RE as custom board + the same board & motor & configuration => motor startup fail ! (no change)

In both case, debugger interface should be enabled at CubeMX then generated the whole project code.

Any suspected thing or test idea is welcome !

Hi, I updated my question with more specific test results. Could you kindly review it or send them to an expert in ST Motor Control?

THA.1
Associate II

[Update]

I tried the same test by replacing the power board with X-NUCLEO-IHM07M1 (BLDC motor was replaced as well).

(Result)

NUCLEO-L476RG + X-NUCLEO-IHM07M1 + Bull Running BR2804-1700kv(BLDC sensorless)  => working well

NUCLEO-F446RE + the same board & motor & configuration => working well

In this case, MC Workbench also automatically assign F446RE MCU pin configuration to be compatible with X-NUCLEO-IHM07M1 as below (It didn't do for X-NUCLEO-IHM16M1).

According to which power board to be integrated, MC Workbench code generation work differently (Why?)

MC workbench database might not have (F446RE + X-NUCLEO-IHM16M1) combination, then code is incorrectly generated?

0693W00000GWkVmQAL.png

cedric H
ST Employee

Hello @THA.1​ ,

Thanks for reporting the issue.

>According to which power board to be integrated, MC Workbench code generation work differently (Why?)

>MC workbench database might not have (F446RE + X-NUCLEO-IHM16M1) combination, then code is incorrectly generated?

The IHM16 has a different usage of the morpho connector than the IHM07. When we started the development of the WB several years ago, this use case was not anticipated.

In the coming version 6 of the Workbench, we developed a software algorithm to fix all the connection issues. The power board will be described from the features to the connector, and the control board from the connector to the MCU pins. The algorithm will be in charge of connecting the power board features up to the MCU pins. The user will have the possibility to select one of the configuration proposed by the Workbench with the guarantee that it will work out of the box.

Unfortunately, for the time being, the IHM16 + F446 pinning assignment must be manually modified to have a working project.

If you need a F446+IHM16, I can work on it and post you a working stmcx file next week.

Regards

Cedric

Thank you !!!

Yes, I need F446+IHM16. If you let me know what the problem is and which pinning assignment should be modified manually, it would be great so that I could understand the problem and apply it when I use other NUCLEO board or power board.

If you also send a working stmcx file for F446+IHM16, I would like to compare it with the modified stmcx file by myself.

cedric H
ST Employee

Hello @THA.1​ ,

As promised, I worked on your setup. I attached here a compressed version of the stmcx file I used.

Important point, I had to do an hardware modification to be able to spin the motor.

The issue comes from the fact that IHM16 connect the current of phase V to 2 pins C10_18 and C10_24.

C10_24 is the one connected to PB1 where an ADC channel is available, that is Ok. But C10_18 is not connected to PB11 that does not exist on F446, but to VCAP_1 which is connected to the ground through a capacitor. Say it differently C10_18 connects the ADC input used to read the current of phase V to the ground, this is the reason why you were not able to spin your motor. There are two different ways to fix the issue, you can unsolder the resistor R41 on the IHM16, or cut the pin C10_18 on the F446 Nucleo connector.

(I think the second option is safer - I guess you do not need to have VCAP pin presents at morpho connector).

Hope it helps.

Cedric

This is great !

I cut the pin C10_18 on NUCLEO-F446RE, then all is working well 🙂

I didn't notice the difference of VCAP pin.

(Question 1)

In your stmcx file, BKIN is assigned to mcu pin A6. It is not, however, connected on IHM16M1 board. PB12 should be used for F446RE?

(Question 2)

I'm developing a customized BLDC drive based on F446RE, where all pin assignment and configuration will be done manually at MC Workbench, CubeMX.

Is there any notes I should pay attention to or configuration to be careful of, or a useful list I should check especially in order to prevent fatal errors?

MC Workbench and CubeMX gives a lot of flexibility but I'm not sure my configuration such as NVIC, timer, clock, etc is optimal or free from potential defects.

Best regards,

THA