Está en la página 1de 15

Uso y configuración de los

GPIO – Prende LED


CAP 1 : Pines y puertos de
entrada y salida del dsPIC
CAP 2 : Configuración de bits
CAP 3 : Uso de retardos (delay)
CAP 4 : Ejemplos de aplicación.

Instructor : Ing. Jhon Ore 1


CAP 1 : Pines y puertos de
La entrada
figura expuestay salida
a continuación, nos explicara la relación
entre el software del dsPIC y el hardware. Una línea del
código de software que asigna 51 a un registro X, es una
instrucción, en formato binario 51 se representa como
00110011.

Figura 1. Representación Eléctrica de un Byte.


2
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 1 : Pines y puertos de
Deentrada y
igual manera ocurresalida
con las entradas y salidas del dsPIC,
mientras en software tenemos 1 o 0 lógicos en los pines
tendremos 0 o 5.0 voltios, a continuación vemos el diagrama
del dsPIC con todos sus pines, los cuales pasaremos a describir.

Figura 2. Pines de entrada/salida del dsPIC30f4013.


3
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 1 : Pines y puertos de
entrada y salida
MLCR o Master Clear Reset:
La barra arriba de MCLR significa que es de lógica negativa, es decir
al revés de lo normal, cuando se desea resetear se pone entonces a
0 y cuando no a 1.
AN0 a AN12:
Son canales de entrada analógica conectados a conversores de
analógico a digital (ADC) de 10 bits o 12 bits incluidos en el
dsPIC.
Los pines CNx:
Los pines CNx tienen
capacidad de
notificación de cambio
de entrada, cada uno de
estos pines genera una
interrupción si su estado
de tensión DC cambia, 4
para facilitarUSO
su Yuso el
CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 1 : Pines y puertos de
entrada y salida
UxTXSon
y pines de transmisión y recepción del modulo serial RS-232.
UxRX:

INTx:: Son pines de interrupción, estos pines trabajan de manera similar


que los pines CN, pero ellos son bits mas complejos dado que
estos pueden detectar, selectivamente el cambio de estado de
cada pin en el flanco de subida o bajada, adicionalmente son
usados para el “wake-up” del DSPIC del modo “sleep”. La función
Ocx : Son
INTxsalidas de modulación
es excelente por ancho
para monitorear de pulso
pulsos PWM. El DSPIC esta
externos.
especialmente diseñado para aplicaciones de control de motores, y
estos pines están conectados a drivers de PWM complejos en el
interior del dsPIC.
Son
SCL y SDA: clock y data de la comunicación serial I2C

CK1 ,SDI1Son
, SD01
clock ,,salida,
y SS1: entrada de datos y selector de la comunicación se

OSC1 ySon
OSC2:
entradas de reloj de oscilador externo.
5
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 1 : Pines y puertos de
entrada
PGEDx y PGECx y salida
tos y reloj de programación, usados por PICKIT3
VDD y VSS :
Son fuente positiva y negativa para el voltaje lógico DC.
VREF+ y VREF-:
Son las referencias positiva y negativa analógicas. La fuente de
voltaje analógico es AVDD y AVDSS.
GPIO:
Todas la patitas de E/S pueden suministrar o absorber hasta
25mA.Las patitas de E/S que se multiplexan señales
correspondientes a los periféricos dejan de ser E/S digitales cuando
están funcionando dichos periféricos.
En conjunto son 30 pines de E/S digitales. Cada pin de E/S puede
ser configurado como de entrada o salida, y se puede cambiar su
configuraciónUSO
durante el funcionamiento del dsPIC. 6
Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 1 : Pines y puertos de
entrada
puertas de E/S,y salida
Las patita de E/S se agrupan para conformar las
cada una de las cuales tiene
asociados 3 registros.
TRISx:
Registro de la dirección de los datos. cada uno de sus bits determina la
dirección de la patitas de E/S asociada. Determina si el pin es una
entrada o una salida. Si el bit de dirección de datos es ‘1’, entonces el
pin es una entrada, y si es ‘0’ entonces el pin es una salida.
PORTx:
Registro de la puerta de E/S. una lectura de PORTx recoge el valor lógico
de las patitas de E/S, mientras que una escritura los escribe.
LATx:
Registro cerrojo tipo “latch”, de E/S, escribe en el latch del puerto.
Nota: ADPCFG = 0xFFFF; // set to digital I/O (not analog)
7
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 2 :
Configuración
Los dispositivos de
de microchip tienen registros de configuración
con bits que permiten y / o configurar las características del
Bits
dispositivo.
Nota: Si no configura los bits de configuración correctamente, el dispositivo no funcionará
o al menos no como se esperaba.

En particular, usted necesita saber:


 Oscillator selection:
Esto debe coincidir con los circuitos del oscilador de su
hardware. Si esto no es correcto, es posible que el reloj del
dispositivo no se ejecute. Por lo general, las placas de desarrollo
utilizan osciladores de cristal de alta velocidad. Desde el código
de ejemplo:
#pragma config FOSFPR = XT //XTAL(4MHz a 10MHz)
#pragma config FOSFPR = FRC_PLL16 //RC Interno
8
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 2 :
 Watchdog Configuración
