Está en la página 1de 7

1

UNIVERSIDAD INDUSTRIAL DE SANTANDER


ESCUELA DE INGENIERAS ELCTRICA, ELECTRNICA Y DE TELECOMUNICACIONES

Perfecta Combinacin entre Energa e Intelecto

Informe Mini-proyecto
Control de
posicin angular de un motor
Andrs Serrano 2092021
Erika Zrate 2092017
Presentado a: PhD(c) Sergio Alberto Abreo Carrillo
INTRODUCCIN
Debido a las diferentes herramientas que se tiene se quiere
presentar el desarrollo del control de posicin del ngulo de un
motor, para esto se trabajar con Picoblaze y con ISE. Estas
dos herramientas me permiten la descripcin de hardware y de
software, lo que posibilita hacer en detalle el circuito que
conecta los diferentes bloques como: los perifricos de entrada
y de salida, el procesador, los anti-rebotes, ADC (conversor
anlogo a digital), etc. Esto se puede realizar a travs de la
herramienta ISE mientras en Picoblaze mediante el lenguaje
assembler se realiza el control de la planta (motor), all se
puede observar cada uno de los nombres asignados a los
registros, los saltos, las operaciones que se realizan para que el
motor realice el comportamiento deseado.
CONVERTIDOR ADC
El ADC est normalmente incorporado en la placa de la
FPGA cuya referencia es LTC1407A para que el usuario
puedo hacer el uso de l haciendo una correcta descripcin del
circuito.
Esta placa suministra un ADC de dos canales que cuenta con
una resolucin de 14 bits, con voltaje de referencia de 1.65
voltios por canal y una frecuencia de muestreo segn el
datasheet de hasta 1.5MHZ si se le incorpora un reloj de
100MHZ, por lo que, segn el teorema de muestreo de
Shanon-Nyquist, puede soportar seales de frecuencia de hasta
700KHZ. Cada canal del ADC soporta entradas entre 0.4V y
2.5 voltios, motivo por el cual es necesario que en su entrada
se adecue el voltaje de la seal mediante algn circuito
sujetador o retenedor.
Las muestras digitales de la seal de entrada oscilan -8192 y
8192 contenidas en 14 bits en representacin de complemento
a dos que se entregan de manera serial en una misma seal del
ADC para ambos canales.
El primer paso para hacer un debido uso del ADC es adecuar
la seal de tal forma que se obtenga un ancho de banda de
ganancia grande para que el usuario pueda hacer un mejor
muestreo sin muchas limitaciones es este caso se procedi a
tener un ancho de banda grande con una resolucin baja.

Figura 1 control de seales anlogas


Como se mencion anteriormente para adecuar la seal se ve
en la figura 1 que el ADC viene acompaado de un
preamplificador programable de ganancia variable que se
muestra a continuacin con los respectivos rangos de cada
ganancia

Tabla 1
Las seales analgicas se conectan a los pines VinA o VinB
del conector J7, con un voltaje de referencia Vref=1.65V. El
1.65V de referencia se genera mediante un divisor de tensin
de los 3,3 v de la tensin de alimentacin. Como se observa en
la tabla 1 todas las ganancias estn invertidas.
La ganancia de cada amplificador se enva como una palabra
de 8 bits de comando, que consta de dos campos de 4 bits. El
bit ms significativo, B3, se enva primero.

2
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERAS ELCTRICA, ELECTRNICA Y DE TELECOMUNICACIONES

Perfecta Combinacin entre Energa e Intelecto

El resultado del circuito de captura (para uno de los canales)


corresponde a un valor en complemento 2 de 14 bits, que en
valor decimal y de manera general se explica de acuerdo a la
siguiente frmula:

Figura 2 Configuracin de la ganancia


Se observa que la salida AMP_DOUT del amplificador
contiene la informacin de la ganancia.
Estos valores pueden ser ignorados por la mayora de las
aplicaciones. La transaccin de bus SPI se inicia cuando la
FPGA coloca en bajo la seal AMP_CS. El amplificador
captura datos en serie de SPI_MOSI en el franco de subida de
la seal de reloj SPI_SCK. El amplificador presenta los datos
en serie AMP_DOUT en el flanco de bajada del a seal
SPI_SCK.

