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.
Hi,
I'm trying to use the SVM module on a TMS320F2810 to drive a motor and all seemed to be working well with nice sinusoidal line to line voltages except that I randomly get a short jump in the voltage. This doesn't happen every cycle or periodically in any way, but when it occurs it is when the SVM is changing from one sector to the next - at a multiple of 60 electrical degrees.
I've cut the code back to the minimum so I'm just getting a fixed amplitude 3-phase voltage generated running in phase with the rotor. I can't find any sudden jumps in the values being written to EvaRegs.CMPR1 or EvaRegs.CMPR2 and everything looks as I would expect.
Is there a particular order in which the EvaRegs should be updated? At the moment I am writing ACTRA, CMPR1 then CMPR2. All other settings seem to be as described in the Event Manager reference guide. I have also ensured that CMPR1<=CMPR2<=T1PR
Any suggestions?
Thanks
I am assuming you are using SVPWM from one of the example systems published by Texas Instruments. The code should work but check if you are using 100% PWM - it is better to avoid 100% ON or OFF situations. All compare registers will be updated on a particular event like counter equals to zero or period etc. so I don't think any sequence is needed.
I'm not using 100% on or off - roughly 90% on. None of the example code I have seen in the Digital Motor Control Library actually seems to use the SVPWM hardware, instead they set all three CMPR regs individually so it's more sinewave PWM than SVPWM.
Sorry - didn't realize you are using SVPWM hardware. I am sure TI folks will comment on your question but in my personal opinion you will be better off using the software implementation of SVPWM. The software version is flexible, easy to understand and takes slightly more if not same MIPS as harwdare version. Note that newer family of devices don't have this hardware SVPWM becuase I think from MIPS and power consumption point of view software impelmentation is better than the hardware block.
There is an excellent discussion on this topic in an application report (somewhat dated, but exactly on this topic): Space-Vector PWM With TMS320C24x/F24x Using Hardware and Software Determined Switching Patterns. You can download this using the literature code: SPRA524 (http://focus.ti.com/general/docs/techdocsabstract.tsp?abstractName=spra524).
The C2000 DMC library has been updated and it is a good idea to install the latest software (ControlSUITE): http://focus.ti.com/mcu/docs/mcuproductcontentnp.tsp?sectionId=95&familyId=916&tabId=2656.
And as Arefeen suggested, the SVPWM software block is available individually and within a system (ACIM and PMSM).
I suffer from the same issue.
The SW SVM and HW SVM are not exactly identical :
Though giving the same harmonic reduction, the HW SVM also includes less switces per cycle , which results in less swith-related heat losses (among other things)
How can one make use of the SVM hardware?
Do you have a working example with 2810 (and not 24xx) ? I am aware that they should be the same , yet I can't seem tmake it work....
Have you checked this application note Space-Vector PWM With TMS320C24x/F24x Using Hardware and Software Determined Switching Patterns ?You can download this using the literature code: SPRA524 (http://focus.ti.com/general/docs/techdocsabstract.tsp?abstractName=spra524). However, I never utilized the hardware module, always stayed with software implementation.
Thanks for your promt response
Yes I have.
As I wrote , the app note refers to 24xx and not 281x (I am familiar with both DSPs and aware that ASM code asdie, the perifheral HW should be the same).
I am able to make the SW approach work , yet as I explained above - the SW approach do not have the advantage of fewer switches/PWM cycle , which I need in the current application.
When I enable the HW approach , I get the same issue that appears in the first post : every certain time , there seems to be an issue with the PWM not being applied correctly.
I must indicate that I have been working with 281x,24xx 283xx for more than 8 years in more that 15 different projects , and I believe it is not a SW bug (or , atleast , not one that I can find :) )
Can you help referring me to someone in TI that is familiar with it ?
I am sorry if my posts expressed doubts about your software ... I am sure your code works fine ..my comments were mainly targetted towards the SVPWM hardware. I never took advantage of that hardware and always utilized sofwtare version of SVPWM. You are correct that the hardware offers potentially less switching loss but am not sure about the issue. I doubt there are many within TI who actually knows about this hardware as this was introduced with the first generation of peripherals and later dropped from 280xxx series - hopefully TI folks will reply to your request with more information/reference. Here is an idea - how about you implement the hardware functionality in software?