You are on page 1of 117

OSCILADOR

Oscilador de la Familia DSPIC33E/PIC24E


Oscilador de la Familia DSPIC33E/PIC24E
INTRODUCCIN
El sistemade oscilador dsPIC33E/ PIC24E incluye estas caractersticas:
Cuatro opciones de oscilador externo e interno
Oscilador auxiliar que proporcionalafuente de reloj al mdulo USB
LoopOn-chip de enganche de fase (PLL) paraaumentar lafrecuenciade operacin internade
seleccin internay fuentes de oscilador externo
Intercambio de reloj durante laejecucin de un programaentre diferentes fuentes de reloj
El modo de ahorro de energaDoze
Reloj apruebade fallos Monitor (FSCM) que detectael fallo del reloj y permite una
aplicacin segurarecuperacin o apagado
Bits de configuracin no voltiles paralaseleccin de fuente de reloj
Oscilador de la Familia DSPIC33E/PIC24E
Oscilador de la Familia DSPIC33E/PIC24E
La fuente de reloj del sistema (FOSC) puede ser
proporcionada por una de las siguientes opciones:
Oscilador Principal (POSC) en los pines OSC1 y OSC2
Oscilador Secundario (SOSC) en los pines SOSCI y SOSCO
Oscilador Interno Rpido RC (FRC) con divisor de reloj opcional
Oscilador RC de bajo consumo interno (LPRC)
Oscilador Principal con PLL
Oscilador Interno Rpido RC con PLL
Oscilador de la Familia DSPIC33E/PIC24E
Lafuente de reloj del sistemase divide por dos paraproducir el reloj interno ciclo de
instruccin. En lafigura, el reloj de ciclo de instruccin se denotapor FCY. El
diagramade tiempos de laFigurailustralarelacin entre el reloj del sistema(FOSC),
el reloj del ciclo de instruccin (FCY) y El contador de programa(PC).
El reloj del ciclo de instruccin interna(FCY) puede ser lasalidaen el pin OSC2 E/ S
si el Modo principal de oscilador o el modo de HS no se haseleccionado como fuente
de reloj
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DE FUENTE DE SELECCIN DEL
OSCILADOR (FOSCSEL) 0xF80006
Bit 7 Bit 0
Bits <15:8>: Bits reservados deben ser programados como 1.
IESO <7>: Bit de opcin de Puesta en Marcha Interno/Externo
1 =Dispositivo arranca con el oscilador interno FRC, entonces cambia
automticamente a la fuente de oscilador seleccionado por el usuario cuando
est listo
0 =Dispositivo arranca con el oscilador seleccionado por el usuario
IESO --- --- --- --- FNOSC<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DE FUENTE DE SELECCIN DEL
OSCILADOR (FOSCSEL) 0xF80006
Bit 7 Bit 0
Bits <6:3>: Bits reservados deben ser programados como 1.
NOSC <2:0>: Bits de seleccin inicial de fuente de oscilador.
111=Oscilador Rpido Interno RC con divisin por N (FRCDIVN)
110=Oscilador Rpido Interno RC con Divisin por 16 (FRCDIV16)
101=Oscilador Baja-Potencia RC (LPRC)
100=Oscilador Secundario (SOSC)
011=Oscilador Primario con PLL (XTPLL, HSPLL, ECPLL)
010=Oscilador Primario (XT, HS, EC)
001=Oscilador Rpido Interno RC con PLL (FRCPLL)
000=Oscilador Rpido Interno RC (FRC)
IESO --- --- --- --- FNOSC<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DEL OSCILADOR (FOSC) 0xF80008
Byte inferior
Bit 7 Bit 0
Bits <15:8>: Bits reservados deben ser programados como 1.
FCKSM <1:0>: Bits de Modo de Conmutacin de Reloj.
1x =Conmutacin de reloj deshabilitado, control a prueba de fallos deshabilitado
(FSCM).
01 =Conmutacin de reloj habilitado, control a prueba de fallos deshabilitado
(FSCM).
00 =Conmutacin de reloj habilitado, control a prueba de fallos habilitado (FSCM).
IOL1WAY<5>: Bit de configuracin de seleccin de pin perifrico.
1 =Solo permite una reconfiguracin
0 =Permite mltiples reconfiguraciones.
FCKSM <1:0> IOL1WAY --- --- OSCIOFNC POSCMD<1:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DEL OSCILADOR (FOSC) 0xF80008
Byte inferior
Bit 7 Bit 0
Bits <4:3>: Bits reservados deben ser programados como 1.
OSCIOFNC: Bit de Pin de Funcin OSC2 (excepto en los modos XT y HS)
1=El pin OSC2 es la salida de reloj del ciclo de instruccin (FCY).
0=El pin OSC2 es entrada/salida de propsito general.
POSCMD<1:0>: Bit de seleccin de modo de oscilador primario.
11 =Oscilador primario deshabilitado.
10 =Modo Oscilador HS Cristal (10 MHz a 60 MHz)
01 =Modo de Oscilador XT Cristal (3,5 MHz a 10 MHz)
00 =Modo EC (Reloj Externo) (0 MHz a 60 MHz)
FCKSM <1:0> IOL1WAY --- --- OSCIOFNC POSCMD<1:0>
Oscilador de la Familia DSPIC33E/PIC24E
Fuentedel
oscilador
Modo de oscilador FNOSC POSCMD Nota
S0 Oscilador Rpido Interno RC (FRC) 000 XX 1
S1
Oscilador Rpido Interno RC con PLL
(FRCPLL)
001 XX 1
S2 Oscilador Primario (EC) 010 00 1
S2 Oscilador Primario (XT) 010 01
S2 Oscilador Primario (HS) 010 10
S3 Oscilador Primario con PLL (ECPLL) 011 00 1
S3 Oscilador Primario con PLL (XTPLL) 011 01
S3 Oscilador Primario con PLL (HSPLL) 011 10
S4 Oscilador Secundario (SOSC) 100 XX 1
S5 Oscilador Baja-Potencia RC (LPRC) 101 XX 1
S6
Oscilador Rpido Interno RC con Divisin
por 16 (FRCDIV16)
110 XX 1
S7
Oscilador Rpido Interno RC con divisin
por N (FRCDIVN)
111 XX 1,2
Oscilador de la Familia DSPIC33E/PIC24E
1: funcin del pin OSC2 estdeterminadapor el bit
de configuracin OSCIOFNC.
2: Modo oscilador por defecto paraun dispositivo no
programado (o borrado)
Oscilador en modo de trabajo HS o XT
Oscilador de la Familia DSPIC33E/PIC24E
Oscilador en modo de trabajo EC con OSC2
como salida de reloj
Oscilador en modo de trabajo EC con OSC2
como puerto de entrada/ salida
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DEL OSCILADOR (OSCCON)
Byte superior
Bit 15 Bit 8
Bits <15>: Bit no implementado. Ledo como 0.
COSC<2:0>: Bits de Seleccin de Oscilador Activo. (Solo Lectura)
111=Oscilador Rpido Interno RC con divisin por N (FRCDIVN)
110=Oscilador Rpido Interno RC con Divisin por 16 (FRCDIV16)
101=Oscilador Baja-Potencia RC (LPRC)
100=Oscilador Secundario (SOSC)
011=Oscilador Primario con PLL (XTPLL, HSPLL, ECPLL)
010=Oscilador Primario (XT, HS, EC)
001=Oscilador Rpido Interno RC con PLL (FRCPLL)
000=Oscilador Rpido Interno RC (FRC)
Bits <11>: Bit no implementado. Ledo como 0.
--- COSC<2:0> --- NOSC<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DEL OSCILADOR (OSCCON)
Byte superior
Bit 15 Bit 8
NOSC<2:0>: Bits de seleccin de Oscilador Nuevo.
111=Oscilador Rpido Interno RC con divisin por N (FRCDIVN)
110=Oscilador Rpido Interno RC con Divisin por 16 (FRCDIV16)
101=Oscilador Baja-Potencia RC (LPRC)
100=Oscilador Secundario (SOSC)
011=Oscilador Primario con PLL (XTPLL, HSPLL, ECPLL)
010=Oscilador Primario (XT, HS, EC)
001=Oscilador Rpido Interno RC con PLL (FRCPLL)
000=Oscilador Rpido Interno RC (FRC)
--- COSC<2:0> --- NOSC<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DEL OSCILADOR (OSCCON)
Byte inferior
Bit 7 Bit 0
CLKLOCK: Bit de habilitacin de Bloqueo de Reloj
Si el cambio de reloj se activa y se desactiva FSCM (FCKSM <1:0>(FOSC
<7:6>) =01):
1 =Conmutacin de reloj deshabilitada, la fuente de reloj del sistema esta
bloqueada.
0 =Conmutacin de reloj Habilitada, la fuente de reloj del sistema puede ser
modificado por la conmutacin de reloj.
CLKLOCK IOLCK LOCK --- CF --- LPOSCEN OSWEN
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DEL OSCILADOR (OSCCON)
Byte inferior
Bit 7 Bit 0
IOLOCK: Bit de bloqueo de pin de seleccin de perifrico.
1 =Pin de seleccin de perifrico esta bloqueado.
0 =Pin de seleccin de perifrico no esta bloqueado.
LOCK: Bit de estado de bloqueo de PLL (lectura solamente)
1 =Indica que PLL esta en bloqueo o inicio de PLL o temporizador de arranque esta
parado.
0 =Indica que PLL esta en desbloqueo, el inicio de PLL o temporizador de arranque
esta desactivado.
Bit <4>: No implementado. Ledo como 0.
CLKLOCK IOLCK LOCK --- CF --- LPOSCEN OSWEN
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DEL OSCILADOR (OSCCON)
Byte inferior
Bit 7 Bit 0
CF: Bit de deteccin de falla de Reloj
1 =FSCM se ha detectado una falla de reloj.
0 =FSCM no se ha detectado una falla de reloj.
Bit <2>: No implementado. Ledo como cero.
LPOSCEN: Bit de habilitacin de oscilador secundario. (SOSC)
1 =Habilitacin del oscilador secundario.
0 =Deshabilitacin de oscilador secundario.
OSWEN: Bit de Habilitacin de Cambio de oscilador.
1 =Solicitud de cambio de oscilador de la seleccin especificados por el
NOSC<2:0>.
0 =Cambio de oscilador esta completada,
CLKLOCK IOLCK LOCK --- CF --- LPOSCEN OSWEN
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE DIVISION DE RELOJ (CLKDIV)
Byte superior
Bit 15 Bit 8
ROI: Bit de Recuperacin en interrupcin
1 =se borrara DOZE y el reloj del procesador.
0 =no tiene efectos sobre DOZE.
DOZE: Bits de seleccin de reduccin del reloj de procesador.
111=FCY dividido por 128
110=FCY dividido por 64
101=FCY dividido por 32
100=FCY dividido por 16
011=FCY dividido por 8 (por defecto)
010=FCY dividido por 4
001=FCY dividido por 2
000=FCY dividido por 1
ROI DOZE<2:0> DOZEN FRCDIV<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE DIVISION DE RELOJ (CLKDIV)
Byte superior
Bit 15 Bit 8
DOZEN: Bit de Habilitacin de modo DOZE.
1 =Habilita modo y DOZE<14:12>especifica la relacin entre el reloj perifrico y el
reloj de procesador.
0 =Relacin entre reloj perifrico y reloj de procesador forzado a 1:1.
FRCDIV: Bits de Post Escalador del oscilador interno rpido RC (FRC)
111=FRC dividido por 256
110=FRC dividido por 64
101=FRC dividido por 32
100=FRC dividido por 16
011=FRC dividido por 8
010=FRC dividido por 4
001=FRC dividido por 2
000=FRC dividido por 1 (Por defecto).
ROI DOZE<2:0> DOZEN FRCDIV<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE DIVISION DE RELOJ (CLKDIV)
Byte inferior
Bit 7 Bit 0
PLLPOST <1:0>: Bits de seleccin de divisor de salida PLL VCO (Tambin
denominado Post-escalador PLL, N2)
11 =Salida dividida por 8.
10 =Reservado
01 =Salida divida por 4. (Por defecto)
00 =Salida divida por 2.
Bit <5>: No implementado. Ledo como 0.
PLLPRE<4:0>: Bits de Seleccin de Prescalador del PLL, N1.
11111=Entrada dividida por 33

