Impresión 3D: controladores de motor paso a paso Trinamic TMC2130
HogarHogar > Blog > Impresión 3D: controladores de motor paso a paso Trinamic TMC2130

Impresión 3D: controladores de motor paso a paso Trinamic TMC2130

Jun 06, 2024

Ajuste la corriente de fase, aumente el micropaso y olvídese: eso es lo que la mayoría de la gente quiere de un controlador IC de motor paso a paso. Aunque alimentan la mayoría de nuestras máquinas CNC e impresoras 3D, como soluciones monolíticas para "hacerlas girar", normalmente no les prestamos mucha atención.

En este artículo, analizaré el controlador de motor paso a paso Trinamic TMC2130, uno que viene con más detalles de los que podría necesitar. Por un lado, este controlador se puede configurar a través de su interfaz SPI para adaptarse a prácticamente cualquier aplicación que emplee un motor paso a paso. Por otro lado, también puede escribir directamente en los registros de corriente de la bobina y ampliar el alcance de aplicabilidad mucho más allá de los motores.

El mes pasado, analizamos más de cerca los micropasos en los circuitos integrados de controladores paso a paso comunes, pero omitimos los que realmente queremos usar: los inteligentes. Trinamic ofrece algunos de los controladores de motores paso a paso más inteligentes del mercado y, desde que la tienda de hackers alemana Watterott lanzó sus placas de conexión SilentStepStick para TMC2100 y TMC2130, también están estableciendo un nuevo estándar para impresoras 3D, fresadoras y pick-and-place de bricolaje. robots. Recientemente adquirí un juego de ambos para mi impresora 3D Prusa i3, y el TMC2130 con su interfaz de configuración SPI realmente me llamó la atención.

El SilentStepStick TMC2130 no debe confundirse con la variante TMC2100, mucho más popular. Como sugiere el nombre, viene como una placa de conexión compatible con StepStick y, al igual que su hermano famoso, cuenta con un IC Trinamic en la parte inferior de la pequeña PCB. Varias vías y derrames de cobre conducen el calor lejos de la almohadilla central del IC, lo que permite que un disipador de calor en la parte superior enfríe efectivamente el controlador.

Sin embargo, a diferencia del TMC2100, este no dejará que los motores giren de inmediato. Tienes dos opciones: conectarlo en modo independiente, lo que prácticamente lo convierte en un TMC2100, o conectarlo a su interfaz SPI y marcar si quieres que tu motor paso a paso se agite o agite. De hecho, los abundantes registros de configuración hacen del TMC2130 un chip extremadamente pirateable, por lo que ni siquiera estoy pensando en conectar ese puente de soldadura en la parte inferior del SilentStepStick que activa el modo independiente.

Como se dijo, antes de que el controlador haga algo, quiere configurarlo, y vale la pena mencionar que todos los registros de configuración son naturalmente volátiles, por lo que si quiero usarlos en mi impresora 3D, necesito configurarlos como parte del inicio de la impresora. rutina.

RAMPS 1.4 en mi impresora 3D rompe la interfaz SPI de hardware del Arduino subyacente a través de su encabezado de pin AUX3, junto con dos pines digitales adicionales (D53 y D49), que utilicé para las señales de selección de cable. Después de engarzar un cable para conectar dos TMC2130 al encabezado AUX3, pude comenzar a profundizar en la parte del software.

Watterott proporciona un boceto de ejemplo, que escribe una configuración básica en los registros del controlador y hace girar un motor paso a paso adjunto. Genial, pero la hoja de datos describe 23 registros de configuración en espera de ser ajustados y 8 más para leer datos de estado y diagnóstico. Entonces, escribí una pequeña biblioteca Arduino que haría que los numerosos parámetros de configuración estuvieran disponibles de una manera más práctica. A partir de ahí, podría incluir mi biblioteca en el firmware de la impresora 3D Marlin-RC7 que estoy usando. Afortunadamente, la versión candidata actual de Marlin ya cuenta con soporte para controladores TMC26X, por lo que podría reutilizar parte de su código para armar una bifurcación de Marlin que incluye 59 de los parámetros del TMC2130 en sus archivos de configuración basados ​​en definición. Y luego podría llevar a los amiguitos a dar una vuelta.

