I am trying to run a Maxim DS1077 programmable oscillator through the I2C bus from an Arduino Uno development platform. I am able to run the oscillator at the different pre-scaler values 1,2,4, and 8. My oscilloscope shows that the changes in Out 1 are appropriate. However, I cannot set the divider DIV register. It always seems to be set to N=1, i.e. it is as if the divider is not in there at all. I set the MUX bit for activating the divider correctly – tride both settings etc…but to no avail. Hardware set-up: both control ports are tied to GND, the serial communication lines are tied to 5V via 3.9kOhm, and I have 0.1 and 0.01uF between GND and Vcc. The serial lines are connected to the Arduino's analog ports 4 and 5, and I am using the wire library. I think the fact that I can set the prescaler shows that the I2C is not the issue…any tips would be appreciated! Thanks!
Electronic – Programmable DS1077 Oscillator: Cannot set the DIV register
i2c
Related Topic
- Electronic – GY-521 Unable to set PWR_MGMT_1 register – can’t disable SLEEP mode
- Trying to start i2c communication on dspic33fj128gp802, but I cannot write on the SEN bit of the I2CxCON register
- Texas Instruments Page/Register Convention – how to find the actual register address
- Electronic – A question about the Clock control register high of I2C bus
Best Answer
I finally found out why I was not able to set the DIV register. I contacted Maxim and they told me that the MUX register bit for activating the DIV needs to be set AFTER setting the DIV. I had it in the opposite order in my initial program. After flipping the commands, everything worked!