00001 =Entrada dividida por 3


00000 =Entrada dividida por 2
PLLPOST<1:0> --- PLLPRE<4:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE DIVISION DE REALIMENTACION DE PLL (PLLFBD)
Byte superior
Bit 15 Bit 0
Bits <15:9>: Bit no implementado. Ledo como 0.
PLLLDIV<8:0> : Bits de Multiplicador de PLL
111111111 =513

000110000 =50 (Por defecto)

00000010 =4
00000001 =3
00000000 =2
--- --- --- --- --- --- --- PLLDIV<8:0>
Oscilador de la Familia DSPIC33E/PIC24E
Diagrama de bloques del PLL
0.8 MHz FPLLI 8.0 MHz
120 MHz Fsys 340 MHz
15 MHz FOSC 120 MHz a125C
15 MHz FOSC 140 MHz a85C
VCO N2 PFD N1
M
FPLLI
FIN
FSYS
FOSC
PLLDIV<8:0>
PLLPOST<1:0> PLLPRE<4:0>
Oscilador de la Familia DSPIC33E/PIC24E
Calculo de FOSC
Calculo de FVCO
Oscilador de la Familia DSPIC33E/PIC24E
CONFIGURACIN PARA USO CON PLL oscilador principal (POSC)
El siguiente proceso se utilizaparaconfigurar el PLL paraoperar el dispositivo en 60 MIPS con 10 MHz de
cristal externo:
1. Paraejecutar las instrucciones a60 MHz, asegrese de que lafrecuenciade reloj del sistemarequerido es:
FOSC = 2 x FCY = 120 MHz
2. Paraconfigurar el PLL y cumplir con los requisitos de laPLL, sigaestos pasos:
a) Seleccione el postscaler PLL paracumplir con el requisito de lafrecuenciade salidadel VCO (120 MHz <FSYS
<340 MHz).
Seleccione unaescalapostscaler PLL de N2 = 2
Asegrese de que FSYS = (FOSC x N2) = 240 MHz
b) Seleccione el PLL prescaler paracumplir con el requisito de frecuenciade entradaPFD
(0,8 MHz <FPLLI <8,0 MHz).
Seleccione un porcentaje de PLL prescaler de N1 = 2
Asegrese de que FPLLI = (FIN N1) = 5 MHz
c) Seleccionar el divisor realimentacin PLL paragenerar lafrecuenciade salidadel VCO requeridaen base ala
frecuenciade entradaPFD.
FSYS = FPLLI x M
M = FSYS FPLLI = 48
d) Configure los bits FNOSC <2:0> en (FOSCSEL <2:0>) paraseleccionar unafuente de reloj sin el PLL (por
ejemplo, Internal FRC) en Power-onReset.
e) En el programaprincipal, cambie el PLL prescaler, PLL postscaler y divisor de retroalimentacin aestos
valores y acontinuacin, realizar un cambio de reloj al modo de PLL.
Oscilador de la Familia DSPIC33E/PIC24E
EJEMPLO DE CODIGO PARA EL CASO ANTERIOR
/ / Seleccionareloj internoFRC al producirse un POR
_FOSCSEL(FNOSC_FRC & IESO_OFF);
/ / Habilitapor intercambiode reloj y configuramodoPOSC en XT
_FOSC(FCKSM_CSECMD & OSCIOFNC_OFF & POSCMD_XT);
intmain()
{
/ / ConfiguraPLL prescaler, PLL postscaler, PLL multiplicador
PLLFBD=46; / / M=48
CLKDIVbits.PLLPOST=0; / / N2=2
CLKDIVbits.PLLPRE=0; / / N1=2
/ / Inicializaintercambiode reloj aoscilador primariocon PLL (NOSC=011)
__builtin_write_OSCCONH(0x03);
__builtin_write_OSCCONL(OSCCON | 0x01);
/ / Esperaqueintercambioocurra
while(OSCCONbits.COSC!= 0b011);
/ / Esperapor desbloqueodel PLL
while(OSCCONbits.LOCK!= 1);
Oscilador de la Familia DSPIC33E/PIC24E
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE ENTONACION DE OSCILADOR FRC (OSCTUN)
Byte superior
Bit 15 Bit 0
Bits <15:6>: Bit no implementado. Ledo como 0.
TUN<5:0> : Bits de Entonacin del oscilador FRC.
011111 =Frecuencia Centrada +11.625% (8.23 MHz)
011111 =Frecuencia Centrada +11.25% (8.20 MHz)

000001 =Frecuencia Centrada +0.375% (7.40 MHz)


000000 =Frecuencia Centrada (7.37 MHz Nominal)
1111111 =Frecuencia Centrada - 0.375% (7.345 MHz)

100001 =Frecuencia Centrada - 11.625% (6.52 MHz)


100000 =Frecuencia Centrada +12% (6.49 MHz)
--- --- TUN<5:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE OSCILADOR DE REFERENCIA (REFCON)
Byte superior
Bit 15 Bit 0
ROON: Bit de habilitacin de salida de oscilador de referencia.
1 =Salida de oscilador de referencia habilitado en el pin REFCLK.
0 =Salida de oscilador de referencia deshabilitado.
Bits <14>: Bit no implementado. Ledo como 0.
ROSSLP : Bit de oscilador de referencia ejecutado en modo Sleep.
1 =Salida de Oscilador de referencia habilitado en modo Sleep.
0 =Salida de Oscilador de referencia deshabilitado en modo Sleep.
ROSEL: Bit de seleccin de fuente de oscilador de referencia.
1 =Oscilador de Cristal es usado como seal de reloj de referencia.
0 =Reloj del Sistema es usado como reloj de referencia.
ROON --- RODDLP ROSEL RODIV<3:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE OSCILADOR DE REFERENCIA (REFCON)
Byte superior
Bit 15 Bit 0
RODIV<3:0>: Bits de divisin de oscilador de referencia.
1111 =Reloj de referencia dividido por 32768.
1110 =Reloj de referencia dividido por 16384.
1101 =Reloj de referencia dividido por 8192.
1100 =Reloj de referencia dividido por 4096.
1011 =Reloj de referencia dividido por 2048.
1010 =Reloj de referencia dividido por 1024.
1001 =Reloj de referencia dividido por 512.
1000 =Reloj de referencia dividido por 256.
0111 =Reloj de referencia dividido por 128.
0110 =Reloj de referencia dividido por 64.
0101 =Reloj de referencia dividido por 32.
0100 =Reloj de referencia dividido por 16.
0011 =Reloj de referencia dividido por 8.
0010 =Reloj de referencia dividido por 4.
0001 =Reloj de referencia dividido por 2.
0000 =Reloj de referencia sin divisin.
ROON --- RODDLP ROSEL RODIV<3:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE OSCILADOR DE REFERENCIA (REFCON)
Byte inferior
Bit 7 Bit 0
Bits <7:0>: No implementado, leidos como 0.
Bits<7:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE RELOJ AUXILIAR (ACLKCON3)
Byte superior
Bit 15 Bit 8
ENAPLL: Bits de habilitacin de PLL auxiliar (APLL), y selecciona APLL como fuente de reloj para
el USB.
1 =APLL es habilitado, la fuente de reloj del USB es la salida APLL.
0 =APLL es deshabilitado, la fuente de reloj del USB es la entrada de la APLL.
Bit<14>: APLLCK: Bit de estado de bloqueo de fase del APLL
1 =APLL est en bloqueo
0 =APLL no est en bloqueo
SELACLK: Bit de seleccin del divisor para la fuente de reloj auxiliar.
1 =PLL Auxiliar o oscilador proporcionan la fuente de reloj para el divisor de reloj auxiliar.
0 =PLL Primario proporcionan la fuente de reloj para el divisor de reloj auxiliar.
AOSCMD<1:0>: Bits de modo de Oscilador Auxiliar.
11 =Selecciona el modo oscilador EC(Reloj Externo).
10 =Selecciona el modo oscilador XT(Cristal).
01 =Selecciona el modo oscilador HS(High-Speed)
00 =Deshabilitado Oscilador Auxiliar (Por defecto).
ENAPLL APLLCK SELACLK AOSCMD<1:0> ASRCSEL FRCSEL ----
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE RELOJ AUXILIAR (ACLKCON3)
Byte superior
Bit 15 Bit 8
ASRSEL: Bit de Seleccin de fuente de reloj de referencia para APLL.
1 =Oscilador Primario es la fuente de reloj para APLL.
0 =Oscilador Auxiliar es la fuente de reloj para APLL
FRCSEL: Bit de seleccin de FRC como fuente de reloj de referencia para APLL.
1 =FRC es la fuente de reloj para APLL
0 =Oscilador Auxiliar o Oscilador primario como fuente de reloj para APLL.
Bit<8>: No implementado, ledo como 0.
ENAPLL --- SELACLK AOSCMD<1:0> ASRCSEL FRCSEL ----
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE RELOJ AUXILIAR (ACLKCON3)
Byte superior
Bit 7 Bit 0
APLLPOST<2:0>: Bits de Seleccin de Divisor de salida de APLL AVCO
111=Dividido por 2
110=Dividido por 2
101=Dividido por 4
100=Dividido por 8
011=Dividido por 16
010=Dividido por 32
001=Dividido por 64
000=Dividido por 256 (Por defecto).
Bit<4:3>: No implementado, ledo como 0.
APLLPOST<2:0> --- --- APLLPRE<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE RELOJ AUXILIAR (ACLKCON3)
Byte superior
Bit 7 Bit 0
APLLPRE<2:0>: Bits de Seleccin de Prescalador de entrada del APLL.
111=Dividido por 12
110=Dividido por 10
101=Dividido por 6
100=Dividido por 5
011=Dividido por 4
010=Dividido por 3
001=Dividido por 2
000=Dividido por 1 (Por defecto).
APLLPOST<2:0> --- --- APLLPRE<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DIVISION DE RELOJ AUXILIAR (ACLKDIV3)
Registro Completo
Bit 15 Bit 0
Bit<15:3>: No implementado, ledo como 0.
APLLDIV<2:0>: Bits de Seleccin de multiplicacin del PLL.
111=24
110=21
101=20
100=19
011=18
010=17
001=16
000=15 (Por defecto).
--- APLLDIV<2:0>
Oscilador de la Familia DSPIC33E/PIC24E
OSCILADOR AUXILIAR
POSCCLK
ENAPLL
FRCCLK
ASRCSEL
FRCSEL
APLL
ENAPLL
SELACLK
APLLPOST<1:0>
FOSC
N
ACLK
48 MHz
USB
3.5 MHz AUX_Fin 10 MHz
1
0
1
0
1
0
0
1
SOSCO
SOSCI
MDULO DE OSCILADOR AUXILIAR
Oscilador de la Familia DSPIC33E/PIC24E
Diagrama de bloques del reloj del USB
3 MHz AFPLLI 5.5 MHz
60 MHz AFsys 120 MHz
VCO N2 PFD N1
M
AFPLU
AFIN
AFSYS
ACKL
APLLDIV<2:0>
APLLPOST<2:0> APLLPRE<2:0>
48 MHZ
USB
OSC.
AUX.
SOSCO
SOSCI
3 MHz AUX-FIN 10 MHz
Oscilador de la Familia DSPIC33E/PIC24E
Calculo de ACKL
Calculo de AFVCO
Oscilador de la Familia DSPIC33E/PIC24E
CONFIGURACIN DE USO APLL con el oscilador AUXILIAR CON UN CRISTAL de 8
MHz
1. Borrar el bit ASRCSEL paraelegir el oscilador auxiliar como fuente de reloj paralaAPLL.
2. Borrar el bit FRCSEL paraelegir el oscilador auxiliar como fuente de reloj parael APLL.
3. Seteeel bit SELACLK elegir el PLL y osciladores auxiliares paraproporcionar lafuente de reloj parael
divisor de reloj auxiliar.
4. Sigaestos pasos paraconfigurar el detector de fase de entradade bits de Divisor APLL
(APLLPRE <2:0>), los bits divisor auxiliar PLL de realimentacin (APLLDIV <2:0>) y los bits APLL
VCO Divisor de salida(APLLPOST <2:0>) paraconfigurar el APLL de ACLK 48 MHz (utilizado
por el mdulo USB) usando un oscilador auxiliar 8 MHz:
a) Seleccione el APLL VCO divisor de produccin parasatisfacer el requisito de lafrecuenciade salidaAVCO
(60 MHz <AFSYS <120 MHz).
Seleccione un VCO relacin del divisor de salidaAPLL de N2 = 2
Asegrese de que AFSYS = (ACLK x N2) = 96 MHz
b) Seleccione lafase divisor de entradade detector APLL paracumplir con lafrecuenciade entradaAPFD
requisito (3 MHz <AFPLLI <5,5 MHz).
Seleccione un detector de fase relacin del divisor de entradaAPLL de N1 = 2
Asegrese de que AFPLLI = (AFIN N1) = 4 MHz
c) Seleccione el auxiliar PLL retroalimentacin divisor paragenerar lasalidadel VCO requerida.
Frecuenciabasaen lafrecuenciade entradaPFD.
AFSYS = AFPLLI x M
M = AFSYS AFPLLI = 24
5. Habilitar el PLL auxiliar configurando el bit ENAPLL.
Oscilador de la Familia DSPIC33E/PIC24E
Cdigo del programa Anterior
/ / Configure APLL prescaler, APLL postscaler, APLL divisor
ACLKCON3bits.ASRCSEL = 0; / / Seleccionaoscilador auxiliar comoreloj fuente
ACLKCON3bits.FRCSEL = 0; / / Seleccionaoscilador auxiliar comoreloj fuente
ACLKCON3bits.SELACLK = 1; / / Selecciona PLL auxiliar o oscilladorespara
proveer el reloj fuenteparael divisor de reloj auxiliar
ACLKDIV3bits.APLLDIV = 0b111; / / M = 24
ACLKCON3bits.APLLPRE = 0b001; / / N1 = 2
ACLKCON3bits.APLLPOST = 0b111; / / N2 = 2
ACLKCON3bits.ENAPLL = 1; / / Habilitareloj auxiliar
Consumo de Energa de la Familia DSPIC33E/PIC24E
MODOS DE CONSUMO DE ENERGIA
MODO SLEEP
MODO IDLE
MODO DOZE
Consumo de Energa de la Familia DSPIC33E/PIC24E
MODO SLEEP
Modo Sleepes el estado de consumo ms bajo. Las caractersticas de este modo son los siguientes:
El oscilador principal (POSC) y el oscilador FRC interno, se desactivan
El oscilador secundario (SOSC) sigue funcionando si el bit de habilitacin respectivo (LPOSCEN) en el
registro de control de oscilador (OSCCON <1>) estseteado.
El WDT, fuentes de reloj y el oscilador LPRC continan funcionando si el temporizador Watchdogest
activado. El WDT, si estactivado, se borraautomticamente antes de entrar en modo Sleep.
Si el bit habilitador del regulador de voltaje (VREGS) es borrado en el registro de control Reset(RCON
<8>), el regulador de voltaje interno entraen el estado de espera(Stand By). El regulador de tensin
consume unacantidad reducidade corriente en el estado de espera.
Si el bit habilitador del regulador de voltaje de memoriaflash es desactivado (VREGSF) en el Registro de
Control de reset(RCON <11>), el regulador de voltaje que alimentalamemoriaflash entraen el estado de
espera. El regulador de voltaje de Flash consume unacantidad reducidade corriente en el stand-by.
Los perifricos que funcionan con el reloj del sistemaestn desactivadas
El FSCM no funcionadurante el modo de Sleep, debido aque el reloj del sistemaestdesactivado
Consumo de Energa de la Familia DSPIC33E/PIC24E
MODO IDLE
El modoIDLEtienelassiguientescaractersticas:
LaCPUdetienelaejecucindeinstrucciones
Lafuentedereloj del sistemapermaneceactiva
ElWDTseborraautomticamente
Si elWDToFSCMestactivados, el LPRCsiguesiendoactivo
Losmdulosperifricos, por defecto, continanoperandonormalmentedesdelafuentedereloj del
sistema
Perifricosopcionalmentepuedenapagar suactividadenmodoIDLEconsubit decontrol deparada
enmodoIDLE(SIDL), queseencuentraenlaposicin13del registrodecontrol delamayoradelos
mdulosperifricos. El formatodenombredecampodebitsgenricoes"xxxSIDL" (donde"xxx" es
el nombrenemotcnicodel dispositivoperifrico).
Cuandoel dispositivosaledel modoIDLE, laCPUcomienzaaejecutar lasinstruccionesdentrodelos
ochociclosdereloj del sistema.
Consumo de Energa de la Familia DSPIC33E/PIC24E
MODO DOZE
Lamejor estrategiaparareducir el consumodeenergaescambiar lavelocidaddereloj einvocar el mododeIDLEo
SLEEP. Sinembargo, puedehaber circunstanciasenlasqueestaestrategiano es prctica. Lossiguientesefectos
debenser considerados:
Lamanipulacin delavelocidad de reloj del sistemaalteralavelocidad perifricade comunicacin y puede
introducirerroresdecomunicacin
El uso de un modo de ahorro de energabasadaen IDLE o SLEEP detienepor completo laejecucin del
procesador
El modo DOZE proporcionaunmtodoalternativo parareducir el consumodeenerga. Enel modo Doze, los
perifricosestnsincronizadosconlafrecuenciadereloj del sistema, mientrasquelaCPU correaunavelocidad
reducida.
El modoDOZEsehabilitaactivandoel bitdehabilitacinDozen(DOZEN) enel registroDivisor dereloj (CLKDIV
<11>). Larelacinentrelavelocidaddel reloj perifricoylaCPU estdeterminadopor losbitsderelacinde
Doze(DOZE<2:0>) enel registroDivisor dereloj (CLKDIV<14:12>). Hayochoconfiguracionesposibles, que
vandesde1:1a1:128, conel valor por defectode1:1.
LaCPU recuperaautomticamenteel funcionamientoatodavelocidadsobrecualquier interrupcincuandoel bit
derecuperacin deinterrupcin (ROI) es seteado en el registro Divisor dereloj (CLKDIV <15>). Deforma
predeterminada, loseventosdeinterrupcinnotienenefectoenel funcionamientoenmodoDozen.
Consumo de Energa de la Familia DSPIC33E/PIC24E
Mdulo de Desabilitacin de Perifricos (PMD)
El mdulo de desabilitacinde perifricos (PMD) proporcionaun mtodo para
desactivar un mdulo perifrico al detener todas las fuentes de reloj suministrados aese
mdulo.
Cuando un perifrico estdesactivado usando el apropiado bit de control de PMD, el
perifrico se encuentraen un mnimo estado de consumo. Los registros de control y de
estado asociado con el perifrico tambin se desactivan, por lo que escrituras en estos
registros no tienen efecto y lecturas darn valores que no son vlidos.
Un mdulo perifrico se activaslo si tanto el bit asociado en el registro PMD se borra
y el perifrico es compatible con el especfico dsPIC. Si el perifrico estpresente en el
dispositivo, este es habilitado en el registro PMD por defecto.
Consumo de Energa de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DESABILITACION DE MODULO DE PERIFERICOS
1 (PMD1)
Bit 15 Bit 8
Bit 7 Bit 0
Bitxy: Bit de habilitacin del mdulo
1 = Mdulo estdesactivado
0 = Mdulo esthabilitado
T5MD T4MD T3MD T2MD T1MD QEI1MD PWMMD DCIMD
I2C1MD U2MD U1MD SPI2MD SPI1MD C2MD C1MD AD1MD
Consumo de Energa de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DESABILITACION DE MODULO DE PERIFERICOS
2 (PMD2)
Bit 15 Bit 8
Bit 7 Bit 0
Bitxy: Bit de habilitacin del mdulo
1 = Mdulo estdesactivado
0 = Mdulo esthabilitado
IC8MD IC7MD IC6MD IC5MD IC4MD IC3MD IC2MD IC1MD
OC8MD OC7MD OC6MD OC5MD OC4MD OC3MD OC2MD OC1MD
Consumo de Energa de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DESABILITACION DE MODULO DE PERIFERICOS
3 (PMD3)
Bit 15 Bit 8
Bit 7 Bit 0
Bitxy: Bit de habilitacin del mdulo
1 = Mdulo estdesactivado
0 = Mdulo esthabilitado
T9MD T8MD T7MD T6MD CMPMD RTCCMD PMPMD
CRCMD QEI2MD(1) U3MD I2C2MD AD2MD
Consumo de Energa de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DESABILITACION DE MODULO DE PERIFERICOS
4 (PMD4)
Bit 15 Bit 8
Bit 7 Bit 0
Bitxy: Bit de habilitacin del mdulo
1 = Mdulo estdesactivado
0 = Mdulo esthabilitado

