I am trying to drive a BLDC motor (BL17E19-01D-03RO) using infineon TLE9879Qx shield and Arduino Uno (Please refer the attached links for component details).
Infinieon Motor driver
We are facing some issue and would like to post here for a solution.
1.) We have operated the motor in FOC mode, but we were not able to get a speed feedback. I have referred the example codes provided and could not find any library function for getting the motor speed feedback. So is there a specific function for this purpose?
2.) As stated in the motor description, the rated voltage is 24 V, but we were not able to operate the motor at that particular voltage. Rather, the motor is operating at around 22 V (At a lower speed). Can we operate the motor with the shield at 24V?
3.) When we tried to operate the motor in hall mode, it was not operational, rather it was stuttering and stops. Should we tweak any particular parameters to make it work? If so, could you recommend what they are? Also, is it possible to get hall sensor feed back? (Any Functions from Library)
4.) Apart from Arduino Uno, we have also tried to operate the motor using Arduino Mega, but the motor is not starting although the pins connected are the same as Uno. Should we modify anything?
Thanks in advance!
Looking at the manual for the board, it looks to run from 5.5 ~ 28V. It makes me think your supply might not be able to supply enough current if it can only run at 22V. If you have it running at 22V and increase it to 24V, does it keep running? If so, your supply may not be able to deliver enough current during the motors’ start as the inrush current is often many times what the running current is.
Also, I see that the board has Overcurrent Protection as a feature. If your supply has current to spare, you may need to adjust it in software…
If you have yet to visit this page, BLDC_SHIELD_TLE9879 - Infineon Technologies I’d encourage you to see Getting Started as well as exhausting the other resources provided.
I worked with the TLE9879QX BLDC shield and example code with the Arduino Uno and recommended Trinamic motor when in the process of writing the post
Driving a BLDC Motor with Infineon’s TLE9879Qx 3-Phase Motor Driver Shield . I did not work with it extensively but based on the info I found wanted to provide some feedback to your questions.
Regarding 1, there is no function I found for getting motor speed feedback, you just set the speed with the command setMotorspeed.
Regarding 2, like Brian German mentioned, it’s up to you to provide the necessary motor power supply.
Regarding 3, I suspect you need to modify the parameters as you suggested but I have not worked with BLDC motors much and don’t have any specific suggestions. One thing that I did find useful though was to download the zip file “BLDC Shield for Arduino with TLE9879QXA40” at BLDC_SHIELD_TLE9879 - Infineon Technologies. This file includes the source code for the TLE9879QX used in the BLDC shield which includes define files for the default motor settings for FOC, HALL, BEMF parameters used in the example code. Have you verified you have your hall sensor connected correctly?
Regarding 4, I have not tried testing with other Arduinos so don’t have feedback. I would start with verifying the SPI connections are set correctly for the Mega.