Victor SP Motor Controller - Page 1
Forum section: electronics / beginners

author: IanBerry
author_rank: Contributor
timestamp: January 26, 2017, 01:39:29 am
content: I've been working with my school's robotics team and they asked me to build a quicky PWM out of a 555 timer to run a Victor SP motor controller. I set it up to oscillate at 15KHz at 5 volts per the data sheet requirements, but due to the capacitance of breadboards when I put it on perf board it ended up being 17KHz. I thought this wouldn't be too much of an issue. Well, when I plugged it all in low and behold it didn't work. I got looking at the data sheet again and there seemed to be some very conflicting numbers. It says the frequency should be 15KHz but it also says the period should not exceed 2.4 ms which if I'm not mistaken is about 416 Hz. If someone could take a look and explain this to me? I'll attach a screenshot and a link to the datasheet.http://www.vexrobotics.com/217-9090.html

author: vltr
author_rank: Contributor
timestamp: January 26, 2017, 01:53:12 am
content: Motor controllers like the victor most likely will use a slightly different version of PWM than what you're used to for control. Here's a decent explanation of what's going on with the input signal:http://www.endurance-rc.com/ppmtut.php

author: james_s
author_rank: Super Contributor
timestamp: January 26, 2017, 05:18:43 am
content: Are these intended to use RC servo signals? If so, you can buy servo testers for a few dollars that have a knob to set the PWM value.

author: FreddyVictor
author_rank: Regular Contributor
timestamp: January 26, 2017, 08:51:47 am
content: as james_s suggests, looks like a rc typethe 15KHz is theoutput, not the input frequencyjust supply a pwm input with freq between 10Hz and 345Hz (100ms - 2.9ms)looks like the page you linked has gone, presumably discontinued (appears top of pagehere)

author: IanBerry
author_rank: Contributor
timestamp: January 26, 2017, 11:13:27 am
content: Oh, okay, that makes sense. But what about the specification that says a max 2.4 ms high input pulse time? Does that mean it uses the PPM like in the link vltr sent?

author: FreddyVictor
author_rank: Regular Contributor
timestamp: January 26, 2017, 12:23:20 pm
content: No, PPM is somewhat different to normal PWMPPM is a way of sending multiple - not just 1 - control signals in a single wire - saves having separate wires/connections.your attached img says 0.6 -> 2.4ms - it just means that the 'on time' can be can be just that period of time - see 'Generic PWM pulse' on the linked pageand you need to repeat this signal at the rate (freq) in my prev postthe normal rc spec is 1.0 -> 2.0ms range, so they're just saying that their range is greater than this but you obviously need to keep within this range for correct operation

author: IanBerry
author_rank: Contributor
timestamp: January 26, 2017, 12:53:31 pm
content: So what about the maximum period of 100 ms. If the limit for the on pulse is 2 ms than the pwm would only be operating at 2% duty cycle? And if I can only go down to a period of about 3 ms and the maximum on time is about 2 ms. Wouldn't my maximum possible duty cycle be 66%?

author: FreddyVictor
author_rank: Regular Contributor
timestamp: January 26, 2017, 01:33:12 pm
content: no, the 100ms period is the frequency - ie: how many times you need tosendyour pulse (in this case, the minimum)it's slightly confusing since frequency can be expressed in ms as well as Hzso:100ms = 0.1s .'. 1/0.1 = 10Hzso minimum of 10 times per second you need to send the pulse of between 0.6ms -> 2.4ms (min & max respectively)If you have an Arduino handy, then you can use the Servo libraryIt generates (IIRC) a pulse 50times/sec (50Hz which is 1/50 = 0.02ms) with the required pulse length

author: IanBerry
author_rank: Contributor
timestamp: January 26, 2017, 04:11:43 pm
content: Sadly I do not have an Arduino. I only have analog things on hand.So does what you're saying mean that to control the motor control I need the increase/decrease the frequency of the 2 ms pulses?Or does it mean I need to increase/decrease the amount of 2 ms pulses within a longer period?

author: FreddyVictor
author_rank: Regular Contributor
timestamp: January 26, 2017, 04:42:23 pm
content: Quote from: IanBerry on January 26, 2017, 04:11:43 pmthis really would make life alot easier if you did !Quote from: IanBerry on January 26, 2017, 04:11:43 pmno...the frequency of the pulses - how often you send then is typically fixed - choose between a range of 10 -> 345Hz as already mentionedQuote from: IanBerry on January 26, 2017, 04:11:43 pmsorry to be err... negative again, but no...to change the speed of the motor, you need to change the length of the 'on' high pulsetypically 1.0ms is slow/stopped and 2.0ms is fast - this will depend on the controller. they gave a min/max range of 0.6 -> 2.4msExample:| marks a change - all are at 50HzFor stopped: signal_low | signal_high_for_1.0ms+0.0ms=1.0ms | signal_low_and wait_19ms_before_repeating (so 1.0ms+19ms=20ms = 0.02 and 1/0.02 = 50Hz)For half-speed: signal_low | signal_high_for_1.0ms+0.5ms=1.5ms | signal_low_and wait_18.5ms_before_repeating (apply same logic as above)For full-speed: signal_low | signal_high_for_1.0ms+1.0ms=2.0ms | signal_low_and wait_18ms_before_repeating (apply same logic as above)

author: IanBerry
author_rank: Contributor
timestamp: January 26, 2017, 05:02:45 pm
content: Oh okay, that makes sense. Thank you! I'll put something together to do that and see if it works.

author: Ian.M
author_rank: Super Contributor
timestamp: January 26, 2017, 05:17:47 pm
content: Should be good enough to get you going. Substitute any small signal Schottky diode for D1. LTSPICE sim attached.