PWM en el Stellaris Launchpad

Eva Jiménez
Eva Jiménez

[Joonas] siguió los tutoriales “iniciales” de TI para su nuevo Stellaris Launchpad. Todo fue a nadar hasta [Joonas] Llegó al cuarto tutorial sobre interrupciones. Para la ira de los LED en todo el mundo, implementar PWM en el nuevo Stellaris Launchpad es una tarea un poco difícil. Después de golpearse la cabeza contra la documentación durante horas, [Joonas] finalmente rompió su problema de PWM y decidió compartir sus descubrimientos con el mundo.

El Stellaris tiene un modo PWM para sus seis temporizadores de hardware, pero desafortunadamente no hay unidades PWM en el chip. Para resolver este problema fue necesario hacer dos temporizadores de 16 bits a partir de uno de 32 bits. Esto permitió [Joonas] para especificar un valor de ‘carga’ y ‘coincidencia’.

Después de codificar esto, [Joonas] descubrió que el temporizador PWM solo funciona en dos de los pines del Launchpad. Horas después de Google, tenía un PWM real en su Stellaris Launchpad.

Considerando el tiempo [Joonas] gastado para este problema, nos complace ayudar a todos los demás tinkers de Stelaris frustrados, compartiendo esto.

  • jokkebk dice:

    Bueno, ¡esto ha aparecido! Para explicarlo, cada temporizador (y hay seis de ellos) con un PWM tiene dos pines a los que se puede conectar, y debe configurarse antes de que se inicie un PWM.

  • 0xfred dice:

    Interesante. Hice algunas cosas similares con temporizadores para controlar un controlador de motor paso a paso (tan interesado en el punto pero con un pulso fijo). No tuve problemas para usar interrupciones para permitirme activar manualmente los pines, pero eso parece más efectivo. Podría probar esta técnica cuando tenga la oportunidad.

    En cuanto a los “hechizos mágicos” para mapear funciones de pines, la herramienta PinMux facilita esto y le permite controlar las colisiones cuando intenta hacer más de una cosa con un pin.
    http://www.ti.com/tool/lm4f_pinmux

  • Keegs dice:

    ¡Buen material! Pasé el último día jugando con los PWM. Será interesante ver qué puedo aprender de lo que ha hecho.

  • Otra vez dice:

    Dejé de usar el MSP430 cuando llegué a PWM. Parece que estas cosas no tienen por qué ser tan difíciles, especialmente cuando están dirigidas a aficionados. Adivina por qué reinan avr y pic.

    • jpnorair dice:

      Stellaris tiene un modo PWM explícito. Está en la hoja de datos, no sé cómo Joonas se lo perdió. Básicamente, MSP430 también tiene uno: hay una sección en la guía del usuario.

  • Deg dice:

    Estoy un poco oxidado, pero ¿no son iguales los AVR? El “hardware” de PWM son solo salidas de los temporizadores.
    Sin embargo, buena escritura. Será útil cuando juegue con estas plataformas de lanzamiento.

  • Centro dice:

    Solo para aclarar las cosas.
    Trabajo con piezas CortexM3 Stellaris. Si no es PWM PERIFHERAL, no significa que no haya soporte de hardware PWM en TIMER PERIFHERALS. Puede ejecutar hardware PWM con 2 canales por temporizador si “divide” cada temporizador en 16 bits.
    Algunas piezas Stellaris con motor habilitado tienen un periférico adicional dedicado solo para PWM con muchas más opciones pero.
    Es un poco más difícil entender cómo configurar los temporizadores Stellaris para hacer PWM, especialmente para “dividir” un temporizador de 32b en dos de 16 bits 🙂

    Todavía estoy esperando mi Stellaris M4. No tengo idea de qué hacer con él, ya que tengo otras herramientas Stellaris M3 y no planeo usar FPU en el M4 🙁

  • svofski dice:

    La mera existencia de esta publicación dice montañas de calidad en la documentación de TI. Terror, nunca más.

    • tuxfool dice:

      En general, la documentación de TI me parece bastante buena. Un gran paso sobre el de STM o Atmel (¡escalofríos!).

      Sin embargo, en general, cualquier documentación para MCU puede ser bastante críptica, razón por la cual existen foros en línea.

      • svofski dice:

        Me gusta la documentación de AVR (excepto los bits de configuración de la operación PWM, que es una coincidencia: D) pero no he visto las hojas de datos más nuevas. Al ver los desarrollos recientes en Atmel, me cuesta creer que sean terribles.

        Con MSP430, mi queja es cómo tienden a describir la arquitectura general y le permiten descubrirse a sí mismo, encontrando y buscando al menos 3 artículos diferentes sin referencia, cómo se hacen realmente las cosas en su dispositivo en particular. Esto me está volviendo loca. Especialmente cuando descubro que la función que más necesitaba resulta no estar en este dispositivo en particular que tengo listo. Eso es solo un simple mal.

      • Gabriel dice:

        otras dos cosas, siendo terrible, no hacen nada malo y bueno.

    • Nate dice:

      Honestamente, no puedo quejarme porque este complicado proceso de resolver las cosas conduce a un mejor pensamiento e investigación, es difícil, pero diablos, solo pagué $ 5 por esto con un microcable USB y en realidad un software gratuito jajaja

  • jpnorair dice:

    TI es una empresa multinacional con filiales en todo el mundo. La calidad de la documentación tiene mucho que ver con el afiliado. TI compró Chipcon en 2006, creo. La documentación tardó años en completarse; todavía no es nada comparado con los documentos publicados por la unidad MSP430. TI compró Luminary en 2009 y allí adquirió Stellaris. Teniendo en cuenta que Stellaris se ha utilizado bastante para los controladores de motor, supongo que el problema es en realidad que las funciones PWM son mucho más avanzadas de lo que está acostumbrado con el AVR / PIC y, por lo tanto, un poco difíciles de tomar. .

  • alguien dice:

    Oh, me gustaría poder unirme aquí, pero en cambio estaré furioso por TI y porque todavía no he recibido el equipo que pedí el día del lanzamiento.

    Entonces, ¿cuándo llegará realmente? ¡Me saca la mierda!

    • mental2k dice:

      TI dio una fecha de envío estimada con cada pedido, como no furioso y simplemente iniciando sesión en el sitio web de TI y mirando la fecha de envío estimada en lugar de ser un mechón. ¡Enviaron el mío 8 días antes!

      Si la fecha de envío estimada ha pasado y aún no se ha enviado, ¿cómo puede enviar un correo electrónico a TI y preguntarles al respecto? En lugar de ingresar a un sitio web que no está afiliado a TI y es desagradable.

      Es posible que su pedido no se haya completado porque no sabía que se suponía que debía presionar el botón de pedido.

  • Berslan dice:

    El mío acaba de llegar y cuando opera la placa, comienza a cambiar de color con el LED RGB integrado, como un programa de prueba. ¿No se hace esto con PWM? ¿Me estoy perdiendo de algo?

    • Centro dice:

      Se realiza con hardware PWM en periféricos temporizados.

  • Willaim dice:

    Vi esto hace unas semanas cuando traté de producir un programa PWM para mi miserable lanzador equipado con MSP430g2553, esperaba algunos paralelismos y una comprensión de su experiencia no sucedió, pero finalmente ejecuté mi programa pwm.
    Aunque mi calculadora de frecuencia no es la más precisa ni la más larga, pude comprobar que funciona bastante bien de 500Hz a 32Khz con 6 salidas de Port2 … que sin embargo supera mis requisitos.
    Me las arreglé para usar el temporizador 1 A0 y una salida taiv del temporizador A1
    ordenar un conjunto de valores de tiempo (bicicleta) de menor a mayor antes de tiempo y servir el elemento actual hasta que A0 se restablezca para dar la frecuencia.

    Haga todas las cosas difíciles fuera del temporizador, de lo contrario, nunca pasará por todos los pines antes de que A0 se reinicie

    La falta de multiplicación y división REAL fue un problema real, ya que una división entera es casi inútil y realmente apesta tener que hacer una división larga en micro y honestamente esa fue una de las partes más difíciles de todo este deber que permitía definir los porcentajes ciclos vencidos. La otra cosa que hice fue calibrar la frecuencia con el xtal externo y ahora funciona bastante estable, sin embargo, aunque era menos de $ 5, definitivamente fueron muchas compras y me tomó una semana llegar a donde supuse que lo haría. he tenido un día, supongo que al menos lo sé para la próxima vez

  • dellwoodbu dice:

    TI da un ejemplo de cómo controlar cada elemento del RGB con un temporizador PWM independiente. El ejemplo de qs-rgb que está programado en la placa usa el archivo en StellarisWare boards ek-lm4f120xl named rgb.c. El archivo rgb.c establece 2 temporizadores para generar 3 salidas, una para cada color.

  • astro75 dice:

    Creé métodos de uso más común para controlar pwm.
    https://github.com/astro75/stellaris-pwm/blob/master/main.c

Deja una respuesta

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