Pca9685 Is there a know variability in it's internal clock?


I have the adafruit board, using their code and an UNO, the pca9685 does not output the correct frequency, this throws out the duty cycle for when driving servos. I’ve written my own code for the RPi and I get the same results as the adafruit code (they use the same math). The math is the same as the datasheet. Hard coding the prescale to 130 gives me 50.2Hz, using 121 which is what the maths generates I get 53.9Hz.

I did see some NodeJS code for this chip where the author had added a variable for an ‘adjust’ so I am guessing they had the same issue.

You’ll not notice this error if you’re just driving a server and using trial and error to get the movement you want. I noticed it as with my servos the stated min and max microsecond range was not producing the expected movement. As with the NodeJS code I too have added an ‘adjust’ var and now I get what I expected.

So, is this a known issue with the chip???

I’m measuring the output with a Rigol DS1054z

BTW this is what I am using it for :)