+ All Categories
Home > Documents > MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001...

MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001...

Date post: 20-Sep-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
103
MÓDULO 2
Transcript
Page 1: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

MÓDULO 2

Page 2: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

PROYECTO CU9 DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL BASADO EN EL PROYECTO CU8, DONDE SE ADICIONA UN MODO DE DIRECCIONAMIEMTO INDIRECTO A MEMORIA DE DATOS, A TRAVÉS DE UN REGISTRO INDICE DENOMINADO "IX".

Page 3: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

RST CLK

CU9

BUS DATA_IN

BUS ADDRESS

MEM

OR

IA

uP16

CPU

PC

16R

MA

R

RX

IR

MD

RO

M

DR

I

MU

XM

AR

MUXRX

FPGA

CCR ALU

BUS CONTROL

BUS DATA _OUT

PORT A PORT B

ENTRADAS A FPGA SALIDAS DE FPGA

REGPA M

UX

MD

RI

REGPB

ENTR

AD

A S

A F

PG

A

IX

MU

XM

AR

2

Page 4: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IR 15

X”0000” 00000000 = CLR RX X”0100” 00000001 = INC RX X”0200” 00000010 = LDI RX X”0300” 00000011 = DEC RX X”0400” 00000100 = NOP X”8000” 10000000 = RST X”0500” 00000101 = LDD RX X”0600” 00000110 = STR RX X”070X” 00000111 = OPERACIONES ARITMÉTICO- LÓGICAS ENTRE MEMORIA DE DATOS Y REGISTRO “RX”. X”0800” 00001000 = STR RXL, PORT A X”09X0” 00001001 = BIT SET I, PORT A X”0AX0” 00001010 = BIT CLR I, PORT A X”0B00” 00001011 = INC PORT A X”0C00” 00001100 = DEC PORT A X”0D00” 00001101 = LDI RX, PORT B X”0E00” 00001100 = BTIJC, PORT B X”0F00” 00001101 = BTIJS, PORT B X”1000” 00010000 = JMP PC, DIR X”1100” 00010001 = JMP PC, IF Z, DIR X”1200” 00010010 = JMP PC, IF C, DIR X”1300” 00010011 = DEC RX, IF NZ X"1400" 00010100 = LDI IX X"1500" 00010101 = INC IX X"1600" 00010110 = LDD RX, IX X"1700" 00010111 = STR RX, IX

USO ESTOS BITS PARA ENTRAR EL CÓDIGO DE IDENTIFICACIÓN DEL BIT A SELECCIONAR: PORT_A(BIT 0) = “000” PORT_A(BIT 1) = “001” . . . . PORT_A(BIT 6) = “110” PORT_A(BIT 7) = “111”

RESERVADOS PARA OPER. CON LA "ALU"

Total: 40 instrucciones

Page 5: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

SE SUMAN LAS SIGUIENTES INSTRUCCIONES : LDI_IX CARGA INMEDIATA DE REGISTRO "IX". INC_IX INCREMENTO DEL CONTENIDO DEL REGISTRO "IX". LDD_RX_IX CARGA DE "RX" CON CONTENIDO DE MEMORIA APUNTADA POR REGISTRO "IX". STR_RX_IX CARGA DE MEMORIA APUNTADA POR REGISTRO "IX" CON EL CONTENIDO DE "RX".

CU9

DIRECCIONAMIENTO INDEXADO

Page 6: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

IX

Page 7: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

MUXMAR2

PC

MDRI IX

MU

XM

AR

2

SELEMUXMAR

Page 8: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

Page 9: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9 CONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO

0000 CLR RX 0001 LDI IX, 0A00 0002 0A00 0003 STR RX, IX 0004 INC IX 0005 INC RX 0006 STR RX, IX 0007 INC IX 0008 INC RX 0009 STR RX, IX 000A LDI IX, 0A00 000B 0A00 000C LDD RX, IX 000D STR RXL, PORTA 000E INC IX 000F STR RX, IX 0010 STR RXL, PORTA 0011 INC IX 0012 STR RX, IX 0013 STR RXL, PORTA 0014 INC RX 0015 JMP PC, 0001 0016 0001

RUTINA DE PRUEBA

