Conducir entrada XTAL con señal lógica

Me gustaría conducir la entrada XTAL a un chip con una señal lógica (3V3, cuadrado de 32kHz) en lugar de usar un cristal real. En general, ¿está bien o es necesario filtrar/atenuar la señal? A nivel eléctrico, ¿hay algo en particular que deba tenerse en cuenta?

(En particular, el chip cuya entrada XTAL me gustaría manejar es un Bosch BNO055).

No proporcionó un enlace a la hoja de datos BNO055. ¿Has podido inspeccionar el interior de la entrada XTAL?
No pude encontrar la información en la hoja de datos . Esperaba una respuesta generalizada relevante también para otras personas con otros chips, pero podría ser que no haya una respuesta general a mi pregunta.

Respuestas (4)

La pregunta tiene ahora casi tres semanas, pero creo que puedo proporcionar información útil. El BNO055 XIN32 probablemente pueda ser controlado por una señal lógica, cuyos detalles se analizan a continuación.

Cuando esto se publicó originalmente, le pregunté a Bosch si el BNO055 XIN32 podría funcionar con una señal de reloj usando niveles de voltaje VDDIO. Bosch respondió que sí, la entrada XIN32 se puede manejar de esa manera, con XOUT32 flotando. He editado esta respuesta correspondientemente.

El resto de esta respuesta analiza la situación y las implicaciones del sistema.

Bosch ofrece el BMF055, un 'sensor de movimiento de 9 ejes programable personalizado', en el mismo paquete que el BNO055. El BMF055 tiene las mismas características de sensor (compare las páginas 2 y 3 de las dos hojas de datos), pero es programable. Asumo que el BNO055 es un BMF055 con programación de fusión de sensor suministrado de fábrica por Bosch. La hoja de datos BMF055 proporciona más información.

La sección 9.1 de la hoja de datos BMF055 establece que el procesador integrado es un Atmel (ahora Microchip) SAM D20. La tabla de descripción de pines muestra además específicamente que el pin 26 (BNO055 XOUT32) es SAM D20 'PA01', también 'salida de cristal de 32kHz opcional', y el pin 25 (BNO055 XIN32) es SAM D20 'PA00', también 'entrada de cristal de 32kHz opcional' . Esto parece bastante claro, presumiblemente el BNO055 tiene un SAM D20 incorporado conectado a XIN32 y XOUT32.

