Taller Pico Final

download Taller Pico Final

of 54

description

PIC - Microcontroladores y DSPs

Transcript of Taller Pico Final

PICOBLAZE

PICOBLAZE

RESUMEN:Softmicro de 8 bits Xilinx1 Introduccin2 Arquitectura Picoblaze3 Programacin en ensamblador Picoblaze4 Integracin con VHDLProcesadores Embebidos de 8 bitsPicoblazeMicroprocesador de 8 bitsEmpotrado en un FPGA XilinxSoft coreOptimizado ocupa 200 celdas lgicasMenos del 5% Spartan 3s200

AplicacionesDebido a que el desarrollo del software es usualmente mas fcil que crear hardware a la medida, la opcin de un microcontrolador es preferida para aplicaciones no criticas en el tiempo.Picoblaze requiere 2 ciclos para completar una instruccin Si el reloj del sistema es de 50 MHz, Picoblaze ejecuta 25 millones de instrucciones por segundoDiagrama de un fsmd y un microprocesador

Bus de datos de 8 bitsALU de 8 bits con banderas de acarreo e indicacin de cero16 registros de propsito general de 8 bits64 byte de memoria de datosFormato de instrucciones de 18 bitsBus de direcciones de 10 bits (1024 instrucciones)Stack de 31 palabras256 puertos de entrada256 puertos de salida2 ciclos de reloj por instruccin5 ciclos de reloj para respuesta de interrupcion Organizacin bsicaDiagrama a bloques de picoblaze

Top Level HDL modulesPicoblaze es un sistema organizado en 2 mdulos de alto nivel en HDL

El modulo KCPSM3 es el procesador Picoblaze

KCPSM3clk (entrada 1 bit), seal de reloj del sistemareset (entrada 1 bit), seal de resetaddress (salida 10 bits), direccin de la memoria de instrucciones, especifica la localidad de donde se va a leer la instruccininstruction ( entrada 18 bits), instruccin port_id(salida 8 bits), direccin del puerto de entrada o puerto de salidain_port(entrada 8 bits), datos de entrada de los perifricos de entrada /salidaread_strobe(salida 1 bit), strobe asociado con la operacin de entradaout_port( salida 8 bits), datos de salida hacia los perifricos de entrada/salidawrite_strobe (salida 1 bit) strobe asociado con las operaciones de salidainterrupt ( entrada 1 bit) solicitud de interrupcin de los perifricos de entrada/salidainterrupt_ack (salida 1 bit), reconocimiento de la interrupcin hacia los perifricos de entrada/salida

KCPSM3El segundo modulo es para la memoria de instrucciones

Durante el desarrollo usualmente almacenamos el cdigo ensamblado en la memoria y se configura como una ROM en el lenguaje de descripcin de hardware.

CONJUNTO DE INSTRUCCIONES57 INSTRUCCIONESInstrucciones del tipo:LgicasAritmticasDe prueba y comparacinCorrimiento y rotacinMovimiento de datosControl del flujo de programaRelacionadas con las interrupcionesMODELO DE PROGRAMACIN

FORMATO DE INSTRUCCIN

FORMATO DE INSTRUCCIN

Comparacin y Test

Comp: comparan 2 registros o bien reg cte y las banderas de Z y C se ponen a 1

FORMATO DE INSTRUCCIN

FORMATO DE INSTRUCCIN

FORMATO DE INSTRUCCIN

Instrucciones tipo lgicas

Aritmticas

De prueba y comparacin

Corrimiento y rotacin

Movimiento de datos

Control del flujo de programa

Relacionadas con las interrupciones

Directivas pblaze ide

Diferencias entre la sintaxis del kcpsm3 y Pblaze Ide

En matlab: Xlpb_asOtra manera de ensamblar unprograma es a travs de MATLAB. Paraesto, ejecutamos en la ventana decomandos >> cd c:\assembler; xlpb_as-p 'diego.psm'La primera instruccin cdc:\assembler es para ubicarnos en lacarpeta donde guardamos el programa yla segunda xlpb_as -p 'diego.psm' espara ensamblar el programa (se puedeexplorar en detalle el comando xlpb_asejecutando type xlpb_as en la ventanade comandos de MATLAB). Si elprograma no presenta errores, se tiene lasiguiente presentacin en pantalla:

ServomotorMotor de DC

Circuito de retroalimentacin un potencimetro mide la posicin del eje, para que el control mantenga la salida con precisin

Control de motor en lazo cerrado

Un controlador externo le dice al servo donde ir con una seal conocida como modulacin de pulso proporcional (PPM).

La modulacin por ancho de pulso permite un ciclo de trabajo ( el porcentaje de tiempo en alto contra el tiempo en bajo) que es de 0 al 100 porciento del tiempo del periodo

La PPM usa de 1 a 2 ms de salida de los 20 ms posibles de tiempo de periodo para codificar su informacin

La duracin de los impulso indican el Angulo del giro del motor, cada servo motor tiene su margen de operacin que corresponden con el ancho de impulso mximo y mnimo que el servo entiende y que mecnicamente no puede sobrepasar

Servomotor Futaba 3003

El periodo entre pulso y pulso no es critico

Se suelen emplear valores entre 10 ms y 30 ms, aunque es habitual utilizar 20 ms que implican una frecuencia de 50 HzPara que un servomotor mantenga la misma posicin es necesario enviarle continuamente un pulso de ancho constante

Si se deja de enviar pulsos o el intervalo entre pulsos es mayor del mximo permitido entonces el servomotor perder fuerza y dejara de intentar mantener su posicin.Algoritmo de Control ServomotorinicioLeer dato puerto de entradaContadores y banderas a 0Poner a 1 el puerto de salidaRetardo de 300 sPuerto entrada = contador?contador + 1Retardo de 10 snoPoner a 0 el puerto de salidaCantidad bajo = 200 dato puerto de entradaContador bajo + 1Retardo de 10 sCantidad bajo = contador bajo?Retardo de 17.7 mssinosi