No se puede hacer funcionar el oscilador programable DS1077

2

Estoy tratando de que funcione DS1077 , Pero no puedo, por mi vida, averiguar qué estoy haciendo mal. Estoy usando los valores predeterminados para los registros MUX y BUS, y la programación en mi propia frecuencia DIV no tiene ningún efecto. Puedo leer en voz alta los registros a través de I2C y me devuelven los valores que configuré, pero la salida del oscilador (medida en mi alcance) no se parece en nada a lo que debería ser. Intenté copiar los valores desde ejemplo de SparkFun (estoy usando su ruptura a) pero la salida de "40kHz" está muy por encima del ancho de banda de 60MHz de mi alcance.

Encontré un ejemplo de en el sitio web de Maxim y te recomiendan atar CTRL0 y CTRL1 a GND si no los estás utilizando, pero si vinculo CTRL1 a GND, el mío deja de responder a los mensajes de I2C. Tengo que vincular CTRL1 con VCC para que responda a través de I2C (sin mencionar eso en la hoja de datos), pero eso desactiva la salida del oscilador. De lo contrario, mi "circuito" es el mismo que su ejemplo: SDA / SCL va a un Arduino, y los pines de SALIDA van a mi alcance. VCC y GND están conectados correctamente y dentro de las especificaciones.

No tengo idea de lo que está pasando, parece muy simple pero aún no puedo hacerlo funcionar: '- (¿Alguien ha encontrado algo como esto antes? ¿Alguna idea para ayudar a reducir el problema?

    
pregunta Malvineous

1 respuesta

1

Recomendaría leer la hoja de datos nuevamente para ese dispositivo. Suena como que CTRL0 y CTRL1 también se pueden usar como habilitación de salida, dependiendo de los dispositivos de control de registros MUX y BUS. Esto explicaría por qué cuando se afirma CTRL0 / CTRL1, la salida del oscilador está deshabilitada. Otra cosa a tener en cuenta es que la hoja de datos dice que los valores de registro se almacenan en una EEPROM interna, pero solo después de que se ejecuta un comando de escritura. Es posible que piense que los registros se configuran de una manera, pero cuando apaga y enciende la placa, los valores anteriores se están cargando desde la EEPROM. He trabajado mucho con los chips de reloj I2C y cada vez que las cosas no funcionaban era porque no interpretaba uno de los valores de registro. Escriba cada registro en la inicialización y luego vuelva a leerlos todos para asegurarse de que los haya inicializado correctamente. Compare los resultados con la hoja de datos para ver si tienen sentido.

EDITAR: parece que los pines CTRL también se pueden usar para colocar el dispositivo en modo de apagado, lo que explicaría por qué no responde a I2C a veces.

    
respondido por el mjh2007

Lea otras preguntas en las etiquetas