Estoy tratando de (con precisión) contar la cantidad de pulsos que recibe un controlador de motor paso a paso TI DRV8711 . Este controlador "convierte" un flanco ascendente, dependiendo de la configuración, a un paso completo o microstep. El MCU que estoy usando para generar esos pulsos PWM es un Freescale MPC5602D . La frecuencia del pulso será inferior a 30 kHz por motor paso a paso.
La aplicación para la que estoy usando este dispositivo es el control de posición con un motor paso a paso. Esto requiere un conocimiento preciso de los pasos tomados (dado que el motor paso a paso no se detiene).
¿Cómo se maneja ese tipo de controladores normalmente? ¿Utilizando un pin GPIO regular que se afirma en una rutina de interrupción del temporizador o mediante PWM? Quiero evitar abarrotar el bucle principal al afirmar y deshabilitar un pin GPIO. (Tengo que controlar 5+ motores paso a paso simultáneamente)
El conteo de los pulsos PWM enviados al controlador es trivial con un pin GPIO regular.
Por otra parte, ¿cómo se abordará el problema de con precisión contar el número de pulsos de PWM? ¿Se hace esto devolviendo la salida PWM a la MCU y utilizando un contador para contar los bordes ascendentes? Supongo que tengo que disminuir la frecuencia de PWM antes de alcanzar el número deseado de pulsos para deshabilitar la PWM antes del último pulso y, por lo tanto, garantizar que no se "supere" el punto de ajuste.