cancel
Showing results for 
Search instead for 
Did you mean: 

B-G431B-ESC1 does not respond to PPM input

sspry
Associate II

Hello, I generate a 4.4V 1400us on (2000-1400)us off signal and verify its existence with scope. This signal does not induce movement in the motor I have attached to the ESC evaluation board.

The board beeps using the motor when powered on. When I connect a cable to my driving board (NUCLEO_L432KC) the beeping stops. I've verified they share a ground.

I'm not sure what else to check.

11 REPLIES 11
KnarfB
Principal III

What firmaware is on the board? Are you sure that it supports PPM input?

sspry
Associate II

The user must generate the firmware. I have done so per the instructions in the application note given at https://www.st.com/en/evaluation-tools/b-g431b-esc1.html. Checking the "User Interface" functional block I see no relevant settings for enabling or disabling PWM/PPM input.

Attempting to start the motor via the button seems to work, though I still need to get a larger power supply. I see the supply brown out. I see no such behavior when using PWM/PPM input.

There is apparently a bug with my hardware (I will look to get it replaced ASAP) where the high side FETs load is provided via a single via, but the thread seems inactive for now.

When using Motor Control Workbench (MCSDK_v5.4.5) and generating the B-G431B-ESC1 example code, I don't see support for PWM input. From the schematics, PA15 is PWM input, but it is untouched by the example code and left in Reset State. Don't know if PWM code can be generated in MC Workbench at all.

But, it is relatively straightforward to add PWM "decoding". PA15 is connected to timer TIM2 channel CH1. Enable TIM1, set prescaler to divide input clock to say 1 MHz. For TIM2 choose Combined Channels "PWM Input on CH1". In main() start the timer channels (HAL_TIM_IC_Start). Then, you are able to read the PWM hi pulse length (in us) by HAL_TIM_ReadCapturedValue( &htim2, TIM_CHANNEL_2 ); You might also add a TIM2 interrupt handler which is called on every PWM cycle for updates.

hth

KnarfB

See the application note linked from the product page. It states the board will respond to PPM.

I will have a look at code more closely, perhaps I can just start on my intended modifications directly.

If someone can figure out why it's not responding to PPM or how to enable it I'd appreciate it, it is the most straightforward way to start on my data collection.

SBurc.1
Associate II

PWM Input doenst work on my Board aswell!

And i dont know how to generate and upload example code.

There must be software on the kit, because controlling it via the Workbench tool works fine.

Orso
Associate III

Hello,

Times ago I found under the folder of X-CUBE-MCSDK installation, you should find the source of a project that support PWM signal.

I'll post more details tomorrow...

SBurc.1
Associate II

I solved the Problem by myself.

You have to open the MotorControlWorkbench and select the example for B-G431B-ESC1.

Then there will pop up a Readme file with instructions, they are not well described but it is doable.

Complete the Model in MotorControlWorkbench, which means, update the given Motor with your Motor information.

If you do not have the Information about your motor, use the Motor Profiler.

Save the model in a different location but with the same name to finish it.

After finishing the Model in MCW click the generate button. A new window opens and there you to choose the right setup.

The setup is described in the Readme. Target Tool Chain => IAR EWARM. The other options were correct.

Now click on update, not generate. The Software starts to generate all needed files.

Now open the generated project with IAR IDE for ARM Processors. I had to download it myself and get a 30 day trail version.

In the IDE open the project and go to "project" => "Rebuild ALL". This should be done without errors.

Now connect the G-431B-ESC1 via USB to your PC and click "download and Debug" grenn circle with play symbol.

The G-431B-ESC1 is flashed and a debug session starts. If you want to debug and see whats happenening go for it.

If you just want to see you motor rotating, stop the debug session using the red circle with a cross.

Now connect your G-431B-ESC1 to your power supply and apply 490Hz PWM to the PWM input port.

Attention! In the manual is a description, how the PWM Signals needs to be but they dont tell you that there is a start condition for the motor.

I tried to set the rpm with a poti and it didnt work in the beginning. Because i never fullfilled the start condition.

The start condition is PWM with an On Time of about 964µs for 1s. I then you can increase the ON Time of you PWM and you motor should start rotating.

To do this i used a arduino mega and i recommend you to use atleast a 10bit pwm to get enough possible On Time states. I used 12 bit PWM.

All in all, the documentation for B-G431B-ESC1 is insufficient. I hope this helps other people!

Hello Sburc.1,

Your description will surely help other peoples.

What kind of motor are you using? What range of RPM?

I'm using a 1000KV brushless with a propeller and a LIPO battery with 3 cells, but at high RPM I get a speed feedback fault and an over current fault.

Without propeller no problems. My motor shoud reach no more than 25Apk and there isn't problems at high RPM with the profiler.

Thanks.

SBurc.1
Associate II

Hey,

im using a BLDC mady by faulhaber. A company in germany. I use the B-G431B-ESC1 for a project at work.

Motor Parameters:

  • 18V
  • 3.6A
  • 5760 rpm

But we use it at 28V and get up to 7200 rpm max. The Motor is connected to a pump, and sometimes (acutally very often) the motor does not start and using the MCW i see errors, like over current. I have no real solution for this problem. The way i try to avoid these errors is to set the desired rpm low at first and i try to adjust the PI values of the controller. I have the feeling this allows the motor to start properly. Speed feedback faults occured, when i tried to change the rpm to fast. I think the software in the controller isnt the best and needs adjustment to work properly in any occasion.