Jump to content
OMRON Forums

Recommended Posts

Posted

Hi,

 

I am currently using a PowerPMAC to control an amplifier with pulse and direction signals. My amplifier allows a maximum input frequency for pulses of 800kHz.

 

I set Gate3[0].PfmClockDiv to 5 in order to have a PfmClock of 3.125MHz.

I also set Gate3[0].Chan[0].PfmWidth to 5, which makes my pulses 5/3.125 = 1.6µs.

The problem is I don't know what value to set for Motor[1].MaxDac in order to limit my pulses output to 800kHz.

 

What I did for now is observe pulses on an oscilloscope and adjust MaxDac value so that "#1 out 100" command gives me 800Khz, #1 out 50" command gives me 400Khz etc...

I found that Motor[1].MaxDac = 10 000 fits what I want but I would like to understand where this value comes from.

 

 

 

Best Regards,

Chafik

  • 3 weeks later...
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted

In the SW Reference Manual, under the description for the output register Gate3.Chan[j].Pfm, it gives the formula for the output frequency as:

 

Fout = (Gate3.Chan[j].Pfm / 4,294,483,648) * Fpfmclk

 

This treats the Pfm element as a full 32-bit register. The servo algorithm only considers the high 16 bits to be integer values, so the effective formula becomes:

 

Fout = (ServoCmd / 65,536) * Fpfmclk

 

With your PfmClock frequency of 3.125 MHz (3125 kHz), a servo command of 10,000 would produce:

 

Fout = (10,000 / 65,536) * 3125 = 476.9 kHz

 

This is exactly what my system produces in this setting.

 

Note that a pulse width of 1.6 usec cannot support a frequency of 800 kHz, as it would always saturate by 667 kHz. I would set the PfmWidth to 2 for a 0.64 usec pulse width, which would be about 50% duty cycle at 800 kHz.

Guest
This topic is now closed to further replies.

×
×
  • Create New...