Page 10: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9 SE PRUEBAN LAS INSTRUCCIONES RELACIONADAS CON EL REGISTRO IX

PRIMERO : SE ESCRIBEN LAS POSICIONES DE RAM DE 0A00, 0A01 Y 0A02 CON "STR RX,IX" SEGUNDO: SE LEEN DICHAS POSICIONES CON "LDD RX, IX" MIENTRAS SE ESCRIBEN EN PORTA. TERCERO: AL TERMINAR EL CICLO, SE INCREMENTA RX Y SALTA A "0001" DONDE SE REPITE TODO PERO CON NUEVOS VALORES DE "RX" EN UN LOOP INFINITO.

Page 11: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

RUTINA PARA DETECCIÓN Y EJECUCIÓN DE INSTRUCCIÓN LDI_IX

Page 12: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

Page 13: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

Page 14: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

Page 15: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

RUTINA SIMILAR A LA DE "LDI RX"

Page 16: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

Page 17: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

RUTINA PARA DETECCIÓN Y EJECUCIÓN DE LAS INSTRUCCIONES LDD RX, IX Y STR RX, IX

Page 18: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

Page 19: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

PARA RACIONALIZAR ESTADOS, VUELVO A UTILIZAR PARTE DE LAS RUTINAS DE "LDD RX, MEM" Y "STR RX, MEM" COMUNES A "LDD RX, IX" Y "STR RX, IX".

Page 20: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

RUTINA PARA DETECCIÓN Y EJECUCIÓN DE INSTRUCCIÓN "INC IX"

Page 21: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU9

Page 22: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

U16P

PROYECTO U16P EL MISMO DISEÑO EN VHDL DE MICROPROCESADOR DEL PROYECTO CU8, PERO ELIMINANDO LAS ENTRADAS-SALIDAS EMPLEADAS PARA TEST.

Page 23: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

COMO ERA DE ESPERAR, LA LÓGICA UTILIZADA NO HA VARIADO. SÓLO SE AHORRÓ EN LA CANTIDAD DE PINES DISPONIBLES QUE HA BAJADO A 18 (PORTA, PORTB, RST Y CLOCK)

Page 24: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16 PLACA DE0-NANO CYCLONE IV

PORTA PORTB(0)

RESET

PORTB(5,4,3,2)

CLK 50 MHZ

EP4CE22F17C6

Page 25: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

Page 26: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

EP4CE22F17C6

Page 27: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16KIT

DISTRIBUCIÓN DE COMPONENTES A UTILIZAR EN LA PLACA DE0-NANO

LAS ENTRADAS A LOS PINES E1 Y J15 TIENEN RESISTENCIAS DE PULL-UP POR LO QUE ESTÁN NORMALMENTE EN “1”.

Page 28: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16KIT

Page 29: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

PORTB(5)

PORTB(6)

PORTB(7)

Page 30: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16 VISTA DEL PIN PLANNER EDITOR

Page 31: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

DISPOSICIÓN DE PINES PARA COMPATIBILIDAD CON LA PLACA

Page 32: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

PORTA(0) PIN: A15 PORTA(1) PIN: A13 PORTA(2) PIN: B13 PORTA(3) PIN: A11 PORTA(4) PIN: D1 PORTA(5) PIN: F3 PORTA(6) PIN: B1 PORTA(7) PIN: L3 PORTB(0) PIN: E1 (CONEXIÓN AL PULSADOR KEY_1) PORTB(1) PIN: M1 (CONEXIÓN AL DIPSWITCH_0) PORTB(2) PIN: T8 (CONEXIÓN AL DIPSWITCH_1) PORTB(3) PIN: B9 (CONEXIÓN AL DIPSWITCH_2) PORTB(4) PIN: M15 (CONEXIÓN AL DIPSWITCH_3) PORTB(5) PIN: D5 (CONEXIÓN A GPIO-00 : PUERTO DE EXPANSIÓN) PORTB(6) PIN: C6 (CONEXIÓN A GPIO-01: PUERTO DE EXPANSIÓN) PORTB(7) PIN: B3 (CONEXIÓN A GPIO-02 : PUERTO DE EXPANSIÓN) CLOCKCU PIN: R8 (CONEXIÓN DIRECTA AL OSCILADOR DE 50MHZ) RESETCU PIN: J15 (CONEXIÓN AL PULSADOR KEY_0)

DISPOSICIÓN DE PINES PARA CONFIGURAR EL MICRO AL KIT

Page 33: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

PROYECTO U16PKIT01 PROYECTO CON EL MICRO UP16, SIMULANDO UN DESPLAZAMIENTO A IZQUIERDA DE UN BIT EN “1” POR EL PORT A, CON LAZO DE RETARDO. (DEBE VISUALIZARSE UN LED ENCENDIDO POR VEZ EN FORMA CÍCLICA DE DERECHA A IZQUIERDA).

Page 34: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

IMPLEMENTACIÓN DEL PROYECTO “UP16KIT01” EN EL KIT DE0-NANO CONSTANTE DE LAZO DE RETARDO = X”FFFF”. CONEXIÓN DEL PULSADOR KEY0 DE LA PLACA A LA ENTRADA DE RESET DEL MICROPROCESADOR. CONEXIÓN DE LA SALIDA DEL OSCILADOR DE 50 MHZ A LA ENTRADA DE RELOJ DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ.

Page 35: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

0000 CLR RX 0001 INC RX 0002 STR RX, X” 0800” 0003 0800 0004 LDI RX, X”FFFF” 0005 0FFF 0006 DEC RX, IF NZ 0007 LDD RX, X” 0800” 0008 0800 0009 STR RXL, PORTA 000A SLL RX 000B STR RX, X” 0800” 000C 0800 000D JMP PC, X”0004” 000E 0004

PROGRAMA 01

DELAY

LED7 LED0

0000 0000 0001 0100 0002 0600 0003 0800 0004 0200 0005 FFFF 0006 1300 0007 0500 0008 0800 0009 0800 000A 0715 000B 0600 000C 0800 000D 1000 000E 0004

NEMOTÉCNICO HEX

MÁXIMO VALOR DE RETARDO ...

8 BITS

Page 36: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

CONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO

Page 37: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

CICLO DE APROX. 394 ms POR CONTEO

SIMULACIÓN PARA EL GENERADOR DE SECUENCIA

Page 38: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

PROYECTO U16PKIT02 PROYECTO CON EL MICRO UP16, SIMULANDO UN DESPLAZAMIENTO A IZQUIERDA DE UN BIT EN “1” POR EL PORT A, CON DOBLE LAZO DE RETARDO. (DEBE VISUALIZARSE UN LED ENCENDIDO POR VEZ EN FORMA CÍCLICA DE DERECHA A IZQUIERDA).

Page 39: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

IMPLEMENTACIÓN DEL PROYECTO “UP16KIT02” EN EL KIT DE0-NANO CONSTANTE DE LAZO DE RETARDO EXTERNO = X”0005” Y PARA LAZO DE RETARDO INTERNO = X”FFFF”. CONEXIÓN DEL PULSADOR KEY0 DE LA PLACA A LA ENTRADA DE RESET DEL MICROPROCESADOR. CONEXIÓN DE LA SALIDA DEL OSCILADOR DE 50 MHZ A LA ENTRADA DE RELOJ DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ.

Page 40: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

0000 CLR RX 0001 INC RX 0002 STR RX, 0800 0003 0800 0004 LDI RX, 0005 0005 0005 0006 STR RX, 0801 0007 0801 0008 LDI RX, FFFF 0009 FFFF 000A DEC RX, IF NZ 000B LDD RX, 0801 000C 0801 000D DEC RX 000E JMP PC, IF Z, 0014 000F 0014 0010 STR RX, 0801 0011 0801 0012 JMP PC, 0008 0013 0008 0014 LDD RX, 0800 0015 0800 0016 SLL RX 0017 STR RXL, PORTA 0018 STR RX, 0800 0019 0800 0020 JMP PC, 0004 0021 0004

PROGRAMA 02

LED7 LED0

USAMOS DOBLE LAZO DE RETARDO EMPLEANDO RX Y UNA POSICIÓN DE MEMORIA DE DATOS

LAZO INTERNO

LAZO EXTERNO

MEM 0800 ALMACENA POSICIÓN DE DESPLAZAMIENTO MEM 0801 ALMACENA VALOR DE LAZO DE RETARDO EXTERNO.

