Entrenadora:PIC 40 pines

De Asociación de Robotica y Domótica de España (A.R.D.E.)

Tabla de contenidos

Características

Objetivos

El objetivo de este módulo es el de servir como punto de partida para todos los demás. Se utilizará para definir los programas de ejemplo y las librerías del software.

Esta pensado para que los principiantes puedan empezar a realizar proyectos sencillos.

Características Técnicas

Las características más importantes de módulo para PIC de 40 pines son las siguientes:

  • Soporta PIC16F877A, PIC18F452 y compatibles.
  • Protección contra cortocircuitos y estática en todos los pines.
  • Posibilidad de incluir varios tipos de oscilador (XTAL y RC).
  • Alimentación 7-24V AC/DC, incluye protección contra inversión de polaridad.
  • Posibilidad de alimentar otros módulos con hasta 1A de corriente (es necesario poner un disipador).
  • Botón de reset con posibilidad de utilizarlo como interrupción externa.
  • LED de comprobación.
  • MAX232 incluido para comunicación serie (y la posibilidad de incluir un bootloader).
  • Conector ISCP para debugger externo.

Hardware

Opciones de Montaje

Para cada circuito se especificarán los componentes que lo componen. Cada opción señalará los componentes que han de ser montados y los que no han de ser montados, los componentes que formen parte del circuito pero no estés definidos como necesarios o prohibidos, podrán ser montados en función de otras opciones.

Alimentación

Elementos implicados:

  • Condensadores: C1, C2
  • Diodos: D1, D2, D3, D4, D5
  • Reguladores: Q1

In 9-30VAC, Out(Vcc) 5VDC:

  • Montar: D1, D2, D3, D4, D5, Q1(7805), C1, C2
  • No Montar: -

In 8-30VAC, Out(Vcc) 5VDC:

  • Montar: D1, D5, Q1(7805), C1, C2. Puentear D3
  • No Montar: D2, D3, D4

In 6-30VAC, Out(Vcc) 3.3VDC:

  • Montar: D1, D2, D3, D4, D5, Q1(7803), C1, C2
  • No Montar: -

In 5-30VAC, Out(Vcc) 3.3VDC:

  • Montar: D1, D5, Q1(7803), C1, C2. Puentear D3
  • No Montar: D2, D3, D4


Circuito de RESET

Elementos implicados:

  • Resistencias: R36, R40, R42
  • Condensadores: C7
  • Diodos: D7
  • Pulsadores: S1
  • Jumpers: J11 (para alternar el pulsador entre RESET e INT en RB0).

Pulsador de Reset:

  • Montar: D7 (sólo si no se utilizará el ICSP), S1, R42, C7, R40, J11 (sólo si se quiere alternar el pulsador entre RESET e INT en RB0).
  • No montar: R36

Reset Interno (posibilidad de utilizar RE3):

  • Montar: R36
  • No montar: D7, C7, R40, R42

Reset Externo:

  • Montar un puente en R36
  • No montar: D7, C7, R36, R40, R42


Oscilador

Elementos implicados:

  • Resistencias: R7, R8, R41
  • Condensadores: C5, C6
  • Cristal: Y1

Oscilador RC:

  • Montar: R41, C5
  • No montar: Y1, C6, R7, R8

Oscilador de Cristal:

  • Montar: Y1, C5, C6
  • No montar: R41, R7, R8

Oscilador interno (posibilidad de usar RA6, RA7):

  • Montar: R7, R8
  • No montar: Y1, C5, C6

Oscilador externo:

  • Montar un puente en R7, R8
  • No montar: Y1, C5, C6, R7, R8, R41

I2C/SPI

El conector MSSP (J8) sólo puede incluir uno de estos dos protocolos, el jumper J13

Elementos implicados:

  • Resistencias: R37, R38
  • Condensadores: C13, C14
  • Jumpers: J13. Conectará el pin 5 de conector MSSP con la línea SS# (RA5*) o INT# (RB0*), respectivamente se utilizarán para los protocolos SPI e I2C

I2C:

  • Montar: R37, R38, C13, C14. J13 en posición 1-2 ??
  • No montar: -

SPI:

  • Montar: J13 en posición 2-3 ??
  • No montar: R37, R38, C13, C14

(*) Señales después de pasar por las resistencias de protección.

Otras opciones

Control de flujo en RS232: Se maneja mediante los jumpers J14, J15, la posición 1-2 (??) indica control mediante las líneas DTR/DSR, la posición 2-3 (??) indica control mediante las líneas RTS/CTS. El control de flujo se maneja mediante el control de los pines RE0(para DSR/CTS) y RE1(para DTR/RTS).

Resistencias de protección: Las resistencias R1 a R36 sirven como protección contra cortocircuitos, se recomienda ponerlas pero pueden ser substituidas para una mayor velocidad en la conmutación de las señales para elementos que cargen la línea (aunque en este caso siempre es recomendable poner un driver de poténcia).

