How to change PWM Frequency?
28 Jan 2021 09:21 #196911
by roland
How to change PWM Frequency? was created by roland
Attachments:
Please Log in or Create an account to join the conversation.
28 Jan 2021 16:59 #196965
by PCW
Replied by PCW on topic How to change PWM Frequency?
Yes, HM2 PWM frequency is a parameter not a pin so it cannot be linked to a signal
If its just changed occasionally you can use a script with setp
What is the application? maybe PWM is not the best solution.
If its just changed occasionally you can use a script with setp
What is the application? maybe PWM is not the best solution.
Please Log in or Create an account to join the conversation.
28 Jan 2021 17:42 #196978
by roland
Replied by roland on topic How to change PWM Frequency?
A solenoid valve regulates the flow. The valve is opened 10 times per second for a short time.
So far I do this with pwmgen.
PWM Frequency = 10 Hz
Value 0,062 results in a pulse width of 6.2 ms
...
Value 0.014 results in a pulse width of 1.4 ms
Up to here everything is fine.
At Value < 0.014 the pulse width becomes < 1.4 ms.
But a smaller pulse width than 1.4 ms cannot switch the valve.
To be able to work with value < 0.014, the frequency must be reduced here.
So far I do this with pwmgen.
PWM Frequency = 10 Hz
Value 0,062 results in a pulse width of 6.2 ms
...
Value 0.014 results in a pulse width of 1.4 ms
Up to here everything is fine.
At Value < 0.014 the pulse width becomes < 1.4 ms.
But a smaller pulse width than 1.4 ms cannot switch the valve.
To be able to work with value < 0.014, the frequency must be reduced here.
Please Log in or Create an account to join the conversation.
28 Jan 2021 18:02 - 28 Jan 2021 18:05 #196980
by PCW
Replied by PCW on topic How to change PWM Frequency?
At that low a frequency you are probably better of using software PWM
perhaps siggen and oneshot, or it may be that the software PWM
will work with pwmgen.0.dither-pwm set true (and a 500 Hz thread so
the minimum pulse width is never less than 2 ms)
Another option is using the rcpwmgen (made for RC servos) this has
a rate pin and a .01 to 1KHz PWM rate
man hostmot2
perhaps siggen and oneshot, or it may be that the software PWM
will work with pwmgen.0.dither-pwm set true (and a 500 Hz thread so
the minimum pulse width is never less than 2 ms)
Another option is using the rcpwmgen (made for RC servos) this has
a rate pin and a .01 to 1KHz PWM rate
man hostmot2
Last edit: 28 Jan 2021 18:05 by PCW.
Please Log in or Create an account to join the conversation.
28 Jan 2021 19:06 #196984
by roland
Replied by roland on topic How to change PWM Frequency?
oneshot and siggen I have tested. That works. The problem is that the pulse width is always a multiple of 1 ms. This is too inaccurate.
Is a new bit file necessary for rcpwmgen?
Attached is my current .vhd file. What must be changed here?
Is a new bit file necessary for rcpwmgen?
Attached is my current .vhd file. What must be changed here?
Attachments:
Please Log in or Create an account to join the conversation.
28 Jan 2021 19:24 #196985
by PCW
Replied by PCW on topic How to change PWM Frequency?
Basically just the module and the pin name, but I just realized a limitation of the rcpwmgen
that may make it an issue, the maximum pulse width is ~10 ms, what is you maximum pulse width?
that may make it an issue, the maximum pulse width is ~10 ms, what is you maximum pulse width?
Please Log in or Create an account to join the conversation.
28 Jan 2021 19:31 #196988
by roland
Replied by roland on topic How to change PWM Frequency?
maximum pulse width is 6.2 ms
Please Log in or Create an account to join the conversation.
28 Jan 2021 19:47 #196990
by PCW
Replied by PCW on topic How to change PWM Frequency?
OK then it should work,
The new module line would be:
(RCPWMTag, x"00", ClockLowTag, x"01", RCPWMWidthAddr&PadT, RCPWMNumRegs, x"00", RCPWMMPBitMask),
and the new pin line would be:
IOPortTag & x"00" & RCPWMTag & RCPWMOutPin,
The new module line would be:
(RCPWMTag, x"00", ClockLowTag, x"01", RCPWMWidthAddr&PadT, RCPWMNumRegs, x"00", RCPWMMPBitMask),
and the new pin line would be:
IOPortTag & x"00" & RCPWMTag & RCPWMOutPin,
Please Log in or Create an account to join the conversation.
28 Jan 2021 20:52 #196992
by roland
Replied by roland on topic How to change PWM Frequency?
I was not able to generate the bitfile.
I get this error message:
Can you support me a bit more?
I get this error message:
ERROR:HDLCompiler:69 - "/home/ise/xilinx/7i92/PIN_7I76_7I85SD_RCPWM_SERVO_34.vhd" Line 82: <rcpwmtag> is not declared.
ERROR:HDLCompiler:69 - "/home/ise/xilinx/7i92/PIN_7I76_7I85SD_RCPWM_SERVO_34.vhd" Line 120: <rcpwmtag> is not declared.
ERROR:HDLCompiler:854 - "/home/ise/xilinx/7i92/PIN_7I76_7I85SD_RCPWM_SERVO_34.vhd" Line 72: Unit <pin_7i76_7i85sd_rcpwm_servo_34> ignored due to previous errors.
Can you support me a bit more?
Attachments:
Please Log in or Create an account to join the conversation.
28 Jan 2021 21:57 #196995
by PCW
Replied by PCW on topic How to change PWM Frequency?
Sounds like you don't have the latest source
constant RCPWMTag : std_logic_vector(7 downto 0) := x"2C";
constant RCPWMOutPin : std_logic_vector(7 downto 0) := x"81";
are in the current IDROMConst.vhd
constant RCPWMTag : std_logic_vector(7 downto 0) := x"2C";
constant RCPWMOutPin : std_logic_vector(7 downto 0) := x"81";
are in the current IDROMConst.vhd
The following user(s) said Thank You: roland
Please Log in or Create an account to join the conversation.
Time to create page: 0.420 seconds