Output Steps

Please tell me where we may find the exact “byte value to duty cycle”
transfer function for the for the default calibration of the Victor
884. I do not see that data in the current documentation.

IOW, I’d like to find the chart, formula, data table, (etc.) to
determine the exact forward and backward PWM percentage
generated by the 884’s PIC at every possible PWM byte
value from 0-255.

For example: For the 2005 FIRST contest, we’ve been provided 6V
(instead of 12V) Fisher-Price motors, and so must software limit
the power to no more than 50% in each direction. Therefore, we
need to know the exact PWM values to issue that represents 50%
power in each direction, and scale our power output requests
accordingly. Knowing the full transfer function gives us that data.

I do not wish to assume this is a linear mapping. I already see a
deadband of 10 counts plus and minus from 127 for zero, and
a statement that the 884 runs from 3% to 100% duty cycle.
But I don’t see any indication of the counts at which the 884
reaches 100% in each direction, nor anything that says whether
or not it is a linear mapping.

Where do we find this chart or formula for this Victor?

The Victor will turn ‘On’ at a value of 138 and it will be at Full Forward condition at a value of 232, which is 94 steps. The output will vary linearly from 3% to 100% over these 94 steps.

Searching the forum, nominal input range is 1.0 to 2.0 mSec for the Victor 884 PWM input. Also found there are 94 steps internally, and deadband ends at a PWM “value” of 138, and full output is reached at (138+94=)232. Assume ~50 Hz rate.

  1. What is the exact worst-case time (mSec pulse) input range for the specified driven output (3% to 100%)?
  2. Are there any ill effects of overdriving the input (say, 2.2 mSec)?
  3. At PWM 138, what is the pulse time? Ditto, for PWM 232? (This is likely an RC issue, but any ideas?)
    3a. Is this symmetrical below 127? If not, equivalent <127 values would be appreciated.

**There will be a tolerance of several steps due to variations with oscillators. You can use the DTT to measure these values. The steps for forward and reverse are not symmetrical. Doing a test gave these results: **

VALuE          STATE           LED STATUS   Pulse Width
0 – 41         Full Reverse    RED          0.856 – 1.06 ms
42 – 125       Reverse         OFF          1.07 – 1.48 ms
126 – 139      Neutral         YELLOW       1.49 – 1.55 ms
140 – 230      Forward         OFF          1.56 – 2.00 ms
231 – 254      Full Forward    GREEN        2.01 – 2.12 ms

Any variations beyond this data is “Out of Spec" and functionality can not be guarantied.

How can you increase the output resolution?

You can not increase the output resolution.

Your reply “To eliminate the Dead-Band, you must only send values that are valid as a Forward or Reverse condition”, still leaves a +/-3% control range that is unavailable. This is not satisfactory for creating a high power motor (310lb/in) sensor servo feedback loop, where the hold current depends on the mass of the object being held, and often this is within 3% of null. Also, to achieve steady positioning with heavier objects a higher output resolution than 188 steps is required.

  1. How would the 884 respond to a stream of alternating PWM values,
    for example 146, 147, 146, 147, …,
    would this provide the desired effect of doubling the output resolution, ie. 146.5 ?

  2. How would the 884 respond to a stream of alternating PWM values,
    for example 132, 140, 132, 140, …,
    would this provide the desired effect of providing 1.5% power (assume brake is off)?

  3. How about the stream 132, 132, 140, 132, 132, 140, …,
    would this provide the desired effect of providing 0.5% power?

**In the above cases, the Victor’s “ON” time would be averaged provided the Victor can interrupt each different step. Be aware that it may take 3 or 4 input steps before the Victor changes its Output. The Victor was developed for the hobbyist, and you may see variation in the Output. For more details on the Victor operation, you should evaluate the Victor to see if it will work in your application. **