Con el hardware configurado y el software funcionando como se suponía, realicé algunas pruebas de cordura: activando y desactivando parámetros y comprobando cómo cambia el comportamiento del controlador durante la impresión. Dado que el TMC2130 le permite ajustar casi todo lo que hace, ese es un buen primer paso que ayuda a eliminar algunas variables y seleccionar otras que merecen una mirada más profunda. La mayoría de las configuraciones se pueden cambiar sobre la marcha y durante la impresión; sin embargo, no todos los parámetros se pueden cambiar de manera segura mientras los motores están en funcionamiento.

Para ajustar realmente los controladores para una determinada aplicación, Trinamic proporciona una guía de inicio rápido en la hoja de datos, así como información detallada sobre cada parámetro y sobre cómo interactúan. Básicamente, el primer paso es ajustar la corriente RMS de la bobina utilizando el potenciómetro integrado en los SilentStepSticks. Luego, debemos elegir el pin de entrada analógica como referencia de escalado actual para utilizar el potenciómetro. La biblioteca mencionada me permite hacer esto mediante un método simple:

La corriente de funcionamiento y de mantenimiento son el primer parámetro real que se debe ajustar, siendo la corriente de funcionamiento normalmente la corriente máxima deseada y la corriente de mantenimiento al 70% de este valor. El retraso entre una parada y la transición de corriente en funcionamiento a corriente de mantenimiento se puede ajustar entre 0 y 4 segundos, y por ahora lo configuré en 4 segundos, prácticamente desactivando la reducción de corriente mientras la impresora 3D está funcionando. Los tres valores comparten un registro de sólo escritura, por lo que la llamada al método correspondiente se ve así:

y establece la corriente de funcionamiento al 100% (≙ 31), la corriente de mantenimiento a aproximadamente el 70% de este valor (≙ 22) y el retraso entre los dos a 4 segundos (≙ 5).

Quiero torque, para poder dejar StealthChop desactivado. La hoja de datos sugiere algunos valores iniciales para configurar el tiempo de apagado del helicóptero y los ajustes de tiempo en blanco del comparador, pero dado que es un equilibrio clave entre el ruido de conmutación y el par, tiene sentido iterar también sobre otros valores. Los métodos de biblioteca para los dos valores se ven así:

Y finalmente, necesito elegir una resolución de micropasos y elegir si quiero utilizar la función de interpolación de 256 micropasos, que se trata más adelante en este artículo:

Todavía tengo que recorrer todo el procedimiento de sintonización, que incluye monitorear la corriente de la bobina en el visor y eliminar distorsiones en el cruce por cero, pero estoy obteniendo una idea del potencial del controlador.

Su corriente RMS continua máxima de aproximadamente 1,2 A por bobina (al menos en el paquete QFN de los SilentStepSticks) le permite parecer un controlador de baja corriente, inferior a los A4988 y DRV8825 comunes. En la práctica, supera a ambos al hacer un uso inteligente de un margen de corriente máxima de 2,5 A. Esto le da un par más que suficiente para la impresión 3D. Sin embargo, no recomendaría empujarlos por encima de 0,9 A RMS, ya que el IC consumirá momentáneamente más corriente si necesita más. Para los usuarios de SilentStepStick, eso es un Vref de 0,88 V. A través de la interfaz SPI, puede elegir cuánta corriente desea enviar a través de las bobinas del motor cuando está girando y cuando está inactivo. Puede elegir después de cuántos segundos comenzará a disminuir la corriente a una corriente de mantenimiento más baja cuando el motor está parado, y luego a una corriente de ralentí aún más baja. Y, por supuesto, también puedes configurarlo para que exprima el máximo jugo a todo.

Donde empieza a ponerse interesante son configuraciones como el modo de alta velocidad. Por encima de un umbral de velocidad configurable, el controlador le ofrece cambiar automáticamente el helicóptero a un tiempo de caída más rápido para obtener algo de velocidad adicional. También puede literalmente cambiar de marcha permitiendo que el conductor cambie internamente del modo de micropasos al modo de paso completo una vez que haya alcanzado la velocidad.

La elección de una resolución de micropasos más fina suaviza el movimiento del paso a paso, reduce las vibraciones y, a veces, incluso aumenta la precisión del posicionamiento. Sin embargo, también multiplica la carga del microcontrolador, que debe producir 16, 32 o 256 veces más impulsos por segundo. El TMC2130 le permite elegir una resolución de entrada entre 1 y 256 micropasos por paso completo y luego le ofrece la opción de interpolar la resolución de salida a 256 micropasos. Esto permite un funcionamiento fluido incluso en controladores de movimiento AVR de 8 bits cada vez más retro, que no pueden ofrecer frecuencias de paso altas. Además, al configurar la interfaz del TMC2130 para pulsos de paso de doble flanco, puede al menos duplicar la frecuencia de paso casi sin costo. Dado que el IC moderno todavía presenta la interfaz clásica de paso/dirección e incluso un pin de habilitación, esas pocas características adicionales en realidad lo convierten en una excelente actualización para los componentes electrónicos de impresoras 3D y CNC menos recientes.