La ganancia es la configuracin cargado en el preamplificador


programable. Las diversas configuraciones permitidas para
ganancia y tensiones admisibles aplicadas a las entradas de
VINA y VINB aparecen en la tabla 1. La tensin de referencia
para el amplificador y el ADC es 1.65V, generados a travs de
un divisor de tensin que se muestra en la figura 1. En
consecuencia, 1.65V se resta del voltaje de entrada en VINA o
VINB. El mximo rango de la ADC es 1.25V, centrada
alrededor de la tensin de referencia, 1.65V. Por lo tanto,
1.25V aparece en el denominador para escalar la entrada
analgica.

Figura 5 Mximo y mnimo dato arrojado por el conversor


en complemento a dos
Figura 3 seales que intervienen en la configuracin de
ganancia
La configuracin se enva serialmente por el bus SPI_MOSI
(Master Out Slave In) partiendo por el bit B3 y terminando por
el bit A0. El registro de configuracin actualiza sus valores a
medida que les van llegando en los flancos de subida del reloj
SCK mientras la seal AMP_CS (chip select del amplificador)
se encuentra en 0 lgico, y la configuracin se termina cuando
se sube la seal AMP_CS (situacin en la cual ya se puede
utilizar el ADC).

IMPLEMENTACIN DEL CONVERTIDOR ADC

Figura 6 Interfaz SPI


Lo primero que se creo fue la interfaz de control del SPI cuyo
funcionamiento debe ser como el mostrado en la figura 6,
cuando AD_CONV toma el valor de cero se inicializa la toma
de datos de ambos canales VIN_A y VIN_B
independientemente de si se estn usando o no ambos a la vez,
hubo que ser cuidadoso con la cantidad de ciclos de reloj entre
los pulsos AD_CONV, los tiempos mnimos estn estipulados
en el PDF de la Spartan. Este bloque genera la seal de reloj
SPI_SCK la cual es utilizada en todo el proceso.

Figura 4 ganancias de los puertos de entrada A y B

3
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERAS ELCTRICA, ELECTRNICA Y DE TELECOMUNICACIONES

Perfecta Combinacin entre Energa e Intelecto

Figura 8 Esquema general

Figura 7 Pre amplificacin


La etapa de pre amplificacin debe hacer lo mostrado en la
figura 7, cuando AMP_CS se hace cero debe iniciar la captura
de la asignacin de los bits de ganancia, en total 8 bits que se
cuadraron en este caso 00000001 para generar una ganancia
de pre amplificacin de -1

Luego, AMP_CS se vuelve a hacer 1 y este bus no vuelve a


ser usado ms y de este modo queda configurada la ganancia,
este proceso debe hacerse al principio del programa, y la
ganancia es configurada una sola vez.
Otro bloque utilizado fue el convertidor serie-paralelo pues los
datos que arrojaba el convertidor eran en serie, tambin se
adicion un divisor de frecuencia dado que mientras estaba en
ejecucin el mdulo de ganancia, este deba procesarse a una
frecuencia mxima de 10 MHz, pero para evitar trabajar todo
el proceso con esta frecuencia se adicion un multiplexor que
enviaba al pin SPI_SCK la seal del divisor de tensin para
cuando este activa la etapa de pre amplificacin o el SPI_SCK
generado por la interfaz SPI para la toma de datos.

Figura 9 Planta y etapa de potencia

Fuentes VHD
Durante todo el proceso se utilizaron diferentes fuentes VHD,
a continuacin se explicar el funcionamiento de cada una de
ellas:
Debounce

Finalmente, para controlar algunas seales hubo necesidad de


crear una mquina de estados.
El resultado de la simulacin final se muestra en el anexo 1,
donde se observan primero la configuracin de ganancia y
posteriormente la adquisicin de datos acorde con el pdf de la
Spartan.

Se utilizaron 1 anti rebotes para el pulsador utilizado


proceso de inicializacin de la mquina de estado.
KCPSM3

Esquema general de funcionamiento