Page 41: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

CONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO

LAZO EXTERNO

LAZO INTERNO

Page 42: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

PROYECTO U16PKIT03

PROYECTO CON EL MICRO UP16, SIMULANDO UN DESPLAZAMIENTO A IZQUIERDA Ó DERECHA DE UN BIT EN “1” POR EL PORT A, CON DOBLE LAZO DE RETARDO. CON EL PULSADOR KEY1 SE CAMBIA EL SENTIDO DE DESPLAZAMIENTO DEL “1”, CADA QUE SE PULSA.

Page 43: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

EJECUTAR SRL

0802 FFFF

KEY1=1?

0802=0?

KEY1=0?

NO

NO

NO

SI

SI SI

EJECUTAR SLL

NOT 0802

DELAY

DIAGRAMA DE ESTADOS PARA EL CONTROL DE SENTIDO DE BARRIDO DEL GENERADOR DE SECUENCIA

PARTE DE LA RUTINA DEL PROYECTO ANTERIOR

0800 0000

EJEMPLO DE CONCEPTO DE SUBRUTINA

Page 44: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

LED7 LED0

SLL

SRL

IMPLEMENTACIÓN EN LA FPGA CONECTANDO EL PULSADOR KEY0 A LA ENTRADA DE RESET DEL MICROPROCESADOR Y USANDO KEY1 COMO UN SELECTOR DE FUNCIÓN

Page 45: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16

RUTINA PRINCIPAL

SUBRUTINA DE GENERACIÓN

DE DELAY

EJEMPLO DE CONCEPTO DE SUBRUTINA

Page 46: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

UP16 0000 CLR RX 0001 INC RX 0002 STR RX, 0802 0003 0802 0004 BT1JS, 000F 0005 000F 0006 BT1JC, 0006 0007 0006 0008 LDD RX, 0802 0009 0802 000A NOT RX 000B STR RX, 0802 000C 0802 000D JMP PC, 000F 000E 000F 000F LDD RX, 0802 0010 0802 0011 JMP PC IF Z, 0018 0012 0018 0013 LDD RX, 0800 0014 0800 0015 SLL RX 0016 JMP PC, 001B 0017 001A 0018 LDD RX, 0800 0019 0800 001A SRL RX 001B STR RXL, PORTA 001C STR RX, 0800 001D 0800 001E JMP PC, 0100 001F 0100

PROGRAMA 03

0100 LDI RX, 0005 0101 0005 0102 STR RX, 0801 0103 0801 0104 LDI RX, FFFF 0105 FFFF 0106 DEC RX, IF NZ 0107 LDD RX, 0801 0108 0801 0109 DEC RX 010A JMP PC, IF Z, 0110 010B 0110 011C STR RX, 0801 011D 0801 011E JMP PC, 0104 011F 0104 0110 JMP PC, 0004 0111 0004

RUTINA DE DELAY

Page 47: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10

PROYECTO CU10

DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL BASADO EN EL PROYECTO CU9, ADICIONANDO UN CONTROLADOR INDEPENDIENTE DEL CONVERSOR ANALÓGICO-DIGITAL TIPO SERIE ADC128S022, QUE SE ENCUENTRA INTEGRADO EN LA PLACA DE0-NANO DE LA CYCLONE IV. .

Page 48: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

RST CLK

CU10

BUS DATA_IN

BUS ADDRESS

MEM

OR

IA

uP16

CPU

PC

16R

MA

R

RX

IR

MD

RO

M

DR

I

MU

XM

AR

MUXRX

FPGA

CCR ALU

BUS CONTROL

BUS DATA _OUT

PORT A PORT B

ENTRADAS A FPGA SALIDAS DE FPGA

REGPA

MU

XM

DR

I2

REGPB

ENTR

AD

A S

A F

PG

A

IX

MU

XM

AR

2

CO

NTR

OLA

DO

R D

E A

DC

CO

NV

ERSO

R

AD

C S

ERIE

Page 49: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10

A10 B10 A9 B14

Page 50: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10

Page 51: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10

CONTROLADOR DE ADC CONVERSOR

ADC SERIE

uP16

csn_adc

clock_adc

dout_adc

din_adc

salid

a_co

ntr

add

r_co

ntr

end

_of_

con

v

star

t_co

ntr

FPGA

muxmdri <= salida_contr addr_contr <= salidair(7 downto 5)

ADC128S022

Page 52: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IR 15

X”0000” 00000000 = CLR RX X”0100” 00000001 = INC RX X”0200” 00000010 = LDI RX X”0300” 00000011 = DEC RX X”0400” 00000100 = NOP X”8000” 10000000 = RST X”0500” 00000101 = LDD RX X”0600” 00000110 = STR RX X”070X” 00000111 = OPERACIONES ARITMÉTICO- LÓGICAS ENTRE MEMORIA DE DATOS Y REGISTRO “RX”. X”0800” 00001000 = STR RXL, PORT A X”09X0” 00001001 = BIT SET I, PORT A X”0AX0” 00001010 = BIT CLR I, PORT A X”0B00” 00001011 = INC PORT A X”0C00” 00001100 = DEC PORT A X”0D00” 00001101 = LDI RX, PORT B X”0E00” 00001100 = BTIJC, PORT B X”0F00” 00001101 = BTIJS, PORT B X”1000” 00010000 = JMP PC, DIR X”1100” 00010001 = JMP PC, IF Z, DIR X”1200” 00010010 = JMP PC, IF C, DIR X”1300” 00010011 = DEC RX, IF NZ X"1400" 00010100 = LDI IX X"1500" 00010101 = INC IX X"1600" 00010110 = LDD RX, IX X"1700" 00010111 = STR RX, IX X”1800” 00011000 =START CONV CH I, ADC X”1900” 00011001 = LDD RX, ADC X”1A00” 00011010 = JUMP PC IF EOC NZ, ADC

USO ESTOS BITS PARA ENTRAR EL CÓDIGO DE IDENTIFICACIÓN DEL BIT A SELECCIONAR: PORT_A(BIT 0) = “000” PORT_A(BIT 1) = “001” . . . . PORT_A(BIT 6) = “110” PORT_A(BIT 7) = “111”

RESERVADOS PARA OPER. CON LA "ALU"

Total: 43 instrucciones

Page 53: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Controlador ADC Clock_50MHz

Reset

sal_controller

End of Conversion address

Controlador del conversor ADC128S022 (de la placa Terasic DE0-Nano - Cyclone IV)

ADC128S022

dout din sclk csn

FPGA

8 canales

CU10

Page 54: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

ADC128S022 CU10

Page 55: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

ADC128S022 CU10

Page 56: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

ADC128S022 CU10

Page 57: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

ADC128S022 CU10

Page 58: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

csn

start

t

t

t

t t t

clock

DIAGRAMA DE TIEMPOS DE LAS SEÑALES DE CONTROL

sclk

din

dout DB11 DB10 DB9 DB8 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Carga de datos al ADC: en cada flanco descendente de “sclk”. Lectura de datos desde el ADC : en cada flanco ascendente de “sclk”.

Momento de escribir al ADC Momento de leer el ADC

CU10

cuatro ceros

Page 59: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10 Código del controlador del ADC (Test en la placa DE0-Nano))

Page 60: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10

Se usan los 8 bits mas significativos de los 12 adquiridos para ser visualizados en los 8 LEDs de la placa DE0-Nano.

Page 61: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10

Page 62: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU10

Cómo se debe adaptar este proyecto para ser usado por el microcontrolador ...???

Page 63: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

LEDs (D7 .....D0) = dout (11 ....4) = 01110101 = 75 (hexa)

Vmedida = 1,54 V Vref = 3,32 V Lectura osciloscopio = 1879 Calculo para 1,54 V = 1889

Page 64: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

dout_adc

sclk

dout_adc = 0000011101010111 = 0757(hexa) = 1879 (dec)

Page 65: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

B16=GPI0_21=CSN

F15=GPIO_28=DIN F16 =GPIO_29=EOC

D16= GPIO_25=SCLK

G15=GPIO_212=DOUT

PIN PLANNER de este proyecto

Page 66: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

PROYECTO CU11

DISEÑO EN VHDL DE UN CONTROLADOR MASTER PARA BUS SERIE I2C PARA SER EMPLEADO COMO CONTROL DE TRANSFERENCIA DE DATOS ENTRE EL MICROCONTROLADOR Y LA MEMORIA EEPROM SERIE 24LC02B QUE POSEE LA PLACA TERASIC DE0-NANO CYCLONE IV.

Page 67: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Controlador I2C

Start

Clock_200KHz

Reset

Dataout

Datain

Controlador de bus maestro I2C Ejemplo con la memoria EEPROM 24LC02B

(de la placa Terasic DE0-Nano - Cyclone IV)

Memoria EEPROM (2Kbits serie I2C)

24LC02B

SDA SCL

FPGA Vdd Vdd

R_Wn

Addressin

Acnowledge

Error_out

End_of_Trans

CU11

Page 68: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

I2C BUS

La versión básica suele usar un dispositivo Master que controla por el bus desde un dispositivo Slave hasta 128 que pueden interactuar sólo con el Master. El bus es de 2 hilos, del tipo open-drain: Uno es un reloj (SCL) que gobierna el Master y el otro es de datos (SDA) que es bidireccional.

La versión extendida consiste de múltiples Master que pueden tomar el control del bus a través de un modo de arbitraje.

CU11

Page 69: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

I2C BUS Las líneas SCL y SDA deben terminar con una resistencia de pull-up y por lo tanto los terminales de dispositivos conectados a ellas deben admitir la bidireccionalidad. Todo proceso de comunicación para la transferencia de información debe consistir de una condición inicial de inicio (START) y una de finalización (STOP). En cada paquete enviado por el master se espera un reconocimiento del slave seleccionado. Si no responde debe generarse el apropiado manejo de error en dicha transferencia en una capa superior del protocolo de comunicación.

CU11

Page 70: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

I2C BUS

Los cambios en la línea de SDA para transferencia de datos se deben realizar siempre con SCL en bajo.

Para comenzar una transacción se debe generar un flanco negativo en SDA cuando SCL esté en alto.

Para terminar una transacción se debe generar un flanco positivo en SDA cuando SCL esté en alto.

CU11

Page 71: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

I2C BUS

Cuando el master comienza una transacción, manda una señal de START con SCL en «1». En los próximos 8 estados en bajo de SCL, manda 7 bits con la dirección del dispositivo elegido y otro bit en «0» o «1» para señalar que va a escribir o leer en el mismo. En el noveno ciclo de SCL, el master pone la línea SDA en «Z» y espera a recibir un dato por SDA (reconocimiento = acknowldge). Si recibe un «0» prosigue, sino ha habido un error. La cantidad de bytes subsiguientes son ilimitados y depende del sistema. Al finalizar cada byte se debe pedir reconocimiento. Para terminar se debe generar una señal de STOP.

CU11

Page 72: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

24LC02B(I2C 2K EEPROM)

Memoria EEPROM de 2Kbits en arreglo de 256 x 8. Bus de comunicación serie de dos cables tipo I2C. Velocidad de transferencia de 100KHz ó 400KHz. Protección contra escritura por hardware. Retención de datos hasta 200 años. Mas de 1 millón de ciclos de borrado/escritura.

CU11

Page 73: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

24LC02B(I2C 2K EEPROM)

Este modelo de memoria tiene una identificación de 7 bits: 1010XXX.

CU11

Page 74: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

24LC02B(I2C 2K EEPROM)

La escritura de un simple byte "BYTE WRITE" se realiza enviando : 1 - Dirección del dispositivo. 2 - Posición de memoria. 3 - Dato. Se puede escribir también, en múltiples posiciones de memoria consecutivas (hasta 8) denominado "PAGE WRITE", desde la inicial, enviando cada dato con su respectiva confirmación (ACK).

MODO USADO AQUI

CU11

EL DISPOSITIVO AL RECIBIR EL "STOP" LUEGO DE UN PEDIDO DE "WRITE", COMIENZA UN CICLO INTERNO DE ESCRITURA QUE PUEDE TARDAR HASTA 5 ms...!!!

SE ESCRIBEN 8 BYTES CONSECUTIVOS

Page 75: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

24LC02B(I2C 2K EEPROM)

La memoria tiene un contador interno que se incrementa en cada acceso. Si por ejemplo, quedó apuntando en la dirección N, al generar una sesión de lectura como se muestra, se leerá el dato de la dirección N+1.

CU11

Page 76: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

24LC02B(I2C 2K EEPROM)

La forma convencional de lectura de una posición de memoria específica, es la de Random Read. Se deben generar dos ciclos: uno START-ACK y otro START-STOP. El primero direcciona el dispositivo y la posición de memoria deseada para leer. El segundo direcciona nuevamente el dispositivo pero indicándole que se lo va a leer y luego se adquiere el dato almacenado.

MODO USADO AQUI

CU11

Page 77: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

24LC02B(I2C 2K EEPROM)

El caso «secuencial» permite la lectura de varias posiciones de memoria consecutivas, terminando la transacción con una señal de STOP.

CU11

Page 78: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

En la placa Terasic DE0-Nano de Cyclone IV, las resistencias de pull-up ya están insertadas en la placa del impreso.

CU11

Page 79: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11 Código del controlador I2C

Basado en https://eewiki.net/pages/viewpage.action?pageId=4096079

Page 80: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

Page 81: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

IMPORTANTE: EL DISPOSITIVO 24LC02, AL RECIBIR EL STOP" COMIENZA UN CICLO INTERNO DE ESCRITURA QUE TARDA 5 ms...!!! => ESTO DEBE SER CONSIDERADO EN LA RUTINA DEL CONTROLADOR "I2C" PARA EL MANEJO DE LA MEMORIA 24LC02 .......!!!

QUE HABRÍA QUE MODIFICAR EN ESTE PROYECTO ...???

Page 82: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

Page 83: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

Page 84: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

Page 85: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

Page 86: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

Page 87: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU11

Page 88: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Simulación de dos rutinas de escritura en la memoria serie EEPROM de

dirección 1010xxx en las posiciones de memoria 00 y 01

CU11

Page 89: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Rutina completa de la primera escritura

CU11

Page 90: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Zoom de la primera rutina desde comienzo de START y escritura del CONTROL BYTE

CU11

Page 91: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Zoom de la primera rutina desde escritura de WORD ADDRESS y WRITE DATA

CU11

Page 92: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Rutina de la segunda escritura desde START e indicando CONTROL BYTE y WORD ADDRESS

CU11

Page 93: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Rutina de la segunda escritura desde WORD ADDRESS y WRITE DATA

CU11

Page 94: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU12

PROYECTO CU12

DISEÑO EN VHDL DE UN GENERADOR INDEPENDIENTE DE PWM (PULSE WIDTH MODULATION) PROGRAMABLE.

Page 95: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Generador PWM Clock_50MHz

Reset_in sal_pwm data_in

Genera una onda cuadrada de ciclo de trabajo variable y frecuencia ajustable . data_in (9 downto 0) = Define el ciclo de trabajo (resolución 1/1024 ó 1‰) data_in (13 downto 12) = Define la frecuencia de referencia(50, 25, 10 ó 5 KHz)

GENERADOR "PWM" (Pulse Width Modulation) CU12

Page 96: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

sal_pwm

clock_per

t

t

t

clock_50mhz

Desde 1 hasta 1022 ciclos de clock_per

mode_ucnt => "x x M1 M0 x x D9 ...............D0"

M1 M0 => F_pwm 0 0 50 KHz 0 1 25 KHz 1 0 10 KHz 1 1 5 KHz

Rango de 1 a 1023 períodos de clock_per para definir el "1" lógico

GENERACIÓN DE SEÑAL "PWM" (Pulse Width Modulation)

Desde 1022 a 1 Período de clock_per

CU12

Page 97: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU12

Código del Generador PWM

Page 98: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU12

Page 99: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU12

Page 100: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU12

Código del TestBench para el Generador PWM

Page 101: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

CU12

Page 102: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Período de la frecuencia = 20,48 us

CU12

Page 103: MÓDULO 2 - UNLP...DEL MICROPROCESADOR FRECUENCIA DE RELOJ INTERNA DE 5 MHZ. UP16 0000 CLR RX 0001 INC RX 0002 MEM 0800 STR RX, 0800 0003 0800 0004 LDI RX, 0005 ...

Período de la frecuencia = 40,959 us

CU12


Recommended