podemos observar las distintas señalesDescripción completa
investigacionFull description
Descripción completa
Descripción completa
Redes De DatosDescripción completa
Descripción completa
Descripción completa
Descripción: zxdvfsdb
dsPIC. Arquitectura Dispositivos Lógicos Programables Ingeniero de Telecomunicación
Arquitectura Arquitectura Harvard Datos de 16 bits Instrucciones Instrucciones de 24 bits PC de 24 bits Capacidad para ejecutar instrucciones instrucciones de 3 operandos en un ciclo: ej. A+B=C Instrucciones de dos tipos: MCU y DSP
Arquitectura
Dos bancos X e Y Memoria programa Memoria EEPROM Motor DSP 16 Registros W Periféricos Watchdog ….
Registros básicos
Registros W Mapeados en memoria W15, puntero de pila. RESET = 0x0800 W0…W3 tienen shadow (PUSH.S y POP.S) W14 permite definir un “stack frame pointer”
Memoria de programa
Memoria de programa
Se puede leer/escribir en la memoria de programa:
TBLRDL: TBLRDH: TBLWTL: TBLTH:
Leer parte baja Leer parte alta Escribir parte baja Escribir parte alta
Memoria de datos
Memoria de datos SFR: Special Function Registers Útil a partir de 0x800 La parte inferior puede mapearse como memoria de programa Las instrucciones tipo DSP “ven” un mapeo diferente
Memoria datos. Instrucciones DSC-MAC
Memoria de datos: SFR básicos
Memoria de datos: SFR básicos
Memoria datos: modos de direccionamiento
Directo a memoria Directo a registro Indirecto sobre registro
Con pre-incremento o pre-decremento Con post-incremento o post-decremento Con offset de registro (sólo en algunas instr.) MOV [W1 + W2], [W3++] Con offset de literal (sólo en algunas instr.) MOV [W1 + #0x020], [W3++]
Inmediato
Modos direccionamiento. Ejemplo
Direccionamiento de datos en memoria de programa A través del registro PSV A través de la instrucciones TABLE
Direccionamiento circular
XMODSRT, YMODSRT
XMODEND, YMODEND
Contienen la dirección de inicio de los buffers Contienen la dirección de fin de los buffers
MODCON
Indica el W (para X e Y) sobre el que se realiza el direccionamiento circular
Direccionamiento con inversión de bit
MODCOM,
BWM para seleccionar el W que se usa como puntero para el buffer
XBREV:
BREN, para habilitar el direccionamiento XB define el tamaño del buffer
Direccionamiento con inversión de bit
Oscilador
Oscilador primario externo Oscilador secundario a 32 kHz Oscilador interno RC de 8 MHz Oscilador interno LPRC de 512 kHz
Oscilador
Se configura en el registro FOSC En general el EC o el XT Input 4-10MHz Output 120 MHz máx. con PLL El PLL permite multiplicar la frecuencia
Oscilador XT, HS
EC
Oscilador (registros) FSOC
OSCON
Oscilador Ciclo de instrucción
I/O Ports
Registros
TRISx: “1” input, “0” output PORTx: Lectura o escrita en el puerto LATx: Para escribir= PORTx; Para leer, lee la entrada a los latches
Reset
POR: Power on Reset EXTR: Reset externo por el pin MCLR SWR: Instrucción de reset BOR: Brown-out reset WDTR: Reset por watchdog TRAPR: Cuando existen múltiples trap simultáneas UWR: cuando de utiliza un registro W sin inicializar como puntero
El registro RCON indica la causa del RESET
Temporizadores
Varios temporizadores de 16 bits Registros asociados:
Bits de interrupción asociados:
TMRx: Contador de 16 bits PRx: Período de 16 bits TxCON: Registro de control TxIE: Habilitación de interrupción TxIF: Flag de interrupción TxIP <2:0>: Prioridad de la interrupción
Tres variantes: A, B y C Algunos se pueden encadenar y formar 32 bits
Temporizadores
Tipo A
Tipo B
Puede funcionar con el oscilador de bajo consumo de 32kHz Puede funcionar de forma asíncrona con un reloj externo El Timer 1 es de tipo A Se puede encadenar con uno de tipo C y formar 32 bits La sincronización de reloj se produce después del prescalado El Timer 2 y el 4 suelen ser de tipo B
Tipo C
Se puede encadenar con uno de tipo B Al menos un temporizador de tipo C puede disparar una conversión A/D El Timer 3 y el 5 suelen ser de tipo C
Temporizadores (tipo A, TxCON)
Interrupciones
8 interrupciones tipo trap no enmascarables 54 vectores de interrupción Tabla alternativa (AIVT) se selecciona en registro ALTIVT
Interrupciones
Cada interrupción salta a una posición Registros asociados
INTCON1, INTCON2 IFSx IECx IPCx SR CORCON
Interrupciones: INTCON1
NSTDIS:
1 deshabiltadas las anidadas 0 habilitadas (por defecto) El resto asociadas con los conflictos TRAP
Interrupciones: INTCON2
ALTIVT: 1 tabla de vectores alternativa, 0 standard DISI: permite deshabilitar interrupciones INTxEP: Interrupciones externas
1 en el flanco negativo 0 en el positivo
Interrupciones: IFSx (Flags)
ADIF: Fin conversión A/D TxIF: Temporizador x INTxIF: Interrupción externa 0 INTxIF: Input capture canal x OCxIF: Outpu caputure
Interrupciones: IECx, habilitar int.
Interrupciones: prioridad CPU
La prioridad de la CPU se indica con IPL0..3 (registros SR+CORCON) Para deshabilitar las interrupciones usuario IPL2..0=111 (prioridad 7 CPU)
Interrupciones: prioridad
Registros IPC0..IPC11 P.e. T1IP, en IPC0 fija la prioridad de Timer 1 Por defecto la prioridad es 4 Prioridad 0 equivale a deshabiltarla