mÓdulo 2 - unlp...del microprocesador frecuencia de reloj interna de 5 mhz. up16 0000 clr rx 0001...
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/69.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/70.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/71.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/72.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/73.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/74.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/75.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/76.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/77.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/78.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/79.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/80.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/81.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/82.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/83.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/84.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/85.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/86.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/87.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/88.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/89.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/90.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/91.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/92.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/93.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/94.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/95.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/96.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/97.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/98.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/99.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/100.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/101.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/102.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051908/5ffb498bb5b5825902715ad2/html5/thumbnails/103.jpg)
Período de la frecuencia = 40,959 us
CU12