Calibración del oscilador controlado digitalmente MSP430

El MSP430 es un microcontrolador popular, y a bordo hay una fuente de reloj ordenada, un oscilador controlado digitalmente o DCO. Este oscilador se puede usar para todo, desde configurar velocidades en baudios hasta UART o configurar el reloj a la salida VGA.

Siempre que el DCO sea preciso, una vez que lo configure, seguirá funcionando a la velocidad correcta, no es correcto. Sin algún código, es difícil establecer el DCO de acuerdo con la velocidad, y el código para establecer esa tasa diferirá entre los diferentes chips.

Cuando [Mike] intentó configurar un UART entre MSP430 y el módulo Bluetooth, se encontró con un problema. Configurar el MSP a la velocidad de transmisión correcta fue difícil. Afortunadamente, hay una forma de evitarlo.

Existe una forma sencilla de configurar el DCO en el programa MSP; simplemente configure dos temporizadores: uno que interrumpe los 512 ciclos, con su fuente de reloj configurada en el DCO, y otro que interrumpe los 32768 ciclos que obtiene su reloj de cristal de 32.768 kHz. El primer temporizador hace clic cada segundo y, al multiplicar el primer temporizador por 512, se puede deducir la velocidad real del DCO.

Después de jugar con esta técnica y probar el mismo código en dos chips diferentes, [Mike] encontrado puede haber una diferencia de casi 1MHz entre los DCO de chip a chip. Sería útil saberlo cuando jugó con VGA en el '430. Luego solo usó cristal.

  • amstan dice:

    Creo que quiso decir que el DCO es exacto pero no exacto. Lo tienes al revés.

    • Brian Benchoff dice:

      anotado y cambiado

  • W dice:

    FFS Brian, hay ingenieros que visitan este sitio. Convertirse en "exacto" y "exacto" desde el principio simplemente hará que la gente se enoje.

    • David dice:

      Un ingeniero enojado aquí. Corrija este artículo. Me trajo de vuelta mi tic nervioso.

      • krs013 dice:

        "Para complacer a un ingeniero muy enojado e inteligente y alto y calvo y no muy calvo".

  • Vic20 dice:

    Hice algo similar hace algún tiempo si quieres comparar:
    http://r6500.blogspot.com.es/2014/10/calibrating-msp430-dco.html
    Publiqué un mensaje para hackear un día sobre la entrada de mi blog, pero no desapareció

  • METRO dice:

    ... y es por eso que MSP430 viene con valores personalizados para diferentes frecuencias de DCO. Cada dispositivo se recortó individualmente.

  • iOperator dice:

    ... y es por eso que MSP430 viene con valores personalizados para diferentes frecuencias de DCO. Un individuo para cada dispositivo.

  • DXR dice:

    Puede calibrar el DCO con las muestras en la carpeta de muestras.

  • No. dice:

    No es exacto y probablemente tampoco lo sea.

  • No. dice:

    Y los cristales de reloj típicos de 32,768 KHz tampoco son tan precisos, por lo que los buenos diseños incluyen un par de tijeras en el circuito.

    • Ralph Doncaster dice:

      Intente mirar una hoja de datos. 5 ppm o menos entre 15 y 35 ° C para el cristal es muy preciso en comparación con el DSO.

  • Jeff dice:

    Si bien esta técnica funcionará y servirá para varios propósitos, como la otra publicación mencionada anteriormente, TI también proporciona valores de adaptación calibrados de fábrica precargados para cada dispositivo para frecuencias comunes como 1MHz y 8MHz. Si necesita algo más que eso para un periférico, el dispositivo tiene barras invertidas para dividir la frecuencia que se alimenta a los periféricos.

    • Palmadita dice:

      De hecho, para ser honesto, yo mismo * nunca * usé la configuración directa de DCO. Siempre he usado la configuración CALBCS / CALDCO. Supongo que puede haber alguna razón exótica para usarlos, pero no se me ocurre nada en común. Siempre que necesite una frecuencia específica (no calibrada), el DCO no es lo suficientemente preciso.

      • krs013 dice:

        Sin embargo, no creo que todas las familias del MPS430 tengan eso. No puedo encontrar documentos sobre esto para la familia FR57xx, aunque tiene una calibración para el ADC.

        • Palmadita dice:

          Que yo sepa, las únicas familias del MSP430 que * necesitan * calibración tienen eso. Algunos de los MSP430 baratos tienen solo una frecuencia calibrada, pero eso es suficiente para UART.

          El FR57xx no requiere ajustes de calibración DCO porque solo hay 3 (6 para alta velocidad) frecuencias fijas disponibles y se adaptan en la fábrica.

  • Eric dice:

    Fwiw, la última serie MSP430 como F5xxx y algunas versiones de FRAM tienen un lujoso FLL que recortará automáticamente el DCO basado en el cristal de 32.768KHz. Esa es una buena característica ... Una vez descubrí que la velocidad máxima a la que podía alimentar el MSP430F5172 (en un LED parpadeante de bucle estrecho con retrasos de espera ocupados) es 56MHz.

  • Reg dice:

    Me gustaría señalar que el ajuste DCO generalmente implica el uso de un par de velocidades de reloj para ajustar la velocidad general del reloj. Esto a menudo funciona bien durante períodos de tiempo más prolongados, pero en períodos cortos de tiempo da como resultado un estrés temporal, lo que puede ser problemático en algunas aplicaciones. Por ejemplo, la placa F5529LP tiene un resonador de 4 MHz para la sincronización USB, aunque también tiene un kstal de 32 KHz.

    • Nuevo dice:

      Últimamente he estado practicando mucho con la placa MSP430F5529. El 4Mhz se proporciona con una escala previa y luego se ajusta a 48Mhz. El 32K-xtal es completamente no esencial o se usa para el material USB y el DCO ni siquiera se usa por razones de tiempo, creo. Ni siquiera puede utilizar el modo BSL USB programado fabricado sin un cristal de 4/8/12 / 24Mhz instalado.

  • Max dice:

    Si ya tiene un UART con un seguimiento de datos bastante estable, ni siquiera necesita un Crystal para la calibración. Solo obtienes tu sincronización de los bordes de la señal en el uart. Esto es especialmente fácil si domina el otro lado, ya que simplemente puede publicar marcos que contengan conocimientos.

    • Palmadita dice:

      Diablos, la USCI en el MSP430s tiene detección automática de velocidad en baudios de todos modos, por lo que ni siquiera tiene que hacer nada. Y, por supuesto, como se mencionó, cada MSP430 tiene al menos una frecuencia calibrada almacenada en un flash de información. Y TI incluye el software kaluma de todos modos si lo estropea y lo elimina.

  • táctil dice:

    De esta manera, calibra su DCO sin usar un cristal.

    https://github.com/analog10/UART_DCO_Calibrator

  • Nuevo dice:

    El perfeccionista que hay en mí dice que no hay razón para dejar que los resultados se apaguen hasta por 511 ciclos cuando hay interrupciones en el dispositivo que pueden conectarse en los momentos correctos, pero estoy seguro de que la calibración de esto es más que suficiente. mantener las cosas en línea.

  • azulado dice:

    Aquí hay publicaciones adicionales de 43oh para calibrar las constantes
    http://forum.43oh.com/topic/1943-comprehensive-dco-calibration/
    http://forum.43oh.com/topic/211-flashing-the-missing-dco-calibration-constants/

  • azul dice:

    Ya hay algo similar disponible en los ejemplos de código MSP430 si solo desea calibrar el DCO con un cristal externo. Así que no es tan especial, ¿o qué me estoy perdiendo? P.ej Para la serie G, busque msp430g2xx2_dco_flashcal.c - Aquí están todos los ejemplos de código para diferentes msp430: http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/tools_software.page#code

Eva Jiménez
Eva Jiménez

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *