Electrical – Servo – PWM Resolution

microcontrollerpwmservo

I'm trying to create a servo drive function on an ATMEL microcontroller without using the built in PWM functions. Basically just with the ISR timer.

My question is… what is the general resolution for Hitec (or Futaba) servos. Is it 10 degrees, 5 degrees, <1 degree? What would be a realistic upper target for my timer's resolution, for it to be robust for most servos?

Assuming a 180 degree rotation servo (1.25ms for 0, 1.5ms at 90, and 1.75ms at 180), I would have 500us for 180 degrees, or 2.779us per degree at 1 degree of resolution. For a 20MHz clock, I would have 50ns per clock cycle or 55.58 clock cycles per degree of resolution.

This would be quite a burden if peripheral processes were running and I'm wondering if I need to increase the CPU speed or if the resolution is even appropriate (too high or low).

For applications, this is rather open ended as I'm trying to build a tool for a myriad of open robotics projects but I would say it should be comparable to the Lynx Motion SSC-32 (http://www.lynxmotion.com/p-395-ssc-32-servo-controller.aspx).

Best Answer

I used micro servos and their resolution was between 1 and 2 degrees. When I stepped them in 1 degree steps not all steps generated motion, but 2 degree steps did.