U4MD REFOMD USB1MD(1)
Consumo de Energa de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DESABILITACION DE MODULO DE PERIFERICOS
5 (PMD5)
Bit 15 Bit 8
Bit 7 Bit 0
Bitxy: Bit de habilitacin del mdulo
1 = Mdulo estdesactivado
0 = Mdulo esthabilitado
IC16MD IC15MD IC14MD IC13MD IC12MD IC11MD IC10MD IC9MD
OC16MD OC15MD OC14MD OC13MD OC12MD OC11MD OC10MD OC9MD
Consumo de Energa de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DESABILITACION DE MODULO DE PERIFERICOS
6 (PMD6)
Bit 15 Bit 8
Bit 7 Bit 0
Bitxy: Bit de habilitacin del mdulo
1 = Mdulo estdesactivado
0 = Mdulo esthabilitado
PWM4MD PWM3MD PWM2MD PWM1MD
SPI4MD SPI3MD
Consumo de Energa de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE DESABILITACION DE MODULO DE PERIFERICOS
7 (PMD7)
Bit 15 Bit 8
Bit 7 Bit 0
Bitxy: Bit de habilitacin del mdulo
1 = Mdulo estdesactivado
0 = Mdulo esthabilitado

DMA12MD
DMA13MD
DMA14MD

DMA8MD
DMA9MD
DMA10MD
DMA11MD
DMA4MD
DMA5MD
DMA6MD
DMA7MD
DMA0MD
DMA1MD
DMA2MD
DMA3MD