El valor de estas resistencias se obtiene al dividir la tensión de alimentación entre la corriente máxima que puede entregar el micro (por un pin o en total por el número de pins I/O). De esta forma para el PIC18F452:

  • Vcc = 5V
  • Imax_pin = 20mA
  • Imax_total = 200mA
  • R = Vcc / Imax_pin = 5V / 20mA = 250R
  • R = Vcc / Imax_total * Npins = 5V / 200mA * 32 = 800R
  • Al escoger una resistencia de 1k nos aseguramos que los valores de corriente máxima nunca se superan.


Para el PIC18F45J10:

  • Vcc = 3.3V
  • Imax_pin = 4mA (PORTA, PORTD, PORTE)
  • Imax_pin = 25mA (PORTB, PORTC)
  • Imax_total = 200mA
  • R = Vcc / Imax_pin_ade = 3.3V / 4mA = 825R
  • R = Vcc / Imax_pin_bc = 3.3V / 20mA = 165R
  • Para los Pins del PORTA, PORTD, PORTE la corriente máxima que consumirán será: Imax_ade = Imax_pin_ade * Npin_ade = 4mA * 16 = 64mA. Por lo que la corriente máxima permitida para los PORTB y PORTC (para no superar la corriente máxima total) será: I_pin_bc = (Imax_total - Imax_ade) / Npin_bc = (200mA - 64mA)/16 = 8.5mA y la resistencia máxima permitida R = 3.3V / 8.5mA = 388R

Además también tenemos que tener en cuenta que la potencia disipada en ambos casos no puede superar nunca el valor de 1W:

Pdis = Vcc x {Icc – ∑ IOH} + ∑ {(Vcc – VOH) x IOH} + ∑(VOL x IOL)

Orden de montaje

(Versión PIC40 1.1.0) Sólo montar los componentes que sean necesarios para la opción deseada.

  • Montar resistencias: R39, R42
  • Montar diodo: D5
  • Montar zócalos: U1, U2
  • Montar pulsador: S1
  • Montar LED: D6
  • Montar condensadores cerámicos: C2, C3, C4, C5, C6, C7
  • Montar cristal: Y1
  • Montar resistencias: R1 a R38, R41
  • Montar jumpers: J10, J11, J13, J14, J15
  • Montar resistencia: R40
  • Montar diodos: D1 a D5, D7
  • Montar condensadores electrolíticos: C1, C8 a C12
  • Montar conectores: J1 a J9
  • Montar regulador: Q1
  • Montar circuitos sobre zócalos: U1, U2

Documentos

Histórico

Versión 1.1.0

  • Fecha: 5/2/2008
  • Ficheros PDF: PIC40_v010100.pdf
  • Modificaciones/Correcciones:
    • Diseño del PCB
    • Renombrado de componentes
    • Eliminación de S2: la selección del pin que ataca la señal PGM se realizará mediante un cable soldado a las vías dispuestas a tal efecto (al lado del conector J2 y al lado de los pines RB5 y RB3). En las nuevas versiones de PIC esta señal no se usa.
    • Eliminación del condensador C7: este condensador se pondrá si es necesario (PIC18F45J10) en substitución del conector J10
    • Eliminación del LED D5 (en v01.00.00), y nuevo LED D6 (en v01.01.00)

Versión 1.0.0

Futuras correcciones/modificaciones

  • D7: Disminuir el tamaño del componente (a DIODE-0.1)
  • D5: Disminuir el tamaño del componente (a DIODE-0.3)
  • R41: Aumentar el tamaño del componente (a AXIAL-0.2)
  • C2-C3: Intercambiar componentes para ajustar a esquemático.
  • C5: Aumentar el tamaño del componente (a RAD-0.2)
  • C6: Aumentar el tamaño del componente (a RAD-0.2)
  • C7: Aumentar el tamaño del componente (a RAD-0.2)
  • Y1: Disminuir tamaño de los pads del componente para evitar cortocircuitos con la carcasa del mismo.

Software

Programa de ejemplo

  • Procesador: PIC18F452
  • IDE/Compilador: MPLAB IDE v8.00 / C18
  • Frecuencia: 10MHz
  • Este programa realiza un barrido de los puertos del PIC para comprobar que la salida es correcta.

 #include <p18cxxx.h>
 #include <p18f452.h>
 #include <delays.h>
 #pragma code
 
 void main(void)
 {
 	/* Configure all PORTC pins for output */
 	TRISA = 0;
 	TRISB = 0;
 	TRISC = 0;
 	TRISD = 0;
 	TRISE = 0;
 	
 	PORTA = 0x01;
 	PORTB = 0xEF;
 	PORTC = 0x01;
 	PORTD = 0xEF;
 	PORTE = 0x01;  	
  
 	/* Loop forever */
 	while (1)
 	{
 		
 		Delay10KTCYx(50);
 		Rrncf(PORTA,1,0);
 		Rrncf(PORTB,1,0);
 		Rrncf(PORTC,1,0);
 		Rrncf(PORTD,1,0);
 		Rrncf(PORTE,1,0);
 	}
 }

Herramientas personales