timer: de
Bits inesperados. Desde el código de ejemplo:
recomienda desactivar este temporizador hasta que sea necesario.
to evita restablecimientos

#pragma config WDT = WDT_OFF

 Code protection:
Apague la protección del código hasta que sea necesario.
Esto garantiza que la memoria del dispositivo sea totalmente
accesible.
Desde el código de ejemplo:
#pragma config GCP = CODE_PROT_OFF
C:\Program Files (x86)\Microchip\xc16\v1.30\docs\config_index.html
9
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 2 :
// FOSC
Configuración de
#pragma config FOSFPR = FRC_PLL16
#pragma config FCKSMEN = CSW_FSCM_OFF
// Oscillator (FRC w/PLL 16x)-->Fosc=16x7.5MHz, i.e. 30 MIPS
// Clock Switching and Monitor (Sw Disabled, Mon Disabled)

Bits
// FWDT
#pragma config FWPSB = WDTPSB_16 // WDT Prescaler B (1:16)
#pragma config FWPSA = WDTPSA_512 // WDT Prescaler A (1:512)
#pragma config WDT = WDT_OFF // Watchdog Timer (Disabled)
//WDT_ON (Watch Dog Timer) Habilitado se activa un temporizador que realiza un reset
//WDT_OFF cada cierto tiempo sin importar que linea de código se este ejecutando...
// FBORPOR
#pragma config FPWRT = PWRT_OFF // POR Timer Value (Timer Disabled)
// Si lo desactivamos este fuse el dspic empieza funcionar a partir de los 3.3 voltios
// sin importar los micro segundos en los cuales una fuente común llegaría
// a los 5 voltios
// Al activar se activa un pequeño retardo antes de iniciar el pic. En teoría seria
// hasta que la tensión se estabilice (5v ).
#pragma config BODENV = BORV20 // Brown Out Voltage (Reserved)
#pragma config BOREN = PBOR_ON // PBOR Enable (Enabled)
//BODENV: Selección los niveles del BOR, nivel al cual BOREN responderá.
//BOREN: Habilita y configura el modo del Brown-OutReset. Provoca que el micro entre en modo
//Reset si el voltaje de alimentación baja a un cierto nivel.
#pragma config MCLRE = MCLR_EN // Master Clear Enable (Enabled)
//MCLRE_ON El pin de reset RA0/MCLR actúa como pin de reset.
//MCLRE_OFF El pin RA0/MCLR actúa como entrada únicamente.
// FGS
#pragma config GWRP = GWRP_OFF // General Code Segment Write Protect (Disabled)
#pragma config GCP = CODE_PROT_OFF // General Segment Code Protection (Disabled)
// FICD

10
#pragma config ICS = ICS_PGD // Comm Channel Select (Use PGC/EMUC and PGD/EMUD)

USO Y CONFIGURACION DE LOS GPIO-PRENDE LED


CAP 3 : Retardos
Retardos
__delay32()
Library Header File:
En este ejemplo, se utiliza la función delay32 de la librería del compilador
libpic30.Acceder a esta biblioteca, debe incluir libpic30.h.

The _delay() Function:


Debido a que la velocidad de ejecución, en la mayoría de los casos, hará que los LED
parpadeen más rápido de lo que el ojo puede ver, la ejecución necesita ser ralentizada.
__delay32 () es una función de biblioteca que puede ser utilizada por el compilador

Ejemplos:
__delay32(40000000); // 1seg
__delay32(20000000); //0.5 seg
__delay32(40000); //1 mseg
__delay32(40); //1 useg
11
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 4 : Ejemplos de
aplicación
Ejercicio Nº 01:
Construir un programa para un dsPIC30F4013 tal que haga
parpadear un LED por el puerto RB0 con un tiempo cualquiera;
es decir, que se apague y se prenda continuamente.

12
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 4 : Ejemplos de
aplicación
Ejercicio Nº 02:
Construir un programa para un dsPIC30F4013 tal que haga
parpadear varios LEDs por el puerto B con un tiempo
cualquiera; es decir, que se apague y se prenda
continuamente.

13
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 4 : Ejemplos de
Ejercicio Nº 03:

aplicación
Construir un programa para un dsPIC30F4013 tal que usando
el pulsador del pin RD0 del dsPIC , se pueda controlar el
sentido de encendido de los LED: Cuando se mantiene
presionado el pulsador las luces van en sentido ascendente
(RB0,RB1…RB7) y cuando se deja de presionar el sentido es el
inverso (RB7, RB6…RB0)

14
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED
CAP 4 : Ejemplos de
Ejercicio Nº 04

aplicación
Construir un programa para un dsPIC30F4013 tal que el dsPIC haga
lo siguiente:
Inicialmente todos los LED están apagados del puerto B.
 Si aprieta S1 (RD0) Los leds se encienden y parpadean al mismo
tiempo
 Si aprieta S2 (RD1) Los leds se encienden consecutiva y
continuamente
 Si aprieta S3 (RD2) Se apagan todos los leds.

15
USO Y CONFIGURACION DE LOS GPIO-PRENDE LED

También podría gustarte