Interfaz con (dos) controladores de motor PWM de puente completo para controlar un motor paso a paso

Estoy trabajando para interactuar con una PCB existente con chips de controlador de motor Full Bridge PWM integrados , que impulsan un motor paso a paso. La interfaz carece de cualquier tipo de paso estándar (reloj) o señales de dirección y solo puedo usar las señales de entrada que están allí. Hay dos chips para impulsar cada motor paso a paso, son Allegro A3959 . Quiero mantener todo como está, así que solo puedo trabajar con lo que está desglosado, pero puedo agregar un chip de interfaz usando las entradas disponibles.

Me gustaría agregar un nuevo controlador para controlar los chips, que solo puede proporcionar las salidas estándar de 'paso (reloj) y dirección'. ¿Cómo puedo lograr esto? He pensado en usar un chip de controlador de motor paso a paso L297 como intermediario, pero con solo entradas limitadas (y sin acceso a resistencias de detección), no creo que pueda usarlo. Incluso si tuviera acceso a las resistencias sensoriales, no sé cómo lo conectaría.

Por el bien de la simplicidad. He creado un diagrama muy generalizado de lo que tengo disponible para mí (los pin outs son generalizados):

Tablero de distribución de energía

Como puede ver, solo tengo disponibles los siguientes pines:

  • Fase A (dirección)
  • V REF A (regulación actual)
  • Fase B (dirección)
  • V REF B (regulación actual)
  • Dormir (esto controla muchas fichas en el tablero y no se puede considerar para pulsar)

Tengo entendido que puedo controlar fácilmente la dirección a través de los pines de fase A/B. Señal digital 0 para una dirección, señal digital 1 para la dirección opuesta. Sin embargo, ¿ cómo controlo el V REF con una señal de entrada de reloj?

La hoja de datos del A3959 establece lo siguiente:

Regulación de corriente. La corriente de carga está regulada por un circuito de control PWM de tiempo de inactividad fijo interno. Cuando se encienden las salidas del puente DMOS H, la corriente aumenta en el devanado del motor hasta que alcanza un valor de disparo determinado por la resistencia de detección externa (R S ) y la tensión de referencia analógica aplicada (V REF ):

VIAJE = V REF / (10 * R S )

En el punto de disparo, el comparador de sentido restablece el pestillo de habilitación de la fuente y apaga el controlador de la fuente. Luego, la inductancia de la carga hace que la corriente recircule durante el período fijo de inactividad. La ruta de corriente durante la recirculación está determinada por la configuración del modo de caída de corriente lento/mixto/rápido".

¿Es esto similar a una señal de reloj? (Nota: I TRIP ya está calculado perfectamente para la corriente del motor cuando V REF es un total de 5 voltios).

Si tuviera que suministrar 100% V REF , ¿se acumularía hasta el 100%, produciría un solo paso, se dispararía y luego esperaría el tiempo fijo antes de volver a funcionar?

¿Un V REF constante mantendría el motor en marcha, pulsando automáticamente?

La configuración completa de los chips en la configuración actual es la siguiente:

  • El pin de habilitación se mantiene constantemente alto.

"Si la habilitación se mantiene alta, la corriente aumentará hasta que alcance el nivel establecido por el circuito interno de control de corriente".

  • El modo EXT se mantiene constantemente bajo. Decaimiento = Rápido.

"Con EXT MODE bajo, modo de caída rápida, el par opuesto de salidas seleccionadas se habilitará durante el ciclo de apagado".

  • Los pines de modo de control de corriente interna se mantienen constantemente altos. Decaimiento = Rápido, %t APAGADO = 100%.
  • El temporizador en blanco PWM se mantiene constantemente bajo. T EN BLANCO = 6 / F OSCILADOR .
  • F OSCILATOR debe tener un valor típico de 4 MHz.
  • El tiempo de inactividad fijo suele ser de 24 μs con un oscilador de 4 MHz.
  • La lógica de suspensión se utiliza para minimizar el consumo de energía. No se debe utilizar como sustituto de habilitar.