La hoja de datos de Atmel SAM D20 ( http://www.atmel.com/images/atmel-42129-sam-d20_datasheet.pdf ) proporciona detalles sobre XIN32. Convenientemente, Bosch ha utilizado la nomenclatura Atmel SAM D20, encontrará detalles de XIN32 y XOUT32 en la hoja de datos de Atmel SAM D20.

Hay algunos problemas del sistema con los que lidiar.

Primero, en cuanto a los niveles de voltaje, la sección 8.1 de la hoja de datos del SAM D20 muestra que los pines del oscilador externo están en el dominio de voltaje VDDANA (analógico), no en el dominio de voltaje VDDIO (digital). La sección 8.2.1 de la hoja de datos del SAM D20 establece que estos voltajes deben ser los mismos, a diferencia de otros microcontroladores.

El Atmel SAM D20 admite un reloj externo conectado a XIN32 (sección 17.2 de la hoja de datos). Hay más detalles en la sección 17.6.3: el SAM D20 tiene modos separados para XIN32 como entrada de reloj y XIN32/XOUT32 que admite un cristal externo. Presumiblemente, el firmware de Bosch en el BNO055 establece el modo en cristal externo en lugar de reloj externo. Esto tiene consecuencias:

  1. La sección 17.6.3 de la hoja de datos de SAM D20 establece explícitamente que la salida externa del oscilador externo de 32 kHz (XOSC32K) (habilitada por 'EN32K') solo se puede usar cuando se suministra un cristal externo, no cuando se suministra un reloj externo. La hoja de datos de SAM D20 no describe esta salida externa con más detalle, por lo que no estoy seguro de qué es esta salida externa y cómo se vería afectada al conectar un reloj externo mientras el modo de oscilador está configurado en cristal.

  2. El SAM D20 controlará el pin XOUT32, porque espera un cristal externo. Esto puede o no ser un problema para usted. El SAM D20 tiene un control automático de ganancia para XOUT32/XIN32, con suerte esto no causará ningún problema. Presumiblemente, los niveles de entrada del reloj llevarán el AGC a su ganancia más baja.

  3. El SAM D20 tiene un retardo de inicio programable para el cristal de 32,768 kHz. La tabla 40-25 de la hoja de datos de SAM D20 especifica un tiempo de inicio máximo de 30k ciclos (un poco menos de 1 segundo), por lo que presumiblemente Bosch seleccionó un tiempo de retraso de inicio del orden de 1 segundo. Su fuente de reloj debe estar activa dentro del retraso de inicio después de encender el BNO055.

  4. Tenga en cuenta que una señal de reinicio no es suficiente para reiniciar el sistema de reloj del SAM D20, se requiere un reinicio de encendido (sección 14.8 de la hoja de datos del SAM D20). Por lo tanto, si su fuente de reloj de 32 kHz se puede restablecer durante el funcionamiento, es posible que deba controlar la alimentación del BNO055 para forzarlo a través de un restablecimiento de encendido cuando la fuente de reloj se restablece.

Para el PCB que estoy diseñando, decidí dejar el BNO055 con su propio cristal de 32.768kHz en lugar de manejar XIN32 con la señal de 32.768kHz ya disponible en la placa.

Espero que esto sea útil.

Es un trabajo excelente. (Vi el problema 'Iniciar sesión'/'Pin digital' antes de escribir y preguntar si había una respuesta general; bien identificado en el BMF055 y bien analizado). Por favor, manténganos informados si obtiene una respuesta de Bosch. FWIW mi lectura de 17.6.3 es que el bit 'Crystal Oscillator Enable' cambiará XOUT32 por GPIO pero no afectará las características de XIN32; pero la respuesta de Bosch o Atmel sería mejor. Por cierto, AQUÍ hay información útil sobre el BMF055.
Capitán Normal: Bosch proporcionó una respuesta y la he editado correspondientemente.
Excelente. Con respecto a su punto 3: el BNO055 después del reinicio tiene su SYS_TRIGGER:CLK_SEL como 0 (reloj interno), por lo que el uP de control puede esperar hasta que el reloj de 32 kHz esté activo antes de cambiar el BNO055 al reloj externo. Por lo tanto, supongo (respecto a su punto 4) que un reinicio será suficiente, sin controlar la alimentación del BNO055, a menos que me falte algo aquí.
Gracias por la inteligente sugerencia sobre el reloj de 32 kHz. Estoy usando un microcontrolador STM32F7. En esas partes, el oscilador de cristal de 32 kHz requiere hasta 5 segundos para comenzar. Me gusta su idea de dejar que el BNO055 se inicie usando el oscilador interno y luego cambiar el BNO055 al reloj externo de 32 kHz solo después de que el oscilador STM32F7 de 32 kHz esté estable.

Leer hojas de datos siempre es una buena idea. Para ampliar algunas preocupaciones sobre la conducción del nivel CMOS33 completo en XTAL-IN, podría haber algunas advertencias. En la búsqueda por ahorrar energía y tamaño de los dispositivos, los cristales son cada vez más pequeños. Y requieren cada vez menos potencia de accionamiento (microvatios) para no estar "sobreexcitados". Lo que significa voltajes bajos. Lo que significa transistores/puertas de bajo voltaje. Como resultado, los diseñadores emplean circuitos de bajo voltaje localmente y pueden tener algunas limitaciones en los umbrales/niveles de entrada. Conozco un diseño en el que la sobretensión en XIN podría causar una grave degradación de la vida útil, al menos teóricamente, mientras funcionaba en pruebas cortas. Entonces, siga los consejos de Olin y lea la hoja de datos.

(Vea también mi comentario sobre la respuesta de Olin). Estaba pensando en poner una resistencia alta (10k o 33k) en línea con la conexión para evitar una sobrecorriente si presiono los topes finales en una entrada no diseñada para rango completo Voltaje. ¿Cree que eso sería suficiente para evitar daños a largo plazo, en ausencia de más información?
@CaptainNormal, de la hoja de datos, designan claramente una opción para XIN32 como "entrada OSC opcional", y la tabla de pines dice "ENTRADA digital". Entonces deberías estar bien sin ningún limitador.

Solo la hoja de datos puede decirle esto con seguridad. Dado que no proporcionó un enlace, no podemos decirle directamente si esto funcionaría.

Sin embargo, en la mayoría de los casos, las entradas del controlador de cristal son de alta impedancia con un umbral cercano al medio. Conducirlo con una onda cuadrada de amplitud completa debería funcionar. La mayor parte del tiempo. Probablemente.

Nuevamente, lea la hoja de datos .

Lectura de la hoja de datos

Ahora que ha proporcionado un enlace a la hoja de datos, podemos ver que, como era de esperar, responde directamente a su pregunta.

En la página 17, sección 2, Capacidades Máximas Absolutas , Tabla 2-1, se muestra:

Esto muestra claramente que cualquier pin que no sea de suministro está bien siempre que no exceda el rango GND a V DDIO en 300 mV en cada extremo. V DDIO es el voltaje de suministro para la sección lógica, por lo que obviamente GND a V DDIO no dañará ninguna entrada digital.

Además, en la sección 5.1 Pin-out , página 97, Tabla 5-1 Descripción de los pines , se aclara que la entrada de cristal se considera una entrada digital:

Si bien la entrada XIN32 probablemente se mantenga cerca de la mitad de su rango de voltaje cuando se usa un cristal (como se describe en detalle en la página 101), está completamente claro que conducirlo de 0 a V DDIO no causará daño .

Nuevamente, debe leer la hoja de datos. Solo hojear no es suficiente, aunque en este caso fue fácil encontrar las secciones relevantes rápidamente. Encontrar la información me tomó menos tiempo que copiar y pegar fragmentos en esta respuesta y escribir el texto alrededor de ellos.

Aquí está la hoja de datos , que por supuesto he leído. No pude encontrar la información, pero es posible que me haya perdido algo o que no sepa lo que estoy buscando. Como mencioné en mi comentario anterior, pensé que habría una respuesta generalizable a mi pregunta, pero aparentemente estoy equivocado.
Hay una respuesta general y la mía es correcta. La incertidumbre de Olin no se basa en el diseño, sino quizás en la incertidumbre del error del usuario, como poner una lógica de 5 V en un chip de 3,3 V. Puede asumir que la impedancia de entrada es > 1M y la capacitancia de entrada CMOS típica para ese dispositivo.
@Olin. Lo leí, pero no sabía que considerar la entrada de un Xtal como un "pin lógico", aunque en retrospectiva, "entrada digital" podría haber asumido que significaba lo mismo. Tampoco sabía si había alguna otra consideración especial que no estuviera detallada en la hoja de datos, pero que con el conocimiento de la implementación interna típica quedaría claro. También he sido mordido por hojas de datos incorrectas/descuidadas antes. Gracias por la aclaración.

La Xtal IN es la misma que cualquier otra entrada del inversor lógico CMOS. Entonces, sí, puede y puede usar un reloj externo de voltaje compatible.

Las respuestas posteriores parecen estar en desacuerdo con esto. Pero hablas con cierta autoridad... ¿Crees que se equivocan al pensar que depende mucho del chip cuyo XTAL-IN se está manejando?
No hay contradicción. El inversor es solo autopolarizado con 1 ~ 10M y el Xtalout es siempre la entrada invertida. Puede haber una puerta de transmisión interna para el reloj interno cuando está habilitado. Así están diseñados todos los Osciladores Xtal en CMOS. Por lo tanto, se aplican los niveles lógicos de entrada normales. Cuando se usa un resonador o xtal, la entrada ve una onda sinusoidal autopolarizada y el inversor tiene suficiente ganancia analógica para convertir a una onda cuadrada con un ciclo de trabajo del 50%. Los diodos de protección ESD evitan cualquier posible ganancia xtal con su alta impedancia por exceso de voltaje,
@CaptainNormal: " Las respuestas posteriores... " no tiene mucho sentido en StackExchange. El orden de clasificación predeterminado es por votos, por lo que las respuestas generalmente no aparecen en orden de fecha.
Pensé que era heurístico basado en las últimas ediciones. En cualquier caso, mi respuesta define el caso general y todos los casos a menos que alguien sepa de una excepción que aún tengo que ver. al menos este chip se hace de esta manera.