Perro Guardin de la Familia DSPIC33E/PIC24E
Perro Guardin (WDT)
El PerroGuardintienelassiguientescaractersticas:
16perodosdetiempoconfigurables
Prescaler de5o7bits
Postscaler de16bits
Habilitacinpor Hardwareosoftware
OpcindeWDTWindow
El WatchdogTimer esuntemporizador devigilanciadefuncionamientolibre. Lafuncinprimariadel
temporizador devigilanciaes pararestablecer el dispositivo en caso deun mal funcionamiento del
software.Tambinsepuedeutilizar paraactivar el dispositivodel modoIDLEomodoSLEEP.
El temporizador devigilanciasecomponedeunprescaler configurablede5o7bitsyunpostscaler
configurableconectado conel oscilador debajapotencia(LPRC). El tiempo dedesbordamiento del
temporizador del WDT se selecciona mediante la configuracin de los divisores del prescaler y
postscaler.
Perro Guardin de la Familia DSPIC33E/PIC24E
Diagrama de Bloques del Perro Guardin (WDT)
Perro Guardin de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DEL WATCH DOG (FWDT) 0xF8000A
Bit 7 Bit 0
Bits <15:8>: Bits reservados deben ser programados como 1.
FWDTEN: Bit de habilitacin del Watchdog
1 =Temporizador Watchdogsiempre habilitada (Oscilador LPRC no puede ser
deshabilitado. Borrar el bit SWDTEN en el registro RCON no tiene
efecto).
0 =Temporizador Watchdogactivado / desactivado por el software de usuario
(LPRC puede puede desactivar limpiando la bit SWDTEN en el registro RCON)
FWDTEN WINDIS PLLKEN
WDTPR
E
WDTPOST<3:0>
Perro Guardin de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DEL WATCH DOG (FWDT) 0xF8000A
Bit 7 Bit 0
WINDIS: Bit de habilitacindel modo WINDOW
1=Temporizador Watchdogno se habilita en modo Window
0=Temporizador Watchdogse habilita en modo Window
PLLKEN: Bits de habilitacinde espera de bloqueo del PLL
1 =Intercambio del reloj para la fuente de reloj del PLL esperarn hasta que la
seal bloqueo del PLL sea vlida.
0=Intercambio del reloj no va a esperar por bloqueo del PLL
FWDTEN WINDIS PLLKEN
WDTPR
E
WDTPOST<3:0>
Perro Guardin de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DEL WATCH DOG (FWDT) 0xF8000A
Bit 7 Bit 0
WDTRE: Bit de configuracin del prescaler del Watchdog
1 = 1:128
0 = 1:32
WDTPOST<3:0>: Bits de configuracin del postescaler del Watchdog
1111 = 1:32,768
1110 = 1:16,384

