Gast
#3592799
Hallo, ich verwende einen PCA9685 zur PWM Erzeugung. Der PCA läuft mit dem internen 25 MHz Quarz. Mit der Formel aus dem Datenblatt erhalte ich statt der gewünschten 250 Hz so ca. 276 Hz. Der PCA befindet sich zur Einstellung der PWM Frequenz wie gefordert im Sleep mode. [c] ... i2c_start(address); // Start, Address of selected pca9685 i2c_write(MODE1); // Mode 1 address // Setting mode to sleep so we can change the default PWM frequency i2c_write(PCA9685_AI | PCA9685_SLEEP | PCA9685_ALLCALL); i2c_stop(); // Stop waitMS(1); // Required 50 us delay i2c_start(address); // Start, Address of selected pca9685 i2c_write(PRE_SCALE); // PWM frequency PRE_SCALE address // [osc_clk/(4096*update_rate)]-1 = [25000000/(4096*250)]-1= 23,414 ~23 = 0x17 i2c_write(0x17); i2c_stop(); // Stop waitMS(1); ... [\c] Im Datenblatt habe ich keine Angaben zur Quarzgenauigkeit gefunden. Ist das normal, oder mache ich etwas falsch?