Hace unos dias en el hilo de la fresadora se planteo algo similar: y explique como funciona mas o menos esto del chopin, y porque no puede efectuarse con un pic. Aprovecho a ponerlo en este hilo, asi queda mas a manos para que pueda serle util a alguien.
La gracia de hacer un driver con control de corriente, es que el ducty del PWM no es fijo, sino en relación a la corriente que circula por las bobinas del motor, o sea que va variando cada vez que se energiza o cambia la polaridad de la bobina.
Para ver por que se hace esto, tenemos que partir del porque se usan drivers con control de corriente,
Partamos por ejemplo de un motor de 5V 1A, eso quiere decir que la bobinas del motor no debe circular mas de 1A, sino lo estaríamos sobre exigiendo, por ende no debemos aplicar una tensión de manera permanente mas de 5V.
Como todos sabemos en un driver con control de corriente se usan tensiones elevadas, del orden de las 10 a 20 veces la nominal del motor (en este caso los 5V)
Si hacemos un control de corriente fijo, ( fijo es que no varia cone le crecimiento de la corriente) es lo mismo que ponerle una fuente de menor tensión, ya que lo unico que varias vos es la tensión nominal sobre la bobina ( o sea el probedio de ese PWM).
No estas aplicando el verdadero concepto de un driver con control de corriente, que es compensar la contra FEM que se produce al momento de energisar una bobina o mas al cambiarle la polaridad.
(FEM: fuerza electro motriz)
El torque de un motor, es proporcional a la corriente que circula por la bobina, como todas sabemos por física el crecimiento de la corriente no es instantáneo, menos en una bobina que una de sus propiedades es que al momento de energizarla o cambiar la polaridad como en el caso de los bipolares se genera una "contra FEM" o sea una fuerza electro motriz que se opone a la circulación e la corriente,. con lo cual el crecimiento de la corriente no es instantáneo, sino que demora un cierto tempo, por ende el torque luego de energizar la bobina tarda también un cierto tempo, demorándose ese tiempo en producirse el paso, ya que el mismo se profuce cuando existe torque.
Ahora bien, de que depende ese crecimiento de la corriente, de dos factores, la impedancia de la bobina y el potencial o la tensión aplicada sobre dicha impedancia, la impedancia es fija y propia de cada motor, no podemos variarla, lo que si podemos es aplicar una mayor tensión, de ahí utilizar 10 o 20 veces la nomina.
Entonces al aplicar sobre la bobina un mayor tensión se logra que el crecimiento de la corriente sea mas rápido, con lo cual el torque también crece mas rapido, de esta manera cada paso tarda menos en ejecutarse (desde que energizamos la bobina hasta que físicamente el motor se mueve un paso). De esta manera si cada paso tarda menos, se pueden hacer mas pasos por minuto aumentando así las RPM.
El problema esta que no podemos usar de manera continua ese potencial mas elevado, ya que pos simple ley de ohm vemos que la corriente circulante seria excesiva, y terminaría estropeando el motor.
Entonces el driver lo que debe hacer es aplicar todo el potencial y hacer el WPM o choping cuando la corriente llega al valor adecuado, por ejemplo para el motor mencionado 1A.
En los drivers con control de corriente, en la entrada del negativo al puente H en un driver bipolar o a los colectores de los transistores de un driver unipolar se coloca una resistencia para censar la corriente, también conocidas como shunt, con lo cual tenemos una tensión análoga proporcional a la corriente circulante por la bobina, en base a esta tensión se controla el WPM del choping, ahí es donde se piensa que es posible utilizar un pic con AD y de esa manera determinar cuando variar el PWM, pero esa señal varia con cada paso y con el crecimiento de la corriente entre cada paso, lo cual no es posible discriminarla con un simple pic ya que la velocidad del AD no alcanza, hace un tiempo vi hecho esto pero con un DSP, ahí si la vel del micro alcanza para esto.
Podes hacer un control de corriente fácilmente con un comparador analogico y una compuerta slip flor tipo D.
El L297 en su interior lo que tiene es un comparador de quece justamente eso.
Saludos