En la figura se muestra el esquema general de funcionamiento
de todo el proceso

VHD dado en clase.

el

4
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERAS ELCTRICA, ELECTRNICA Y DE TELECOMUNICACIONES

Perfecta Combinacin entre Energa e Intelecto

Convertidor

Interfaz SPI y mux de reloj


Convertidor de serie a paralelo devido que los datos que arroja
el conversor son en serie.
Divisor

Divisor de reloj que est activo mientras se configura la


ganancia del ADC.
Mquina de estados

Interfaz para la conversin ADC y multiplexacin de las


seales de reloj actuantes.

Fue necesaria para controlar el estado actual de las seales


dentro del ADC.
Pre amplificacin

Puesta en marcha
El funcionamiento del esquema es el siguiente, primero se
activa un pulsador de la Spartan para que inicie la toma de
datos en el conversor ADC, posteriormente se cuadra con
otros dos pulsadores el sentido de giro y la cantidad de ngulo
a girar determinada por las veces que se pulse
respectivamente, luego de esto otro pulsador dar inicio a la
ejecucin del control, y apenas el motor llegue a la posicin
deseada se parar automticamente, para realizar nuevamente
la escogencia del sentido de giro y la cantidad de ngulo.
Hubo problemas a la hora de la integracin de la etapa de
potencia por lo que finalmente se decidi no integrar esta parte

5
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERAS ELCTRICA, ELECTRNICA Y DE TELECOMUNICACIONES

Perfecta Combinacin entre Energa e Intelecto

con la parte digital para no poner en peligro la integridad de la


tarjeta Spartan, debido a la inestabilidad que en ocasiones
presentaba los TIP 41C y TIP 42C que podran resultar en
daos para esta tarjeta, pues pruebas hechas a slo esta etapa
probaron que en ocasiones arrojaban altos picos de corriente
que llegaran a ser potencialmente peligrosos. Se deja para
posteriores prcticas realizar algn tipo de circuito que proteja
la Spartan de estas corrientes pico.
URL videos sobre el proyecto
Para explicar mejor el funcionamiento del proyecto se
realizaron unos videos sobre el funcionamiento del mismo:
https://www.youtube.com/watch?v=rECDlqojPL4
https://www.youtube.com/watch?v=URcFgwjyphI
https://www.youtube.com/watch?v=108rhn2UfPY
https://www.youtube.com/watch?v=2s9DwgC30u8

Referencias
[1] PONG P. Chu., FPGA PROTOTYPING BY VHDL
EXAMPLES, 3rd Ed., 2008.
[2] Spartan-3A/3AN FPGA Starter Kit Board User Guide

ANEXOS

6
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERAS ELCTRICA, ELECTRNICA Y DE TELECOMUNICACIONES

Perfecta Combinacin entre Energa e Intelecto

Programa
Simulacin interfaz ADC

Assembler
NAMEREG s0, angulo
NAMEREG s1, pos
NAMEREG s2, new_pos
NAMEREG s3, orden ; inicio
NAMEREG s5, sentido
CONSTANT dato1, 00
CONSTANT dato2, 01
CONSTANT dato3, 02
CONSTANT dato4, 03
CONSTANT result, 00
;--------------------------------------------------------------------start:
input orden, dato3
compare orden, dato2
jump nz, start
carga:
input angulo, dato1
input pos, dato2
input sentido, dato4

7
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERAS ELCTRICA, ELECTRNICA Y DE TELECOMUNICACIONES

Perfecta Combinacin entre Energa e Intelecto

compare sentido, dato2


jump nz, carga_l
carga_r:
load new_pos, 00
add new_pos, pos
add new_pos, angulo
load s8, new_pos
jump testi
carga_l:
load new_pos, 00
add new_pos, pos
sub new_pos, angulo
load s8, new_pos
jump testi
testi:
input pos, dato2
compare pos, s8
jump z, stop
jump nc, sal_l

sal_r:
load s4, 01
output s4, result
jump testi
sal_l:
load s4, 02
output s4, result
jump testi
stop:
load s4, 00
output s4, result
jump start