0001 = 1:2
0000 = 1:1
FWDTEN WINDIS PLLKEN
WDTPR
E
WDTPOST<3:0>
Twto= (Prescaler ) x ( Postscaler ) x (Tlprc)
Perro Guardin de la Familia DSPIC33E/PIC24E
Configuracin de periodos del WDT
Confi guraci n
del postescaler
(WDTPOST<3:0
>)
Divisi n del
postescaler(
N2)(1)
Periodo de
desbordamiento
del prescaler en
modo 5 bit (2,3)
Periodo de
desbordamiento
del prescaler en
modo 5 bi t
Wi ndow(5)
Periodo de
desbordamiento
del prescaler en
modo 7 bit (2,4)
Periodo de
desbordamie
nto del
prescaler en
modo 7 bi t
Wi ndow(5)
0 1:1 1 ms 0.75 ms 4 ms 3 ms
1 1:2 2 ms 1.5 ms 8 ms 6 ms
10 1:4 4 ms 3 ms 16 ms 12 ms
11 1:8 8 ms 6 ms 32 ms 24 ms
100 1:16 16 ms 12 ms 64 ms 48 ms
101 1:32 32 ms 24 ms 128 ms 96 ms
110 1:64 64 ms 48 ms 256 ms 192 ms
111 1:128 128 ms 96 ms 512 ms 384 ms
1000 1:256 256 ms 192 ms 1.024s 0.768s
1001 1:512 512 ms 384 ms 2.048s 1.536s
1010 1:1024 1.024s 0.768s 4.096s 3.072s
1011 1:2048 2.048s 1.536s 8.192s 6.144s
1100 1:4096 4.096s 3.072s 16.384s 12.288s
1101 1:8192 8.192s 6.144s 32.768s 24.576s
1110 1:16384 16.384s 12.288s 65.536s 49.152s
1111 1:32768 32.768s 24.576s 131.072s 98.304s
Perro Guardin de la Familia DSPIC33E/PIC24E
Notas sobre el perro guardin ( Tabla Anterior)
1: El reloj postscaler se derivadel pre-escalador de 5 o de 7 bits.
2: El periodo de tiempo de desbordamiento se basaen un reloj de entradade 32
kHz.
3: Larelacin WDT prescaler de 1:32 N1 (WDTPRE = 0) daun prescaler de 5
bits.
4: Larelacin WDT prescaler de 1:128 N1 (WDTPRE = 1) daun prescaler de 7
bits
5: WDTWIN = 0. Lafuncin windowsen el perro guardin es 75% del perodo
de WDT seleccionado.
6: El perodo de tiempo de esperaWDT estdirectamente relacionadacon la
frecuenciadel oscilador LPRC (32 kHznominal)
Perro Guardin de la Familia DSPIC33E/PIC24E
El temporizador de vigilanciase reseteaen las siguientes circunstancias:
Cuando algn dispositivo reseteael CPU
Cuando se ejecutaunainstruccin PWRSAV (es decir, Se activael modo SLEEP o
IDLE)
Cuando el WDT se habilitapor software
En larealizacin de un intercambio de reloj de oscilacin
Por unainstruccin CLRWDT durante laejecucin normal o durante el ltimo
25% del tiempo de esperaWDT si WINDIS estactivado.
RESET DEL WDT
Configuracin de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DE SEGMENTO GENERAL (FGS)
0xF80004
Bit 7 Bit 0
Bits <15:8>: Bits reservados deben ser programados como 1.
GSSK<1:0> :Bits de clave del segmento general
Estos bits deben colocarse a '00 'si GWRP =1 y GSS=1. Estos bits deben
Colocarse a '11 'para cualquier otro valor de la GWRP y GSS. Cualquier
diferencia entre cualquiera de los bits GWRP o GSS, y los bits GSSK, dar lugar
a proteccin del cdigo al habilitar el Segmento General. Un borrado general
ser necesario para desbloquear al dispositivo.
GSSK<1:0> GSS GWRP
Configuracin de la Familia DSPIC33E/PIC24E
REGISTRO DE CONFIGURACION DE SEGMENTO GENERAL (FGS)
0xF80004
Bit 7 Bit 0
GSS:BitdeproteccindcdigodeSegmentoGeneral
1=memoriadel programadeusuarionoesprotegidapor cdigo
0=memoriadel programadeusuarioestprotegidapor cdigo
GWRP:Bit deproteccindeescrituradeSegmentogeneral
1=memoriadel programadeusuarionoestprotegidocontraescritura
0=memoriadel programadeusuarioestprotegidocontraescritura
GSSK<1:0> GSS GWRP
PUERTOS E/S
Puertos E/S de la Familia DSPIC33E/PIC24E
Puertos E/S de la Familia DSPIC33E/PIC24E
Puertos de Entrada y Salida
Los puertos de E/ S de propsito general permiten al dsPIC33EP256MU806 supervisar
y controlar otros dispositivos. Lamayorade los pines E/ S son multiplexados con
funciones alternativas. Lamultiplexacindepende de las funciones perifricas. En
general, cuando un perifrico estfuncionando el pin no se puede usar como un pin de
E/ S de propsito general, Paraeste dsPICse tienen 6 puertos de E/ S paraun total de 51
pines :
Puerto B :16 pines (RB0-RB15)
Puerto C: 4 pines (RC12-RC15)
Puerto D: 12 pines (RD0-RD11)
Puerto E: 8 pines (RE0-RE7)
Puerto F: 5 pines (RF0-RF1, RF3-RF5)
Puerto G: 6 pines (RG2-RG3, RG6-RG9)
PUERTOS E/S
Puertos E/S de la Familia DSPIC33E/PIC24E
Todos los puertos de E / S tienen cuatro registros directamente
relacionados con la operacin del puerto, donde 'x' es una letra que denota
el puerto de E / S en particular:
TRISx: Registro de Direccin de Datos
PORTx: Registro del Puerto de E/ S
LATx: Registro Latchde E/ S
ODCx: Registro de control de drenador abierto
Cada pin de E / S en el dispositivo dispone de un bit asociado en los
registros TRIS, el puerto y LAT.
PUERTOS E/S
Puertos E/S de la Familia DSPIC33E/PIC24E
Registro PORTx
Los datos sobre un pin de E/ S se acceden a travs de un registro PORTx.
Una lectura del registro PORTxlee el valor del pin de E / S, mientras que
una escritura en el registro PORTxescribe el valor en el latchdel puerto.
Registro LATx
El LATxregistro asociado con un pin de E/ S elimina los problemas que
pueden ocurrir con bidireccionalidad. Una lectura del registro LATx
restaura los valores en el puerto de salida de los latchsen lugar de los
valores en los pines de E/ S. Una operacin de bidireccionalidaden el
registro LAT asociado con un puerto de E/ S evita la posibilidad de escribir
los valores pin de entrada en el puerto de latch. Una escritura en el
registro LATxtiene el mismo efecto que una escritura en el registro
PORTx.
PUERTOS E/S
Puertos E/S de la Familia DSPIC33E/PIC24E
Registro TRISx
Los bits de control del registro TRISxdeterminan si cada pin asociado con
el puerto de E/ S es una entrada o salida. Si el bit TRIS para un pin de E/ S
es un '1 ', entonces el pin es una entrada. Si el bit de TRIS para un pin de
E/ S es un '0 ', entonces el pin se configura como una salida.
PUERTOS E/S
Puertos E/S de la Familia DSPIC33E/PIC24E
Registro de control Open-Drain
Adems de los registros de control PORT, LAT, y TRIS, cada pin del puerto
tambin se puede configurar de forma individual, ya sea para una salida
digital o drenador abierto. Esto es controlado por el registro ODCx,
asociado con cada puerto. Seteandocualquiera de los bits configura el pin
correspondiente para actuar como una salida de drenador abierto.
La funcin de drenador abierto permite la generacin de salidas superiores
a VDD (por ejemplo, 5V) en los pines de 5V tolerant deseados mediante
el uso externo resistencias pull-up. (La caracterstica de drenador abierto
no se admite en los pines que no son 5V tolerant). El voltaje mximo
permitido es igual a la especificacin VIH. La funcin de salida de drenador
abierto es compatible con los pines del puerto a la vez y las configuraciones
de perifricos.
Prof. Rafael Surga
UNEXPO-Pto.Ordaz MICROPROCESADORES
DIAGRAMA DE BLOQUES DE UN PUERTO E/S
Puertos E/S de la Familia DSPIC33E/PIC24E
Puertos E/S de la Familia DSPIC33E/PIC24E
DIAGRAMA DE BLOQUES DE UN PUERTO E/S
Puertos E/S de la Familia DSPIC33E/PIC24E
Selector de Pin de Perifrico (PPS)
Un reto importante en los dispositivos de propsito general es proporcionar el mayor conjunto posible
de funciones perifricas, adems de minimizar el conflicto de funciones en los pines de E / S. El
desafo es an mayor en los dispositivos de pin de bajo conteo. En unaaplicacin en laque ms de un
perifrico necesitaasignarse aun solo pin, soluciones inconvenientes en el cdigo de aplicacin o un
rediseo completo puede ser lanicaopcin.
Pines Disponibles
El nmero de pines disponibles depende del dispositivo y su nmero de pines. Los Pines que soportan
lafuncin Peripheral Pin Select tienen ladesignacin "RPn" o Rpin, donde "RP designaunafuncin
remapeable o reasignableparaentradao saliday "RPI" designaunafuncin remapeable o reasignables
paralaentradasolamente, y "n" es el nmero de pin remapeable.
Puertos E/S de la Familia DSPIC33E/PIC24E
Asignacin de Entrada
Las entradas de los pines del PPS se asignan sobre labase del perifrico ausar, es decir, un registro
de control asociado con un perifrico dictael pin que se le asignar, el
registros RPINRxse utilizaparaconfigurar laasignacin de perifricos de entrada.
Cadaregistro contiene un campos de 7 bits, que estasociado con un perifrico reasignable.
Programando un valor de 7 bits correspondiente aun perifrico permite seleccionar el pin RPno
RPIncon el perifrico se conectar. Paracualquier determinado dispositivo, lagamade valores
vlidos paracualquier campo de bits se corresponde con el nmero mximo de Selecciones de Pin
de Perifricos compatibles con el dispositivo.
Puertos E/S de la Familia DSPIC33E/PIC24E
AN29/ PWM3H/ PMD5/ RP85/ RE5
AN30/ PWM4L/ PMD6/ RPI86/ RE6
AN31/ PWM4H/ PMD7/ RP87/ RE7
C1IN3-/ SCK2/ PMA5/ RP118/ RG6
C1IN1-/ SDI2/ PMA4/ RPI119/ RG7
C2IN3-/ SDO2/ PMA3/ RP120/ RG8
MCLR
C2IN1-/ PMA2/ RPI121/ RG9
VDD
AN5/ C1IN1+/ VBUSON/ VBUSST/ RPI37/ RB5
AN4/ C1IN2-/ USBOEN/ RPI36/ RB4
AN3/ C2IN1+/ VPIO/ RPI35/ RB3
AN2/ C2IN2-/ VMIO/ RPI34/ RB2
PGEC3/ AN1/ VREF-/ RPI33/ RB1
PGED3/ AN0/ VREF+/ RPI32/ RB0
Multiplexacin
de Pines
Puertos E/S de la Familia DSPIC33E/PIC24E
Nota: Slo paralaentrada, lafuncin PPS no tiene prioridad sobre el registro TRISxPor lo
tanto, al configurar el pin de RPncomo entrada, el bit correspondiente en el registro TRISX
debe estar configurado como entrada(seteadoa'1 ').
Entrada remapeablepara U1RX
RPn/ RPIn
0
RP0/ RPI0
RP1/ RPI1
RP2/ RPI2
EntradaU1RX
U1RXR <6.0>
0
1
2
n
Puertos E/S de la Familia DSPIC33E/PIC24E
Registros de Seleccin de Pin de Perifricos
Los siguientes registros se utilizan paraconfigurar lafuncionalidad de entraday de salida
de los pines de los dsPIC33E/ PIC24E:
RPINR0 aRPINR37: Registros de entradade Seleccin de Pin de Perifricos
RPOR0 aPROR15: Registros de salidade Seleccin de Pin de Perifricos
Puertos E/S de la Familia DSPIC33E/PIC24E
Nombre Pin de Entrada Funcin del Pin Registro Bits de Configuracin
External Interrupt 1 INT1 RPINR0 INT1R<6:0>
External Interrupt 2 INT2 RPINR1 INT2R<6:0>
External Interrupt 3 INT3 RPINR1 INT3R<6:0>
External Interrupt 4 INT4 RPINR2 INT4R<6:0>
Timer2 External Clock T2CK RPINR3 T2CKR<6:0>
Timer3 External Clock T3CK RPINR3 T3CKR<6:0>
Timer4 External Clock T4CK RPINR4 T4CKR<6:0>
Timer5 External Clock T5CK RPINR4 T5CKR<6:0>
Timer6 External Clock T6CK RPINR5 T6CKR<6:0>
Timer7 External Clock T7CK RPINR5 T7CKR<6:0>
Timer8 External Clock T8CK RPINR6 T8CKR<6:0>
Timer9 External Clock T9CK RPINR6 T9CKR<6:0>
Input Capture 1 IC1 RPINR7 IC1R<6:0>
Input Capture 2 IC2 RPINR7 IC2R<6:0>
Input Capture 3 IC3 RPINR8 IC3R<6:0>
Input Capture 4 IC4 RPINR8 IC4R<6:0>
Input Capture 5 IC5 RPINR9 IC5R<6:0>
Input Capture 6 IC6 RPINR9 IC6R<6:0>
Input Capture 7 IC7 RPINR10 IC7R<6:0>
Input Capture 8 IC8 RPINR10 IC8R<6:0>
Output Compare FaultA OCFA RPINR11 OCFAR<6:0>
Output Compare Fault B OCFB RPINR11 OCFBR<6:0>
PMW Fault 1 FLT1 RPINR12 FLT1R<6:0>
PMW Fault 2 FLT2 RPINR12 FLT2R<6:0>
PMW Fault 3 FLT3 RPINR13 FLT3R<6:0>
PMW Fault 4 FLT4 RPINR13 FLT4R<6:0>
Fuentes de entrada seleccionables
Puertos E/S de la Familia DSPIC33E/PIC24E
Nombre Pin de Entrada Funcin del Pin Registro Bits de Configuracin
QEI1 PhaseA QEA1 RPINR14 QEA1R<6:0>
QEI1 Phase A QEB1 RPINR14 QEB1R<6:0>
QEI1 Index INDX1 RPINR15 INDX1R<6:0>
QEI1 Home HOME1 RPINR15 HOM1R<6:0>
QEI2 Phase A QEA2 RPINR16 QEA2R<6:0>
QEI2 Phase A QEB2 RPINR16 QEB2R<6:0>
QEI2 Index INDX2 RPINR17 INDX2R<6:0>
QEI2 Home HOME2 RPINR17 HOM2R<6:0>
UART1 Receive U1RX RPINR18 U1RXR<6:0>
UART1 Clear To Send U1CTS RPINR18 U1CTSR<6:0>
UART2 Receive U2RX RPINR19 U2RXR<6:0>
UART2 Clear To Send U2CTS RPINR19 U2CTSR<6:0>
SPI1 Data Input SDI1 RPINR20 SDI1R<6:0>
SPI1 Clock Input SCK1IN RPINR20 SCK1R<6:0>
SPI1 Slave Select SS1IN RPINR21 SS1R<6:0>
SPI2 Data Input SDI2 RPINR22 SDI2R<6:0>
SPI2 Clock Input SCK2IN RPINR22 SCK2R<6:0>
SPI2 Slave Select SS2IN RPINR23 SS2R<6:0>
DCI Data Input CSDI RPINR24 CSDIR<6:0>
DCI Clock Input CSCKIN RPINR24 CSCKR<6:0>
DCI FSYNC Input COFSIN RPINR25 COFSR<6:0>
CAN1 Receive C1RX RPINR26 C1RXR<6:0>
CAN2 Receive C2RX RPINR26 C2RXR<6:0>
UART3 Receive U3RX RPINR27 U3RXR<6:0>
UART3 Clear To Send U3CTS RPINR27 U3CTSR<6:0>
UART4 Receive U4RX RPINR28 U4RXR<6:0>
UART4 Clear To Send U4CTS RPINR28 U4CTSR<6:0>
Puertos E/S de la Familia DSPIC33E/PIC24E
Nombre Pin de Entrada Funcin del Pin Registro Bits de Configuracin
SPI3 Data Input SDI3 RPINR29 SDI3R<6:0>
SPI3 Clock Input SCK3IN RPINR29 SCK3R<6:0>
SPI3 Slave Select SS3IN RPINR30 SS3R<6:0>
SPI4 Data Input SDI4 RPINR31 SDI4R<6:0>
SPI4 Clock Input SCK4IN RPINR31 SCK4R<6:0>
SPI4 Slave Select SS4IN RPINR32 SS4R<6:0>
Input Capture 9 IC9 RPINR33 IC9R<6:0>
Input Capture 10 IC10 RPINR33 IC10R<6:0>
Input Capture 11 IC11 RPINR34 IC11R<6:0>
Input Capture 12 IC12 RPINR34 IC12R<6:0>
Input Capture 13 IC13 RPINR35 IC13R<6:0>
Input Capture 14 IC14 RPINR35 IC14R<6:0>
Input Capture 15 IC15 RPINR36 IC15R<6:0>
Input Capture 16 IC16 RPINR36 IC16R<6:0>
Output Compare Fault C OCFC RPINR37 OCFCR<6:0>
Puertos E/S de la Familia DSPIC33E/PIC24E
Valor del registro de
entrada del PPS
Entrada/Salida Pin Asignado
000 0000 E VSS
000 0001 E C1OUT(1)
000 0010 E C2OUT(1)
000 0011 E C3OUT(1)
000 0100 Reservado
000 0101 Reservado
000 0110 Reservado
000 0111 Reservado
000 1000 E FINDX1(1)
000 1001 E FHOME1(1)
000 1010 E FINDX2(1)
000 1011 E FHOME2(1)
000 1100 Reservado
000 1101 Reservado
000 1110 Reservado
000 1111 Reservado
001 0000 E RPI16
001 0001 E RPI17
001 0010 E RPI18
001 0011 E RPI19
001 0100 E RPI20
001 0101 E RPI21
001 0110 E RPI22
001 0111 E RPI23
001 1000 Reservado
001 1001 Reservado
001 1010 Reservado
001 1011 Reservado
001 1100 Reservado
001 1101 Reservado
001 1110 E RPI30
001 1111 E RPI31
010 0000 E RPI32
010 0001 E RPI33
010 0010 E RPI34
010 0011 E RPI35
010 0100 E RPI36
010 0101 E RPI37
010 0110 E RPI38
010 0111 E RPI39
010 1000 E RPI40
010 1001 E RPI41
010 1010 E RPI42
010 1101 E RPI45
010 1110 E RPI46
010 1111 E RPI47
011 0000 Reservado
011 0001 E RPI49
011 0010 E RPI50
011 0011 E RPI51
011 0100 E RPI52
011 0101 Reservado
011 0110 Reservado
011 0111 Reservado
Valor del registro de
entrada del PPS
Entrada/Salida Pin Asignado
Puertos E/S de la Familia DSPIC33E/PIC24E
Valor del registro de
entrada del PPS
Entrada/Salida Pin Asignado Valor del registro de
entrada del PPS
Entrada/Salida Pin Asignado
011 1000 Reservado
011 1001 Reservado
011 1010 Reservado
011 1011 Reservado
011 1100 E RPI60
011 1101 E RPI61
011 1110 E RPI62
011 1111 Reservado
100 0000 E/S RP64
100 0001 E/S RP65
100 0010 E/S RP66
100 0011 E/S RP67
100 0100 E/S RP68
100 0101 E/S RP69
100 0110 E/S RP70
100 0111 E/S RP71
100 1000 E RPI72
100 1001 E RPI73
100 1010 E RPI74
100 1011 E RPI75
100 1100 E RPI76
100 1101 E RPI77
100 1110 E RPI78
100 1111 E/S RP79
101 0000 E/S RP80
101 0001 E RPI81
101 0010 E/S RP82
101 0011 E RPI83
101 0100 E/S RP84
101 0101 E/S RP85
101 0110 E RPI86
101 0111 E/S RP87
010 1011 E RPI43
010 1100 E RPI44
101 1010 Reservado
101 1011 Reservado
101 1100 Reservado
101 1101 Reservado
101 1110 Reservado
101 1111 Reservado
110 0000 E/S RP96
110 0001 E/S RP97
110 0010 E/S RP98
110 0011 E/S RP99
110 0100 E/S RP100
110 0101 E/S RP101
110 0110 E/S RP102
110 0111 Reservado
110 1000 E/S RP104
110 1001 Reservado
110 1010 Reservado
110 1011 Reservado
110 1100 E/S RP108
Puertos E/S de la Familia DSPIC33E/PIC24E
101 1000 E RPI88
101 1001 E RPI89
110 1101 E/S RP109
110 1110 Reservado
110 1111 Reservado
111 0000 E/S RP112
111 0001 E/S RP113
111 0010 Reservado
111 0011 Reservado
111 0100 Reservado
111 0101 Reservado
111 0110 E/S RP118
111 0111 E RPI119
111 1000 E/S RP120
111 1001 E RPI121
111 1010 Reservado
111 1011 Reservado
111 1100 E RPI124
111 1101 E/S RP125
111 1110 E/S RP126
111 1111 E/S RP127
Valor del registro de
entrada del PPS
Entrada/Salida Pin Asignado
Puertos E/S de la Familia DSPIC33E/PIC24E
Conexiones virtuales
Los dsPIC33EPXXX (GP / MC / MU) 806/ 810/ 814 (GP / GU) 810/ 814 y los
PIC24EPXXX poseen conexiones internas alasalidade los mdulos comparadores
mdulos, CMP1OUT, CMP2OUT y CMP3OUT. Adems, admiten conexiones virtuales alos
mdulos QEI en los pines FINDX1, FHOME1, FINDX2 y FHOME2 .
Las conexiones virtuales proporcionan unaformasencillade interconexin sin lautilizacin de
unaconexin fsicaentre pines. Por ejemplo, mediante laconfiguracin de los bits FLT1R
<6:0> del registro RPINR12 con el valor 'b0000001, lasalidadel comparador analgico,
CMP1OUT, serconectado alaentradadel pin de falla1 del PWM, que permite que el
comparador analgico dispare por fallael PWM sinel uso de unaconexin fsicareal entre
mdulos en el dispositivo
Ejemplos:
RPINR15 = 0x5600; / * ConectalaentradaQEI1/ HOME1 aRP86 (pin 3) */
RPINR7 = 0x009; / * ConectalaentradaIC1 alaentradaFHOME1 */
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO 0 ENTRADA DE SELECCIN PIN DEL PERIFERICO
(RPINR0)
Bit 15 Bit 8
Bit 7 Bit 0
bit 15 no implementado: Leer como '0
INT1R <6:0>: Asignar interrupcin externa 1 (INT1) al correspondiente pin RPn / rpin
1111111 =Entrada conectada a RP127
...
0000001 =Entrada conectada a CMP1
0000000 =Entrada conectada a VSS
bits 7-0 no implementadas: Leer como '0 '
INT1R<6:0>
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO 1 ENTRADA ELECCIN DE PIN DEL PERIFERICO (RPINR1)
Bit 15 Bit 8
Bit 7 Bit 0
INT3R <6:0>: Asignar interrupcin externa 3 (INT3) al correspondiente pin RPn / rpin
1111111 =Entrada conectada a RP127
...
0000001 =Entrada conectada a CMP1
0000000 =Entrada conectada a VSS
INT2R <6:0>: Asignar interrupcin externa 2 (INT2) al correspondiente pin RPn / rpin
1111111 =Entrada conectada a RP127
...
0000001 =Entrada conectada a CMP1
0000000 =Entrada conectada a VSS
INT3R<6:0>
INT2R<6:0>
Puertos E/S de la Familia DSPIC33E/PIC24E
Nombr e
Fi l a
Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 Reset
RPI NR0 I NT1R<6:0> 0
RPI NR1 I NT3R<6:0> I NT2R<6:0> 0
RPI NR2 I NT4R<6:0> 0
RPI NR3 T3CKR<6:0> T2CKR<6:0> 0
RPI NR4 T5CKR<6:0> T4CKR<6:0> 0
RPI NR5 T7CKR<6:0> T6CKR<6:0> 0
RPI NR6 T9CKR<6:0> T8CKR<6:0> 0
RPI NR7 I C2R<6:0> I C1R<6:0> 0
RPI NR8 I C4R<6:0> I C3R<6:0> 0
RPI NR9 I C6R<6:0> I C5R<6:0> 0
RPI NR10 I C8R<6:0> I C7R<6:0> 0
RPI NR11 OCFBR<6:0> OCFAR<6:0> 0
RPI NR12 FLT2R<6:0> FLT1R<6:0> 0
RPI NR13 FLT4R<6:0> FLT3R<6:0> 0
RPI NR14 QEB1R<6:0> QEA1R<6:0> 0
RPI NR15 HOME1R<6:0> I NDX1R<6:0> 0
RPI NR16 QEB2R<6:0> QEA2R<6:0> 0
RPI NR17 HOME2R<6:0> I NDX2R<6:0> 0
RPI NR18 U1CTSR<6:0> U1RXR<6:0> 0
RPI NR19 U2CTSR<6:0> U2RXR<6:0> 0
RPI NR20 SCK1R<6:0> SDI 1R<6:0> 0
RPI NR21 SS1R<6:0> 0
RPI NR22 SCK2R<6:0> SDI 2R<6:0> 0
RPI NR23 SS2R<6:0> 0
RPI NR24 CSCKR<6:0> CSDI R<6:0> 0
RPI NR25 COFSI NR<6:0> 0
RPI NR26 C2RXR<6:0> C1RXR<6:0> 0
RPI NR27 U3CTSR<6:0> U3RXR<6:0> 0
RPI NR28 U4CTSR<6:0> U4RXR<6:0> 0
RPI NR29 SCK3R<6:0> SDI 3R<6:0> 0
RPI NR30 SS3R<6:0> 0
RPI NR31 SCK4R<6:0> SDI 4R<6:0> 0
RPI NR32 SS4R<6:0> 0
RPI NR33 I C10R<6:0> I C9R<6:0> 0
RPI NR34 I C12R<6:0> I C11R<6:0> 0
RPI NR35 I C14R<6:0> I C13R<6:0> 0
RPI NR36 I C16R<6:0> I C15R<6:0> 0
RPI NR37 SYNCI 1R<6:0> OCFCR<6:0> 0
Mapa de r egi st r os de ent r ada par a l a sel ec c i n de pi n de per i f r i c os
(PPS) sol o par a dsPI C33EPXXXMU806
Puertos E/S de la Familia DSPIC33E/PIC24E
Asignacin de salida
En contraste alas entradas, las salidas de las opciones PPS se asignan sobre labase del
pin. En este caso, un registro de control asociado con un pin en particular dictael
perifrico salidaque se asigna. Los registros RPORxse utilizan paracontrolar la
asignacin de salida. Al igual que el registro RPINRx, cadaregistro contiene conjuntos
de 6 bits, con cadaconjunto asociado con un pin de RPn. El valor del campo de bits se
corresponde
auno de los perifricos, y lasalidadel perifrico se correlacionacon el pin.
Unasalidanulase asociacon el registro de salidaal colocar valor de '0 '. Esto se hace
paraasegurar que PPS por defecto permanezcan desconectados de todas las
terminales de salida.
Puertos E/S de la Familia DSPIC33E/PIC24E
Multiplexacinde salida remapeablepara RPn
SalidaREFCLK
0
Puerto por Defecto
SalidaU1TX
SalidaU1RTS
RPnR<5.0>
0
1
2
49
Salidade datos
RPn
Puertos E/S de la Familia DSPIC33E/PIC24E
Funcin RPnR<5:0> Nombre de la Salida
DEFAULT PORT 00 0000 RPnconectadoa pin por defecto
U1TX 00 0001 RPnconectado a UART1 transmit
U1RTS 00 0010 RPnconectado a UART1 ready to send
U2TX 00 0011 RPnconectado a UART2 transmit
U2RTS 00 0100 RPnconectado a UART2 ready to send
SDO1 00 0101 RPnconectadoa SPI1 data output
SCK1OUT 00 0110 RPnconectado a SPI1 clock output
SS1OUT 00 0111 RPnconectado a SPI1 slave select
SDO2 00 1000 RPnconectadoa SPI2 data output
SCK2OUT 00 1001 RPnconectado a SPI2 clock output
SS2OUT 00 1010 RPnconectado a SPI2 slave select
CSDO 00 1011 RPnconectadoa DCI data output
CSCKOUT 00 1100 RPnconectadoa DCI clock output
COFSOUT 00 1101 RPnconectadoa DCI FSYNC output
C1TX 00 1110 RPnconectadoa CAN1 transmit
C2TX 00 1111 RPnconectadoa CAN2 transmit
OC1 01 0000 RPnconectadoa Output Compare 1 output
OC2 01 0001 RPnconectadoa Output Compare 2 output
OC3 01 0010 RPnconectadoa Output Compare 3 output
OC4 01 0011 RPnconectadoa Output Compare 4 output
OC5 01 0100 RPnconectadoa Output Compare 5 output
OC6 01 0101 RPnconectadoa Output Compare 6 output
OC7 01 0110 RPnconectadoa Output Compare 7 output
OC8 01 0111 RPnconectadoa Output Compare 8 output
C1OUT 01 1000 RPnconectadoa Comparator Output 1
C2OUT 01 1001 RPnconectadoa Comparator Output 2
C3OUT 01 1010 RPnconectadoa Comparator Output 3
Fuentes de salidas seleccionables
Puertos E/S de la Familia DSPIC33E/PIC24E
U3TX 01 1011 RPnconectadoa UART3 transmit
U3RTS 01 1100 RPnconectadoa UART3 ready to send
U4TX 01 1101 RPnconectadoa UART4 transmit
U4RTS 01 1110 RPnconectadoa UART4 ready to send
Funcin RPnR<5:0> Nombre de la Salida
SDO3 01 1111 RPnconectadoa SPI3 data output
SCK3OUT 10 0000 RPnconectado a SPI3 clock output
SS3OUT 10 0001 RPnconectado a SPI3 slave select
SDO4 10 0010 RPnconectadoa SPI4 data output
SCK4OUT 10 0011 RPnconectado a SPI4 clock output
SS4OUT 10 0100 RPnconectado a SPI4 slave select
OC9 10 0101 RPnconectadoa Output Compare 9 output
OC10 10 0110 RPnconectadoa to Output Compare 10 output
OC11 10 0111 RPnconectadoa Output Compare 11 output
OC12 10 1000 RPnconectadoa Output Compare 12 output
OC13 10 1001 RPnconectadoa Output Compare 13 output
OC14 10 1010 RPnconectadoa Output Compare 14 output
OC15 10 1011 RPnconectadoa Output Compare 15 output
OC16 10 1100 RPnconectadoa Output Compare 16 output
PSYNCO1 10 1101 RPnconectado a PWM primary time base sync output
PSYNCO2 10 1110 RPnconectado a PWM secondary time base sync output
QEI1CCMP 10 1111 RPnconectadoa QEI1 counter comparator output
QEI2CCMP 11 0000 RPnconectadoa QEI2 counter comparator output
REFCLK 11 0001 RPnconectado a Reference Clock output
Nota: En el DsPIC33EP256MU806 existen20 pines RPn
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO 0 SALIDA SELECCIN DE PIN DEL PERIFERICO (RPOR0)
Bit 15 Bit 8
Bit 7 Bit 0
RP65R<5:0>:Bits del pin de salida RP65 es asignado a al perifrico designado por el
campo de bits (Ver tabla anterior).
RP64R<5:0>: >:Bits del pin de salida RP64 es asignado a al perifrico designado por
el campo de bits (Ver tabla anterior).
RP65R<5:0>
RP64R<5:0>
Puertos E/S de la Familia DSPIC33E/PIC24E
Nombr e Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 Reset
RPOR0 RP65R<5:0> RP64R<5:0> 0
RPOR1 RP67R<5:0> RP66R<5:0> 0
RPOR2 RP69R<5:0> RP68R<5:0> 0
RPOR3 RP71R<5:0> RP70R<5:0> 0
RPOR4 RP80R<5:0> 0
RPOR5 RP84R<5:0> RP82R<5:0> 0
RPOR6 RP87R<5:0> RP85R<5:0> 0
RPOR7 RP97R<5:0> RP95R<5:0> 0
RPOR8 RP99R<5:0> 0
RPOR9 RP101R<5:0> RP100R<5:0> 0
RPOR13 RP118R<5:0>
RPOR14 RP120R<5:0> 0
Mapa de r egi st r os de sal i da par a l a sel ec c i n de pi n de per i f r i c os
(PPS) sol o par a dsPI C33EPXXXMU806
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO DE BLOQUEO DE CONTROL
En condiciones de funcionamiento normal, escribir en los registros RPINRxy
RPORxno estpermitidos. Al escribirse aparecerparaejecutar normalmente, pero
el contenido de los registros permanecern sin cambios.
Paracambiar estos registros, deben ser desbloqueados en el hardware. El bloqueo de
registro es controlado por el bit IOLOCK (OSCCON <6>). Seteandoel bit
IOLOCK impide escribir en los registros de control, limpiando
IOLOCK permite laescritura.
Parasetear o resetear IOLOCK, unasecuenciade comandos especficase debe
ejecutar:
1. Escribir 0x46 paraOSCCON <7:0>.
2. Escribir 0x57 paraOSCCON <7:0>.
3. Setear o resetear IOLOCK en unasolaoperacin.
IOLOCK permanece en un estado hastaque se cambie. Esto permite que todo el Pin
PPS seaconfigurado con unasecuenciade desbloqueo nico seguido de una
actualizacin de todos los registros de control.
Entonces, IOLOCK se setearcon unasegundasecuenciade bloqueo
Puertos E/S de la Familia DSPIC33E/PIC24E
SEGUIMIENTO CONTINUO DEL ESTADO DEL PPS
Adems de ser protegido escrituras directas, el contenido de laRPINRxy RPORx
registros son constantemente monitoreados en el hardware por registros sombra. Si un cambio
inesperado en cualquierade los registros se produce (tales como trastornos celulares causadospor
eventos externos ESD o de otro tipo), un Reset discrepanciade configuracin se activar(reset por
configuracin mismatch).
BIT DE CONFIGURACIN DE BLOQUEO DE PPS
Como un nivel adicional de seguridad, el dispositivo se puede configurar paraevitar que se produzca
ms de unasesin de escrituraparalos registros RPINRxy RPORx. El bit de configuracin
IOL1WAY (FOSC<5>) bloqueaque el bit IOLOCK se borre despus de que se haseteadounavez.
En el estado por defecto (no programada), IOL1WAY es seteado, pararestringir ausuarios auna
sesin de escritura.
Laprogramacin de IOL1WAY permite alos usuarios acceso ilimitado (con el uso correcto de la
secuenciade desbloqueo) alos pines perifricos Seleccin de registros.
Puertos E/S de la Familia DSPIC33E/PIC24E
Registros de Control de Cambio (CN)
Tres registros de control estn asociados con el mdulo de CN: CNENx, CNPUxy CNPDx, donde 'X'
indicalaletradel puerto.
Los registros CNENxcontienen los bits de control CNIExy, donde 'y' denotael nmero de pin del
puerto. El Bit CNIExydebe setearseparaque un pin de entradadel puerto
puedainterrumpir el CPU.
Cadapin CN tiene un dispositivo pull-up y pull-downconectado al pin, que puede ser
activado o desactivado con los bits de los registros CNPUxy CNPDxde manerade aumentar la
corriente con dispositivos de entradas y evitan el uso de resistencias externas.
Puertos E/S de la Familia DSPIC33E/PIC24E
Configuracin CN y Funcionamiento
CN serconfigurado de lasiguiente manera:
1. Asegrese de que el pin del puerto estconfigurado como unaentradadigital seteandoel bit
asociado en el registro TRISX respectivo.
2. Habilitar las interrupciones paralos pines del puerto seleccionados mediante el seteode los bits
correspondientes en el registro CNENx.
3. Active los Pull-up (si lo desea) paralos pines del puerto seleccionados mediante el seteode los bits
correspondiente en el registro CNPUx.
4. Active los Pull-Down (si lo desea) paralos pines del puerto seleccionados mediante el seteode los
bits apropiados en el registro CNPDx.
5. Borrar labanderade interrupcin CNIF en el registro IFSx.
6. Seleccione laprioridad de interrupcin parainterrupciones CN deseadautilizando elosbits de
control CNIP <2:0> en el registro el IPCx.
7. Habilitar interrupciones CN utilizando el bit de control CNIE en el registro IECx.
Cuando unainterrupcin por CN ocurre, el software del usuario debe leer el registro del puerto
asociado con los pines de CN. Esto borrarlacondicin de conflicto y establecerlalgicaCN para
detectar el prximo cambio de nivel. El valor actual del puerto se puede comparar con el valor ledo
del PUERTO obtenido en laltimainterrupcin CN paradeterminar que pin cambi.
Puertos E/S de la Familia DSPIC33E/PIC24E
Diagrama de bloques para la entrada de notificacin de
cambio en el pin RE5
Puertos E/S de la Familia DSPIC33E/PIC24E
voidconfigure CN(void)
{
CNENBbits.CNIB3 = 1; / / Habilitael pin RB3 parainterrupcin
IEC1bits.CNIE = 1; / / HabilitaInterrupcin CN
IFS1bits.CNIF = 0; / / Reseteainterrupcin CN
}
void__attribute__ ((__interrupt__)) _CNInterrupt(void)
{
/ / Cdigo aqui
IFS1bits.CNIF = 0; / / BorrabanderainterrupcinCN
}
Configuracin y uso de la interrupcin CN
Puertos E/S de la Familia DSPIC33E/PIC24E
Registros de Notificacin de Cambio
Los siguientes registros se utilizan paraactivar y desactivar las interrupciones CN
correspondientes, y las resistencias pull-up y pull-down:
CNENx: Registro parahabilitar interrupcin en laentradaCN.
CNPUDx: Registro parahabilitar Pull-Up en laentradaCN.
CNPDx: Registro parahabilitar Pull-Down en laentradaCN.
ANSELx: Registro de control de entradaanalgica.
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO DE HABILITACION DE INTERRUPCION POR NOTIFICACION DE
CAMBIO EN LA ENTRADA (CNENx)
Bit 15 Bit 8
Bit 7 Bit 0
CNIExy: Bit de habilitacin de interrupcin por notificacin de cambio en la entrada.
1 =Habilitada interrupcin por cambio en entrada.
0 =Desabilitadainterrupcin por cambio en la Entrada.
CNIEx15 CNIEx14 CNIEx13 CNIEx12 CNIEx11 CNIEx10 CNIEx9 CNIEx8
CNIEx7 CNIEx6 CNIEx5 CNIEx4 CNIEx3 CNIEx2 CNIEx1 CNIEx0
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO DE HABILITACION DE PULL-UP POR NOTIFICACION DE CAMBIO EN
LA ENTRADA (CNPUDx)
Bit 15 Bit 8
Bit 7 Bit 0
CNPUxy: Bit de habilitacin de pull-up por notificacin de cambio en la entrada
1 =Habilita pull-up por cambio en Entrada
0 =Desabilita pull-up por cambio en Entrada
CNPUx15 CNPUx14 CNPUx13 CNPUx12 CNPUx11 CNPUx10 CNPUx9 CNPUx8
CNPUx7 CNPUx6 CNPUx5 CNPUx4 CNPUx3 CNPUx2 CNPUx1 CNPUx0
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO DE HABILITACION DE PULL-DOWN POR NOTIFICACION DE CAMBIO
EN LA ENTRADA (CNPDx)
Bit 15 Bit 8
Bit 7 Bit 0
CNPDxy: Bits de habilitacin de pull-down por notificacin de cambio en la entrada
1 =Habilita pull-down por cambio en Entrada
0 =Desabilita pull-down por cambio en Entrada
CNPDx15 CNPDx14 CNPDx13 CNPDx12 CNPDx11 CNPDx10 CNPDx9 CNPDx8
CNPDx7 CNPDx6 CNPDx5 CNPDx4 CNPDx3 CNPDx2 CNPDx1 CNPDx0
Puertos E/S de la Familia DSPIC33E/PIC24E
REGISTRO DE CONTROL DE SELECCIN ANALOGICA (ANSELx)
Bit 15 Bit 8
Bit 7 Bit 0
ANSxy: Bits de habilitacin de Puerto Analgicos.
1 =Habilitacin de puertos como pines analgicos.
0 =Habilitacin de puertos como pines digitales.
ANSx15 ANSx14 ANSx13 ANSx12 ANSx11 ANSx10 ANSx9 ANSx8
ANSx7 ANSx6 ANSx5 ANSx4 ANSx3 ANSx2 ANSx1 ANSx0
Puertos E/S de la Familia DSPIC33E/PIC24E
Nombr e Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 r es et s
TRI SB TRI SB15 TRI SB14 TRI SB13 TRI SB12 TRI SB11 TRI SB10 TRI SB9 TRI SB8 TRI SB7 TRI SB6 TRI SB5 TRI SB4 TRI SB3 TRI SB2 TRI SB1 TRI SB0 FFFF
PORTB RB15 RB14 RB13 RB12 RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 x x x x
LATB LATB15 LATB14 LATB13 LATB12 LATB11 LATB10 LATB9 LATB8 LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0 x x x x
ODCB 0
CNENB CNI EB15 CNI EB14 CNI EB13 CNI EB12 CNI EB11 CNI EB10 CNI EB9 CNI EB8 CNI EB7 CNI EB6 CNI EB5 CNI EB4 CNI EB3 CNI EB2 CNI EB1 CNI EB0 0
CNPUB CNPUB15 CNPUB14 CNPUB13 CNPUB12 CNPUB11 CNPUB10 CNPUB9 CNPUB8 CNPUB7 CNPUB6 CNPUB5 CNPUB4 CNPUB3 CNPUB2 CNPUB1 CNPUB0 0
CNPDB CNPDB15 CNPDB14 CNPDB13 CNPDB12 CNPDB11 CNPDB10 CNPDB9 CNPDB8 CNPDB7 CNPDB6 CNPDB5 CNPDB4 CNPDB3 CNPDB2 CNPDB1 CNPDB0 0
ANSELB ANSB15 ANSB14 ANSB13 ANSB12 ANSB11 ANSB10 ANSB9 ANSB8 ANSB7 ANSB6 ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 FFFF
Nombr e Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 r es et s
TRI SC TRI SC15 TRI SC14 TRI SC13 TRI SC12 FFFF
PORTC RC15 RC14 RC13 RC12 x x x x
LATC LATC15 LATC14 LATC13 LATC12 x x x x
ODCC 0
CNENC CNI EC15 CNI EC14 CNI EC13 CNI EC12 0
CNPUC CNPUC15 CNPUC14 CNPUC13 CNPUC12 0
CNPDC CNPDC15 CNPDC14 CNPDC13 CNPDC12 0
ANSELC FFFF
Nombr e Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 r es et s
TRI SD TRI SD11 TRI SD10 TRI SD9 TRI SD8 TRI SD7 TRI SD6 TRI SD5 TRI SD4 TRI SD3 TRI SD2 TRI SD1 TRI SD0 FFFF
PORTD RD11 RD10 RD9 RD8 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 x x x x
LATD LATD11 LATD10 LATD9 LATD8 LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0 x x x x
ODCD ODCD11 ODCD10 ODCD9 ODCD8 ODCD5 ODCD4 ODCD3 ODCD2 ODCD1 ODCD0 0
CNEND CNI ED11 CNI ED10 CNI ED9 CNI ED8 CNI ED7 CNI ED6 CNI ED5 CNI ED4 CNI ED3 CNI ED2 CNI ED1 CNI ED0 0
CNPUD CNPUD11 CNPUD10 CNPUD9 CNPUD8 CNPUD7 CNPUD6 CNPUD5 CNPUD4 CNPUD3 CNPUD2 CNPUD1 CNPUD0 0
CNPDD CNPDD11 CNPDD10 CNPDD9 CNPDD8 CNPDD7 CNPDD6 CNPDD5 CNPDD4 CNPD3 CNPDD2 CNPDD1 CNPDD0 0
ANSELD FFFF
Mapade registrosdel puertoD solo paradsPIC33EPXXXMU806
Mapade registrosdel puertoC solo paradsPIC33EPXXXMU806
Mapade registrosdel puertoB solo paradsPIC33EPXXXMU806
Puertos E/S de la Familia DSPIC33E/PIC24E
Nombr e Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 r es et s
TRI SE TRI SE7 TRI SE6 TRI SE5 TRI SE4 TRI SE3 TRI SE2 TRI SE1 TRI SE0 FFFF
PORTE RE7 RE6 RE5 RE4 RE3 RE2 RE1 RE0 x x x x
LATE LATE7 LATE6 LATE5 LATE4 LATE3 LATE2 LATE1 LATE0 x x x x
ODCE 0
CNENE CNI EE7 CNI EE6 CNI EE5 CNI EE4 CNI EE3 CNI EE2 CNI EE1 CNI EE0 0
CNPUE CNPUE7 CNPUE6 CNPUE5 CNPUE4 CNPUE3 CNPUE2 CNPUE1 CNPUE0 0
CNPDE CNPDE7 CNPDE6 CNPDE5 CNPDE4 CNPDE3 CNPDE2 CNPDE1 CNPDE0 0
ANSELE ANSE7 ANSE6 ANSE5 ANSE4 ANSE3 ANSE2 ANSE1 ANSE0 FFFF
Nombr e Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 r es et s
TRI SF TRI SF5 TRI SF4 TRI SF3 TRI SF1 TRI SF0 FFFF
PORTF RF5 RF4 RF3 RF1 RF0 x x x x
LATF LATF5 LATF4 LATF3 LATF1 LATF0 x x x x
ODCF ODCF5 ODCF4 ODCF3 ODCF1 ODCF0 0
CNENF CNI EF5 CNI EF4 CNI EF3 CNI EF1 CNI EF0 0
CNPUF CNPUF5 CNPUF4 CNPUF3 CNPUF1 CNPUF0 0
CNPDF CNPDF5 CNPDF4 CNPDF3 CNPDF1 CNPDF0 0
ANSELF FFFF
Nombr e Bi t 15 Bi t 14 Bi t 13 Bi t 12 Bi t 11 Bi t 10 Bi t 9 Bi t 8 Bi t 7 Bi t 6 Bi t 5 Bi t 4 Bi t 3 Bi t 2 Bi t 1 Bi t 0 r es et s
TRI SG TRI SG9 TRI SG8 TRI SG7 TRI SG6 FFFF
PORTG RG9 RG8 RG7 RG6 RG3 RG2 x x x x
LATG LATG9 LATG8 LATG7 LATG6 x x x x
ODCG 0
CNENG CNI EG9 CNI EG8 CNI EG7 CNI EG6 CNI EG3 CNI EG2 0
CNPUG CNPUG9 CNPUG8 CNPUG7 CNPUG6 0
CNPDG CNPDG9 CNPDG8 CNPDG7 CNPDG6 0
ANSELG FFFF
Mapade registrosdel puertoG solo paradsPIC33EPXXXMU806
Mapade registrosdel puertoF solo paradsPIC33EPXXXMU806
Mapade registrosdel puertoE solo paradsPIC33EPXXXMU806
Puertos E/S de la Familia DSPIC33E/PIC24E
Librerias de puertos en Mikro C
Puertos E/S de la Familia DSPIC33E/PIC24E
Unl ock_IOLOCK
Unlock_IOLOCK
Prototipo void Unlock_IOLOCK();
Descripcin Desbloqueapines de E/ S de mapeo del pin
del Perifrico.
Parmetros Ninguno
Valor que retorna Nada
Requerimientos Nada
Ejemplos Unlock_IOLOCK();
Notas Ninguna
Puertos E/S de la Familia DSPIC33E/PIC24E
Unl ock_IOLOCK
lock_IOLOCK
Prototipo voidLock_IOLOCK();
Descripcin Bloqueapines de E/ S de mapeo del pin del
Perifrico.
Parmetros Ninguno
Valor que retorna Nada
Requerimientos Nada
Ejemplos lock_IOLOCK();
Notas Ninguna
Puertos E/S de la Familia DSPIC33E/PIC24E
Unl ock_IOLOCK
PPS_Mapping
Prototipo unsigned PPS_Mapping(unsigned short rp_num, unsigned short direction, unsigned
short funct_name);
Descripcin Configuramdulo interno del DSPIC paraser mapeado en el pin seleccionado.
Parmetros rp_num: Numerodel pin remapeable. Consulteel datasheet paravaloresexistentes.
direction: Configurapin deseadocomoentradao salida. Ver Direction Parameterspara
valoresadecuados.
funct_name: Seleccionamodulo internodel DSPIC paraser usadoen el pin. Ver Input
FunctionsoOutput FunctionsParavaloresadecuados.
Valor que retorna 0 Si no existepin seleccionado.
1 Si lafuncindeseadano estimplementadoen el DSPIC.
2 Si algunregistroRPOUT configuraparasalidael mduloSCK1OUT mientras
SCK1CM essetado(soloparalafamiliaP24FJ256GA110).
255 Si el mapeofueexitoso.
Requerimientos Nada
Ejemplos PPS_Mapping(64, _INPUT, _U2RX); / / Configurapin RP64 como entrada, y conecta
pin RX del UART2 aesta.
PPS_Mapping(99, _OUTPUT, _U2TX); / / configurapin RP99 como salida, y conecta
Pin TX del UART2 aesta.
Notas Use estarutinacuandoel bit IOL1WAY estelimpio.
Puertos E/S de la Familia DSPIC33E/PIC24E
Unl ock_IOLOCK
PPS_Mapping_NoLock
Prototipo unsigned PPS_Mapping_NoLock(unsigned short rp_num, unsigned short input_output, unsigned short
funct_name);
Descripcin
Configuramdulo interno del DSPIC paraser mapeado en el pin seleccionado.
Estafuncionno usaUnlock_IOLOCK ni Lock_IOLOCK el usuario puede llarmarlosantes y despuesde
usar estafuncin ( necesario si el bit IOL1WAY es seteado, cuando despuesde lasecuenciade bloqueo no
se puedadesbloquear)
Parmetros rp_num: Numerodel pin remapeable. Consulteel datasheet paravaloresexistentes.
direction: Configurapin deseadocomoentradao salida. Ver Direction Parametersparavaloresadecuados.
funct_name: Seleccionamodulo internodel DSPIC paraser usadoen el pin. Ver Input Functionso
Output FunctionsParavaloresadecuados.
Valor que retorna 0 Si no existepin seleccionado.
1 Si lafuncindeseadano estimplementadoen el DSPIC.
2 Si algunregistroRPOUT configuraparasalidael mduloSCK1OUT mientrasSCK1CM essetado
(soloparalafamiliaP24FJ256GA110).
255 Si el mapeofueexitoso.
Requerimientos
Nada
Ejemplos
Unlock_IOLOCK();
PPS_Mapping_NoLock(64, _INPUT, _U2RX) / / Configurapin RP64 como entrada, y conectapin RX
del UART2 aesta.
PPS_Mapping_NoLock(99, _OUTPUT, _U2TX); / / configurapin RP99 como salida, y conectaPin TX
del UART2 aesta.
Lock_IOLOCK();
Notas Ninguna
Puertos E/S de la Familia DSPIC33E/PIC24E
Aplicacin para los puertos de entrada y salida
Se desearealizar unaaplicacin que permitael manejo de unamatriz de ledsmediante un
dsPIC33EP256MU806, en lacual se debern mostrar diversas letras dependiendo laopcin
seleccionadapor el usuario.
Paralaimplementacin de estaaplicacin se utilizaron algunos pines de los puertos C, D, y F como
salidas digitales, as mismo se configuraron algunos pines del puerto F como entradadigital. Las salidas
se conectaron aun buffer y aun decodificador y estos asu vez se conectaron aunamatriz de diodos
LED, las entradas se conectaron aun dip-switch. Pararealizar laconexin al dip-switchse utilizaron
especficamente los pines 4 y 5 del puerto F paraas obtener 4 combinaciones, las cuales son: 00, 01,
10 y 11.
Parainiciar estaaplicacin se empez configurando los puertos como entradas y salidas digitales. Una
vez realizadalaconfiguracin se establecieron condiciones en laprogramacin paraque lavisualizacin
en lamatriz de diodos LED dependierade lacombinacin vistadesde el dip-switch.
En lamatriz de LED se pueden visualizar las letras A, B, C o D segn las combinaciones 00, 01,
10 y 11 respectivamente.
Lafigurasiguiente muestralavisualizacin de cadaletrasegn lacombinacin dadapor el dip-switch.
Paraefectos de visualizacin, se utilizaron 8 pines con el fin de controlar el buffer y el decodificador,
paraas, lograr lacorrectavisualizacin en lamatriz de diodos LED.
Puertos E/S de la Familia DSPIC33E/PIC24E
Puertos E/S de la Familia DSPIC33E/PIC24E
Aplicacin para los puertos de entrada y salida
sbitA0 at LATD5_bit;
sbitA1 at LATF1_bit;
sbitA2 at LATD1_bit;
sbitA3 at LATC13_bit;
sbitA4 at LATD9_bit;
sbitO1 at LATE4_bit;
sbitO2 at LATD3_bit;
sbitO3 at LATD10_bit;
unsignedshort i;
unsigned short letra_a[5][7]={
{0,0,1,1,1,0,0},
{0,1,0,0,0,1,0},
{0,1,1,1,1,1,0},
{0,1,0,0,0,1,0},
{0,1,0,0,0,1,0}};
unsigned short letra_b[5][7]={
{0,1,1,1,1,0,0},
{0,1,0,0,0,1,0},
{0,1,1,1,1,0,0},
{0,1,0,0,0,1,0},
{0,1,1,1,1,0,0}};
Puertos E/S de la Familia DSPIC33E/PIC24E
unsigned short letra_c[5][7]={
{0,0,1,1,1,1,0},
{0,1,0,0,0,0,0},
{0,1,0,0,0,0,0},
{0,1,0,0,0,0,0},
{0,0,1,1,1,1,0}};
unsigned short letra_d[5][7]={
{0,1,1,1,1,0,0},
{0,1,0,0,0,1,0},
{0,1,0,0,0,1,0},
{0,1,0,0,0,1,0},
{0,1,1,1,1,0,0}};
voidcontador(unsignedshort n)
{ O1= n & 0x01;
O2= (n & 0x02)>>1;
O3= (n & 0x04)>>2; }
voidmain() {
ANSELC=0;
ANSELD=0;
ANSELE=0;
TRISFbits.TRISF4=1; / / s0
TRISFbits.TRISF5=1; / / s1
TRISDbits.TRISD5=0; / / a0
Puertos E/S de la Familia DSPIC33E/PIC24E
TRISFbits.TRISF1=0; / / a1
TRISDbits.TRISD1=0; / / a2
TRISCbits.TRISC13=0; / / a3
TRISDbits.TRISD9=0; / / a4
TRISEbits.TRISE4=0; / / o1
TRISDbits.TRISD3=0; / / o2
TRISDbits.TRISD10=0; / / o3
while(1)
{ if(PORTFbits.RF4==0 && PORTFbits.RF5==0)
{ for(i=0;i<7;i++)
{ A0=letra_a[0][i];
A1=letra_a[1][i];
A2=letra_a[2][i];
A3=letra_a[3][i];
A4=letra_a[4][i];
contador(i);
Delay_ms(2);
}
}
Puertos E/S de la Familia DSPIC33E/PIC24E
elseif(PORTFbits.RF4==0 && PORTFbits.RF5==1)
{ for(i=0;i<7;i++)
{ A0=letra_b[0][i];
A1=letra_b[1][i];
A2=letra_b[2][i];
A3=letra_b[3][i];
A4=letra_b[4][i];
contador(i);
Delay_ms(2);
}
}
elseif(PORTFbits.RF4==1 && PORTFbits.RF5==0)
{ for(i=0;i<7;i++)
{ A0=letra_c[0][i];
A1=letra_c[1][i];
A2=letra_c[2][i];
A3=letra_c[3][i];
A4=letra_c[4][i];
contador(i);
Delay_ms(2);
}
Puertos E/S de la Familia DSPIC33E/PIC24E
}
elseif(PORTFbits.RF4==1 && PORTFbits.RF5==1)
{ for(i=0;i<7;i++)
{ A0=letra_d[0][i];
A1=letra_d[1][i];
A2=letra_d[2][i];
A3=letra_d[3][i];
A4=letra_d[4][i];
contador(i);
Delay_ms(2);
}
}
}
}
Puertos E/S de la Familia DSPIC33E/PIC24E

You might also like