Problem with Servo Commands Pulse Widths

nfk

Senior Member
Hi Technical,

Hippy suggested I post this here so here goes...

The manual says that servo-related commands should create a pulse-width of the value x0.01ms. I have checked this and (at least for the 08M) the commands do not give accurate results. I know that individual chips may vary but after a great deal of testing I have found pulse widths are consistently around 10% greater than they should be and for my purposes this is unacceptable. After a great deal of experimentation I have come to the conclusion that this error is (perhaps unintentionally) 'built-in' to the software. Here' my reasoning...

We are provided with the CALIBFREQ command which enables us to tune the frequency of the chip. This would be fine except that the code for this tuning provides results which cannot bring the chip into calibration, i.e. produce the results that are given in the manual. Another interesting point about this is that if I use CALIBFREQ to get it nearly correct, it knocks out the timing for the serial interface which then won't work (except with a hard reset of course).

Here's the thing...if I use CALIBFREQ to get the SERVO commands working nearly accurately, why does this mess up the serial port??? Surely they are 'locked together' by the code in the chip and if one is correct the other should be too.

This is why I believe there is an error in the servo code and that the pulsewidth that the servo commands generate need to be reduced by about 10%.

(In this thread...

http://www.picaxeforum.co.uk/showthread.php?t=9596

...you will see the results of experiments I have done to demonstrate the effect of CALIBFREQ)

Cheers,
Nigel
 
Last edited:
Top