Despues de numerosas pruebas hemos hecho algunos cambios en el circuito Rev2.1d

Los cambios no incluyen el PCB. Solo, algunos valores de los componentes fueron cambiados.


Tarjeta del Translator:

Anadimos un capacitor de 0.1 uF (ceramic) entre Ref_Channel_A y tierra (Ground).
Anadimos un capacitor de 0.1 uF (ceramic) entre Ref_Channel_B y tierra (Ground).

Anadimos 2.2 uF tantalum Capacitor del pin 8 al pin 5(gnd) del opto-coupler chip.

Para ambas tarjetas (translator y Power):

Todos los capacitores de 1 uF y 10 uF tienen que ser capacitores de tantalio (Tantalum) !!

Power board:

Remplazamos los resistores de 10 ohm (que van al gate de los Mosfets) por 47 ohm 1/4 watt. (para mejorar dV/dt)

Remplazamos los IRL540N por IRL640 (aun cuando se usen fuentes de poder de menos de 50 voltios!!)

Descontinuado el uso del LM555 y componentes asociados en el oscilador del Chopper.

--------------------------------------------------------------------

Sobre el Codigo fuente:

-Cambio del "blanking time" a 2.2 uSec cambiando la siguiente linea:

'//////////////////////////////////////////////////////////////////////////////
'BLANKING TIME ADJUSTMENT BY CHANGING THIS REGISTER'S VALUE
Ocr0a = 22 'LOAD OUTPUT COMPARE REGISTER FOR TIMER0 IN ORDER TO GET 2.2uS Low Sync pulse
' (that is: 2.2 uS Blanking time)
'//////////////////////////////////////////////////////////////////////////////

Sacar uno de los dos "Nop" (comentandolo) en esta parte del codigo:

'WHAT OUTPUT SEQUENCE?
'================================================= ==============================
'Sequence to output (DEPENDING ON CURRENT QUADRANT)
'from here to the end of the interrupt routine it takes 1.76 uSec worst case
'Portb.1 = 0
If Q = 0 Then 'sequence 1010 FIRST QUADRANT
Portb.7 = 0 'B\
Portb.5 = 0 'A\
NoP 'inclusion of this delay (TWO NOPS) gives us 300 nSec dead time
'NOP
Portb.6 = 1 'B
Portb.0 = 1 'A
I = 1 'sinus counter state to UP
Else
If Q = 64 Then 'sequence 1001 SECOND QUADRANT
Portb.5 = 0 'A\
Portb.6 = 0 'B
Nop
' NOP
Portb.0 = 1 'A
Portb.7 = 1 'B\
I = 0 'sinus counter state to Down
Else
If Q = 128 Then 'sequence 0101 THIRD QUADRANT
Portb.0 = 0 'A
Portb.6 = 0 'B
Nop
' NOP
Portb.5 = 1 'A\
Portb.7 = 1 'B\
I = 1
Else 'sequence 0110 FOURTH QUADRANT
Portb.0 = 0 'A
Portb.7 = 0 'B\
Nop
' NOP
Portb.5 = 1 'A\
Portb.6 = 1 'B
I = 0
End If
End If
End If
'------------------------------------------------------------------------------

despues de este cambio el "dead-time" sera de 150 nSec.

Mi motor de prueba es uno de 495 oz-in Nema 23, Keling Technology, modelo KL23H286-20-8B. Logre que resonara a 250 rpm usando una fuente de 20 volt o menos (no es recomendable). No pude hacerlo detenerse de ninguna forma a 35 volt. logre alcanzar velocidades de mas de 2000 rpm usando full step a 35 volts con aceleraciones bajas.. Logre cerca de 1600 rpms (limitada por MACH3) a 1/8 micro-stepping con mayor aceleracion.

El efecto L/R comienza a mostrarse cerca de 200 rpm (@ 35VDC), distorsionando la subida sinusoidal de la corriente (convirtiendola en un diente de sierra), El cuadrante desde 90 - 180 grados (caida de la onda sinusoidal ) se mantiene sinusoidal debido a la caida rapida de la corriente (Fast decay), pero se distorsiona a mayores velocidades debido al efecto L/R.


Parametros de prueba:

Motor sin carga, descansando sobre una mesa de madera dura. (para hacerlo resonar)
Ajuste de corriente de : 2.81 A peak, 2.0 A r.ms @ full-step corregido automaticamente por el Translator.

Alimentacion de potencia Variable : 20 to 35 VDC (5 Amps) 15,000 uF Capacitancia total de salida.

Las proximas pruebas se haran con una fuente de 67 volt 10 Amp.