Hi, I am using a DSP56805EVM to generate the PWM signals for a three- phase inverter. I have created a C program for open-loop V/Hz control of PWM inverter (on the lines of the 3 phase open-loop V/Hz control sample program). In the execution of the program, the 8 channels of A/D and the gpio port B are utilized in addition to the 6 PWM-A signals. I use three ribbon cables (each of 1' length) for the connectors of A/D converter, Port B and PRI-UNI3. The A/D converter channels are used only for protection purposes and not for processing. Before giving the dc bus voltage to the inverter, I verified that execution of the program generates sinusoidal PWM waveform. However, upon energizing the dc bus of the inverter (to about 700 V), the pulse width of the PWM signals coming from the DSP56805EVM is no more varying sinusoidally. Instead, the pulse width remains ever constant thereby injecting a dc voltage to the circuit at the output of the three-phase PWM inverter. I don't understand why the pulses are getting affected (widths are becoming constant rather than modulate sinusoidally) upon energizing the power circuit. The open-loop control program does not utilize any of the output variables to determine the pulse widths of the PWM signals. If anyone can explain what is happening in the DSP56805EVM during the execution of the program (after energizing the dc bus with 700 V) and suggest to me a workaround, I would appreciate. Thanks, mahesh |
|
PWM signal from DSP EVM
Started by ●September 21, 2002
Reply by ●September 26, 20022002-09-26
--- In motoroladsp@y..., "millindala" <millindala@y...>
wrote: > Hi, > > I am using a DSP56805EVM to generate the PWM signals for a three- > phase inverter. I have created a C program for open-loop V/Hz > control of PWM inverter (on the lines of the 3 phase open-loop V/Hz > control sample program). > > In the execution of the program, the 8 channels of A/D and the gpio > port B are utilized in addition to the 6 PWM-A signals. I use three > ribbon cables (each of 1' length) for the connectors of A/D > converter, Port B and PRI-UNI3. The A/D converter channels are used > only for protection purposes and not for processing. > > Before giving the dc bus voltage to the inverter, I verified that > execution of the program generates sinusoidal PWM waveform. > > However, upon energizing the dc bus of the inverter (to about 700 > V), the pulse width of the PWM signals coming from the DSP56805EVM > is no more varying sinusoidally. Instead, the pulse width remains > ever constant thereby injecting a dc voltage to the circuit at the > output of the three-phase PWM inverter. > > I don't understand why the pulses are getting affected (widths are > becoming constant rather than modulate sinusoidally) upon energizing > the power circuit. The open-loop control program does not utilize > any of the output variables to determine the pulse widths of the PWM > signals. > > If anyone can explain what is happening in the DSP56805EVM during > the execution of the program (after energizing the dc bus with 700 > V) and suggest to me a workaround, I would appreciate. > > Thanks, > mahesh We have analyzed the case based on the limited information given above. Scenario 1: Customer has enabled and is not serving some interrupt coming from GPIO, IRQ, Timer or Encoder pin. Once he applies high voltage to the DC-bus the noise generated by PWM switching triggers the interrupt that ends up in stop/debug mode (it depends if he uses SDK or own code). Even in case the ISR is not defined the program may loose control and may end-up on illegal instruction that will cause the illegal instruction ISR - usually it means the core is put in stop/debug mode. In case of stop/debug mode the PWM module continues to output the same value (injecting DC voltage) since the reload ISR that is supposed to calculate the sine waveform is not executed any more. The solution here is to properly handle interrupts and enable just ones that are used and are already properly initialized. Scenario 2: Customer uses the fault logic (the Fault inputs are in fact kind of feedback) with overcurrent threshold to be very low. Then, regardless on the preset dutycycle (of course - only if it is high enough), the PWM output is cut-off at certain pulse width. This pulse width corresponds to the di/dt and the preset overcurrent threshold. Note similar result can be achieved if the fault logic is influenced by the PWM switching noise. The solution here is to properly set the overcurrent threshold and make sure the fault signal is not noisy (he could add filter but needs to make sure it does not slow down the emergency PWM shut-off beyond the acceptable limit). We hope this helps. |