Simulink eQEP block for speed calculation with C2000 MCU

66 次查看(过去 30 天)
Hi all! ;)
I am working with a C2000 Microcontroller from Texas Instruments. I try to calculate the shaft speed of a DC machine in Simulink using my F28377S-LaunchPad. I already established the high speed measurement using the QPOSCNT signal. My problem/question is about the low speed measurement: I want to use the QCPRD signal to calculate the shaft speed. I already asked for help in the TI E2E forums. You can find the discussion here:
Somebody told me to monitor the QEPST.UPEVNT signal because the timer value is latched into the QCPRD register everytime the QEPST.UPEVNT (unit position event) happens. Does somebody know a way to monitor this signal in Simulink? I cannot find this option in the eQEP block.
Best regards, Armin
  2 个评论
Armin Lensker
Armin Lensker 2018-3-22
Hello Canberk!
I attached screenshots of the content of the two subsystems:
These are the regular algorithms (for high speeds and low speeds) that TI suggests in their reference manual for the eQEP modules.
Best regards, Armin


回答(4 个)

Venkatesh Chilapur
Venkatesh Chilapur 2017-8-23
Hi Armin,
Right now, via our eQEP block, we are not supporting the monitoring of QEPST.UPEVNT signal in Simulink.
However, as a workaround, the "Memory Copy" block can be used and the reference of this signal be provided to be able to read it's state.
Please refer example model "c28035pmsmfoc_cla" shipped with our support package, on how "Memory Copy" can be used. (c28035pmsmfoc_cla -> Hall Sensor C)
You may then design the model to read "QUPRD" around the QEPST.UPEVNT signal and see if it helps.
Venkatesh C
  4 个评论
Hello all,
I am working on similar problem. I am using F28379D DSP processor and 1024 pulses per revolution encoder to determine the speed. I am using it with Simulink with block eQEP C28x.
Can somebody suggest me a working example as of hpw to configure C28x QEP block for the same .It would be really helpful and grateful !!!
Best Regards
Salil Patwardhan


Michael Valasek
Michael Valasek 2018-3-29
编辑:Michael Valasek 2018-3-29
Thank you much Armin,
I checked your suggested links. There not much more information than in sprug05 from TI says. I will try to approximate the position with continuous function such as regression of spline function. Then to derive that approximated function to get the velocity. I hope that it works. I will report then the results. This is interesting:
Thank you
  1 个评论
Armin Lensker
Armin Lensker 2018-3-30
Hello Michael! I think you have not read the blog posts entirely until the end because there is indeed much more information than in sprug05 by TI! The blog suggests using a "two phase type PLL" which I think is some kind of state of the art when it comes to encoder measurement filters. Best regards, Armin


Pradyumna Ranjan Ghosh
I am working on estimation of rotor speed and position of an AC machine connected to DC machine via eQEP blocks using DSP F28377s through an encoder. I am observing speed and rotor position through DAC. As per your instructions, speed estimation was good when DC machine is used as motor and AC machine as generator. However, when I am observing the speed while implementing v/f control on the AC machine, the motor was rotating at the speed as given by command, but estimation through encoder was incorrect.
I am attaching the model as per convenience. Do I need to change the switching frequency? Is there any problem of interrupt mismatch for speed calculation?
I would be extremely thankful.
Pradyumna Ranjan Ghosh

Bui Tuyen
Bui Tuyen 2022-9-17
You can see this video

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by