This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Piccolo library for Hall sensor based speed calculation

Other Parts Discussed in Thread: CONTROLSUITE

Hi,

I am using TMDS2MTRPFCKIT for field oriented vector control of PMSM. I am trying to find how to do Hall sensor based speed calculation. Is there function already implemented in controlsuite or library for code composer? Please let me know,

Thanks,

Nilesh

  • Try speed loop implementation in BLDC3-1. It is a BLDC system running with Hall sensors and since the system closes speed loop as well , you may find what you are looking for .... good luck..

  • Thanks Arefeen, I checked on that and it needs 3 capture inputs. Just to confirm - so I could use three capture inputs on my Kit (eCAP) for getting signals form three hall sensors (Hall A, Hall B, Hall C). Are three capture inputs supported?

    Once motor is started, I will have speed calculation done using eQEP for accurate speed calculation with encoder signals.

     

  • .....just to add....

    I guess I could use Delfino C28343 controlCARD instead of existing Piccolo control card with motor control development kit - TMDS2MTRPFCKIT. Because I can see only eCAP1 is supported by Piccolo. Let me know if I am correct.

    Thanks,

    Nilesh

  • You can get by with just one capture input (with minor SW tweaking), the variable won't be updated as often...

     

  • I am sorry but am confused about your system ... do you have both hall sensor setup and encoder (QEP)? I am not sure about your system but it is not common to have both. If you have QEP (encoder) setup then speed information can be obtained from QEP module itself.

  • Yes, three hall sensors can be supported by one capture and two GPIO. In most cases this will provide sufficicnt bandwidth for speed measurement over a wide speed range.

  • Thanks to all of you for clarification. Arefeen, we have all the motor here which are with hall and encoder both. This is because encoder is not absolute and theer should not be any start motion jsut to align the rotor to known position. Hence hall sensors are used to get initial absolute position (with +/- 30 degree error) and then motion is started and within 60 degree turn error is corrected using encoder counts.

    Nilesh

  • Thanks for the clarification .... one last comment one this - have you looked at only using Hall signals instead of hall and encoder? You can interpolate from one hall transition to another based on speed. Your software estimation will get a hard data every time system receives a hall transition. This may allow you to remove encoder thus reducing system cost and improving reliability.

  • Arefeen,

    No never tried that but really a good idea. I will try that. Is this the way BLDC3 uses Hall for commutation and speed/ position measurement? Or something I need to program in myself?

  • As far as I know TI sample codes don't implement this but TI folks will be able to comment better. You can ceratinly take modules from sensorless BLDC project but the exact implementation is most likely not avialble.

  • The latest High Voltage Kit has all of it's software under controlSUITE www.ti.com/controlsuite

    For sensored ACI we actually have a full encoder on the motor we sell, so our software uses our QEP library module.

    You can see that here:

    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit\HVACI_Sensored

    However, the library for the eCAP module (for hall effect) is included in the DMCLibrary

    C:\ti\controlSUITE\libs\app_libs\motor_control\drivers\f2803x

    So you can build the system as you see fit.

  • I should also mention that we are about to release the BLDC Trapezoidal control projects for the high voltage kit as well.

  • Hallo,

    i've already purchased the HV kit, and would be very happy to recieve a Trapezoidal control project.

    i wanted to ask you regarding the Hall effect commutation method.

    if i understood correctly, you're not using interrupt based edge-detection with eCAP, but using Polling method (in an ISR of a timer).

    if i would like to use the eCAP interrupt, and yet be able to compute the speed from the halls, how would i do that ?

     

    thanks alot,

    Ari

  • Ari,

    No, not sure where you are getting that.  When using a sensor we use edge based eCAP detection.  When using sensorless we use a commutation trigger based on the back EMF voltages. If you want to see examples of this on the F280x you can go to

    www.ti.com/c2000dmc

    click DMC Systems

    then choose the Brushless DC and 0x series = SPRC213.

    Download, install, and look here: C:\tidcs\DMC\c28\v32x\sys\BLDC3_1_280x

    We have the BLDC projects done for the HVKit and Piccolo F2803x. They should get pushed end of this week or early next to controlSUITE. We are finishing up the documentation.  If you have the latest controlSUITE download you will see that the GUI for the HVKit 

    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit\~GUI

    already has the BLDC sensorless project included, and this image is in flash already on the controlCARD.

     

  • thanks for the quick reply.

    my idea is that the commutation state changes in every edge of any of the hall sensors.

    the new commutation state is calculated (via lookup table) in every rising and falling edge of the hall.

    how do i config the eCAP to give interrupt on both rising and falling edge, and still be able to measure time ?

    (in my idea the counter of the eCAP is reset on every interrupt, isn't it ?)

     

    thanks alot

  • Ari,

    No, the eCAP interrupt can work in a couple ways, it can be configured to flag an interrupt after any of the four capture events or on counter overflow.

    I've attached the documentation for the HV Kit Sensored BLDC project, this should explain our method. (this will be on controlSUITE shortly)

     

    Trapezoidal Control of BLDC Motors Using Hall Effect Sensors.pdf