Al igual que el TMC2100, el TMC2130 presenta dos modos de conducción eficientes y silenciosos: spreadCycle y StealthChop. El primero ofrece un par alto con emisiones de ruido relativamente bajas, el segundo es casi inaudible y existen bastantes confusiones sobre si eso afecta o no el par: algunos usuarios experimentan un par drásticamente reducido, mientras que el artículo de Trinamic sobre el tema afirma lo contrario. . Por debajo de 300 RPM (velocidades típicas de impresión 3D), StealthChop no debería afectar el torque en absoluto. Según Stephan Watterott, los culpables podrían ser los pasos dobles y cuádruples, como se utilizan en la mayoría de los firmwares de impresoras 3D.

De cualquier manera, el flexible TMC2130 le permite ajustar el helicóptero usted mismo para encontrar el equilibrio adecuado entre torque, ruido y eficiencia para su aplicación. Una de las opciones más destacables en este sentido es la posibilidad de aleatorizar el tiempo de inactividad del helicóptero. Dado que la mayor parte del ruido audible se libera debido al dubstep (el helicóptero está ocupado cambiando las bobinas del motor paso a paso), esta opción distribuye el ruido en un rango de frecuencia más amplio para silenciar subjetivamente el motor paso a paso.

El TMC2130 detecta cuando el motor se detiene y pierde pasos midiendo el EMF posterior del motor. A lo largo del camino, cuenta los pasos perdidos, lo que permite al controlador compensar la pérdida de pasos que de otro modo sería irreversible. También es una excelente manera de reaccionar ante los obstáculos en lugar de chocar contra ellos con toda su fuerza y, por supuesto, la función se puede utilizar como tope final del eje. Trinamic llama a esta función StallGuard y, como cualquier otra cosa en este controlador de motor, es altamente configurable.

En lugar de dejar que el controlador del motor se encargue de todo por usted, también puede elegir el modo directo. Este modo prácticamente convierte al controlador en una fuente de corriente constante bipolar de dos canales con interfaz SPI. Aún puedes usarlo como controlador de motor, pero las posibilidades van mucho más allá. Vale la pena mencionar que la hoja de datos puede ser un poco confusa aquí, y el registro XDIRECT correspondiente en realidad acepta dos enteros de 9 bits con signo (no de 8 bits) para cada bobina y opera como se esperaba dentro de un rango numérico de, naturalmente, ± 254 (no ± 255) para variar la corriente entre ± Imax/RMS..

Aproximadamente medio año después del lanzamiento de la placa de ruptura de Watterott, el potencial de controladores de motores paso a paso más inteligentes despertó la curiosidad de la comunidad de impresión 3D, pero no ha sucedido mucho en términos de implementación. Es cierto que se necesita algo de esfuerzo para que funcionen. Si todavía estás ocupado ajustando la temperatura en tu impresora 3D, seguramente no querrás agregar algunas docenas de variables nuevas, pero si estás interesado en aprovecharla al máximo, el TMC2130 tiene mucho que ofrecer. : impresión silenciosa, impresión de alta velocidad, interrupción de la impresión en caso de error y recuperación de pasos perdidos. Debido a que el controlador IC es tan pirateable, está claro que está diseñado para adaptarse a aplicaciones específicas. Lanzarlo a un banco de pruebas de propósito general probablemente no producirá resultados significativos de propósito general.

Espero que hayas disfrutado echando un vistazo a un controlador de motor paso a paso más inteligente de lo habitual, como una de las nuevas fronteras de la impresión 3D de bricolaje y como un componente interesante con muchas otras aplicaciones. Si está pensando en experimentar con este IC o placa de conexión en su impresora 3D, no dude en probar mi horquilla Marlin para comenzar. Si estás construyendo algo completamente diferente, la biblioteca Arduino subyacente te ayudará. ¿Quién más está usando esta parte? ¡Estaré encantado de conocer tus ideas, aplicaciones y experiencias en los comentarios!