Normalmente tengo una gran comprensión de los controladores de motores paso a paso. Sin embargo, todos los controladores de motor paso a paso con los que interactúo casi siempre tienen paso (reloj)/dirección como entrada estándar. Dado que se trata de un circuito chopper de fase/habilitación , se requerirá más experiencia (o un chip controlador especializado) para averiguarlo.

¿Cuál es el mejor enfoque?

Esto ha sido útil, pero en realidad no me ayuda a implementar nada: incrustado.com/print/4217719
Esto parece prometedor: ti.com/lit/an/slva416/slva416.pdf

Respuestas (1)

Parece que el A3959 está diseñado para controlar un motor de CC con escobillas, donde la aplicación de voltaje en una dirección produce una rotación continua, por lo que la entrada de FASE actúa como un control de avance/retroceso. Para un motor paso a paso, debe proporcionar las señales de dos fases en la secuencia correcta para obtener movimiento en cualquier dirección ingrese la descripción de la imagen aquí(esta es la figura 3 de su enlace: https://www.embedded.com/print/4217719 )

Como resultado, tiene dos de estos chips controladores y necesita producir esta señal para ambos. El L297, con una entrada de reloj y dirección, hará eso. Solo necesitará usar dos de las salidas, como A y C en 'modo normal' ya que el A3959 está generando la unidad complementaria al otro lado del puente.

"¿Es esto similar a una señal de reloj? (Nota: ITRIP ya se calcula perfectamente para la corriente del motor cuando VREF es de 5 voltios completos)." No , es un voltaje de CC que establece el nivel en el que opera el límite de corriente.

"Si tuviera que proporcionar el 100 % de VREF, ¿se acumularía hasta el 100 %, produciría un solo paso, se desconectaría y luego esperaría el tiempo fijo antes de volver a funcionar?" Sí, ¿ves el diente de sierra en la figura? Esa es la corriente que sube al valor límite y se corta, cuando cae durante el período de tiempo fijo, antes de que los transistores del puente se enciendan nuevamente. Entonces, la corriente seguirá subiendo hasta el valor límite.

"¿Un VREF constante mantendría el motor funcionando, pulsando automáticamente?" No, el motor solo gira un paso con cada activación de fase y permanecerá allí, realmente bloqueado en esa posición si la corriente de fase permanece encendida, hasta que se cambie el siguiente paso. Hay estrategias de medio paso (detalladas en la hoja de datos L297) donde una fase no tiene corriente en pasos alternativos, pero con los controles disponibles en los A3959 no tiene esa opción, tiene que hacer un paso completo, a menos que pueda falsificar un estado deshabilitado dejando caer la entrada Vref baja. No está diseñado para funcionar de esa manera, hay un pin ENABLE separado destinado al control PWM. En este punto, estaría tentado a programar un PIC para generar la secuencia de pulsos, pero el L297 le dará una unidad que funcione.

Entonces, en teoría, todo lo que necesito hacer es configurar mi corriente Vref y luego manipular la Fase A / B usando los pares complementarios A / C de L297. ¿Ignoraría las resistencias de detección de L297 y configuraría el oscilador de L297 en aproximadamente 4 MHz para que coincida con el oscilador en el A3959? Estoy considerando usar chips ATtiny85 para escribir una solución de micropasos personalizada, pero L297 también funcionaría.
Sí, simplemente conecte a tierra las entradas de detección en el L297 y deje que los A3959 realicen el control actual. Dado que no está utilizando muchas de las funciones del L297, es un desperdicio, algo basado en un ATtiny sería más barato, es una cuestión de tiempo invertido en configurar algo usando un microcontrolador. Hay una nota de aplicación en el sitio web de Microchip (ahora son dueños de Atmel) sobre este microchip.com//wwwAppNotes/AppNotes.aspx?appnote=en591569
Decidí portar el código a un ATtiny85 que debería hacer exactamente lo que estoy buscando y tener micropasos. Ahora entiendo mucho mejor todo el asunto de Vref y Phases. ¡Gracias por su ayuda!