PIC18F45K50 Pinguino/es

From Pinguino-Wiki
Jump to: navigation, search
Language: English  • Español • Magyar


Contents

Aviso Importante para todos los usuarios de Pinguino

Aviso Importante: Por favor lea las advertencias importantes al menos una vez!

Características

Esta versión de la placa Pinguino está construida con un Microcontrolador PIC18F45K50 de Microchip, es compatible pin a pin con la serie 4550 y es capaz de operar a 5v. Tambien posee un oscilador de precisión integrado para USB, permitiendo construir proyectos USB sin la necesidad de algún oscilador externo. Ademas contiene una unidad CTMU para aplicaciones de medición.

Trabaja con el cristal interno o con un cristal externo opcional de 8 o 20 MHz.

El Pinguino 45K50 es compatible con USB 2.0.

Las características de esta placa Pinguino son:

  • Procesador de 8 bit, 12 MIPS ejecutándose a 48Mhz
  • 32K de memoria de programa tipo flash
  • 2048 bytes de RAM
  • 256 bytes de memoria de Datos EEPROM
  • 17 Entradas/salidas digitales de las cuales 5 pueden ser utilizadas como entradas analógicas,
  • 1 UART (para comunicaciones seriales), 1 SPI y 1 I2C
  • 2 salidas para PWM rápida (3000 Hz),
  • Convertidor Analógico a Digital (ADC) de 10 bit, hasta 25 canales y con voltaje de referencia.
  • 2 Comparadores Analógicos
  • Convertidor Digital-Analógico (DAC) de 5 bits
  • Unidad de Medición de Tiempo de Carga (CTMU) para aplicaciones de medición.
  • 2 Temporizadores de 8-bit
  • 2 Temporizadores de 16-bit
  • Voltaje de operación: 5V
P45K50-03a.png

La hojas de datos técnicos (datasheet), erratas, notas de aplicación, ejemplos de código y librerías de software para el PIC18F45K50 de Microchip están disponibles aquí (en ingles).

Archivos CAD (Kicad)

KiCad es una suite de software EDA para la creación de esquemas profesionales y placas de circuitos impresos de hasta 16 capas. KiCad es ejecutable en Windows, Linux y Apple OS X y esta publicado bajo la licencia GNU-GPL v2 de código abierto gratuito. Con KiCad puedes realizar lo siguiente:

  • Diseño de diagramas electrónicos.
  • Creación de Netlist en formatos múltiples (PCBNew, OrCAD, CadStar, Spice, etc...).
  • Diseño de placas de circuito impreso (PCB).
  • Visualización 3D de los PCB.
  • Generación de salidas para fabricación (Gerber, archivos para perforado y otros que sean necesarios para manufacturar un PCB)

Para mayores detalles por favor consulte el sitio oficial de Kicad (en ingles).

Los esquemáticos en Kicad y el PCB de Pinguino 45K50 puede consultarlos aquí.

Para mejores resultados nosotros usamos las bibliotecas y módulos en 3D de Walter : http://smisioto.no-ip.org/elettronica/kicad/kicad-en.htm

Información general de la placa

Diagrama Electrónico

Hay un pulsador para reiniciar la placa. Cuando reinicia, la placa entra en modo gestor de arranque (bootloader) esperando que el usuario cargue un programa desde el equipo de desarrollo. Si no hay comunicación con el ordenador (vía cable USB) por 5 segundos, el programa que actualmente este en memoria es ejecutado.

La placa es alimentada por el conector USB (5V). Para alimentar con una fuente de mayor voltaje es necesario instalar el circuito regulador de 5V (LM7805) y conectar la fuente a través del pin VIN.

Cualquier fuente (regulada) externa de 2.3V a 5.5V puede alimentar la placa mediante el uso de uno de los pares pines +/- . Favor de leer el datasheet del PIC18F45K50 si planea alimentar la placa de esta manera

Instrucciones para construcción

El Pinguino 45K50 es una de las placas mas fáciles de ensamblar. Es pequeña pequeña (71x26mm) pero muy fácil de armar, incluso por niños. Solo necesita 4 resistencias y 3 capacitores para funcionar.

Tenemos que agregar 2 LEDs, un botón (pulsador) para reset y un conector USB, ya que es un dispositivo USB de velocidad completa, como todo Pinguino.

El Pinguino 45K50 es también una placa mejorable:

  • Si lo necesitas, puedes agregar un regulador de 5v para alimentar la placa desde una fuente de poder externa.
  • Es también posible agregar un cristal externo. En este caso nótese que el PCB es totalmente compatible con el PIC18F4550, por lo tanto puedes fácilmente convertir tu Pinguino 45K50 en un Pinguino 4550.

Lista de Componentes

Resistencias
  • R1,R2,R4 470 Ohm (Amarillo - Violeta - Negro - negro)
  • R3 10K Ohm (Café - Negro - Naranja)

Capacitores

  • C1,C5 100nF (marcado como 104)
  • C2 220nF (marcado como 224)

Diodos

  • D1, D2 LED rojo de 3mm (+/ánodo = Terminal larga)

Conectores

  • JP1 USB Hembra Tipo-B
  • P1,P2 Tira de Headers (Pines) de 2.54mm (*)
  • K1 Selector de voltaje (Tira de headers de solo 3 pines)
  • 18F45K50 2 tiras de 20 (pines) de Headers hembra redondos

Otros

  • 18F45K50 PIC18F45K50 (presentación DIP)
  • SW1 Push Button para reset (Botón de dos terminales)
  • PCB Placa de circuito impreso
P45k50-00.jpg

Opcional

  • C6,C7 22pF (Capacitor marcado como 22)
  • C3 22uF (Capacitor electrolítico, marcado como 22uF)
  • C4 100nF (Capacitor marcado como 104)
  • X1 Cristal de 8 o 20 MHz
  • U1 LM7805 (regulador de 5V)
  • P0 Conector para Suministro de energía externo ( tira de 3-pines )
  • 18F45K50 PIC18F45K50 o PIC18F4550

(*) Utilice tiras sencillas de pines (headers) de 2.54mm tipo macho si desea un Pinguino listo para protoboard; tipo hembra si lo desea parecido a un Arduino.

Antes de comenzar a soldar

  • Consideraciones antes de soldar.

La PCB tiene 2 lados. uno es el lado de los componentes (Ver imagen abajo):

P45k50-01a.jpg

El otro es el lado para soldar (abajo):

P45k50-01b.jpg

Del lado de los componentes, identifica las perforaciones (pistas) correspondientes a cada uno de las terminales de los componentes. Inserta las terminales en los agujeros y hay que doblarlas ligeramente para que los componentes no se caigan al dar vuelta mientras se realiza el proceso de soldado.

Gira la placa y colocala en una superficie lisa y seca, con el lado de los componentes hacia abajo.

Caliente durante 3 segundos, con la punta del soldador, la pista de la placa y el terminal del componente a soldar. Coloque la soldadura entre el terminal y la pista hasta que cubra completamente la pista. Retire la punta del soldador y el alambre de soldadura. Repita este proceso para soldar los cables restantes del componente.

Para mas información sobre como soldar, pulsa aquí.

P45k50-02.jpg

'Placa con los componentes colocados

Construcción

  • Colocar y soldar todos los resistores (3x470R y 10K). Cortar los excedentes de los terminales.
  • Opcional : Colocar y soldar los dos capacitores de 22pF (C6 y C7, marcados como 22). Estos capacitores no están polarizados. Cortar los excedentes..
  • Opcional : Colocar y soldar el cristal de 8 o 20 MHz. Cortar el excedente.
  • Colocar y soldar las tiras dos de headers de 20 pines (a manera de un socket DIP40 ).
  • Colocar y soldar los capacitores de 100nF (C1 y C5, C4 es opcional, todos marcados como 104). También son capacitores no polarizados. Cortar los excedentes de terminales.
  • Colocar y soldar el capacitor de 220nF (C2, marcado as 224). Este capacitor tampoco es polarizado. Cortar el excedente..
  • Colocar y soldar el botón de 2 terminales . No importa la orientación.
  • Colocar y soldar los 2 LEDs. El LED es un componente polarizado y generalmente la terminal mas corta debe conectarse a tierra ( GND ). Remitiéndonos a la placa, inserte la terminal mas corta en el agujero mas cercano al botón. El LED de encendido ( Power LED ) es el más cercano al conector USB. Cortar los excedentes.
  • Opcional : Colocar y soldar el capacitor electrolítico de 10uF. La franja blanca en un costado del capacitor debe coincidir con el signo menos del grabado en el PCB (es decir, junto al de 100nF). Cortar los excedentes.
  • Colocar y soldar el conector USB. Doble las dos pestañas de metal antes de soldar.
  • Colocar y soldar todos los conectores header. Hay que notar que pueden soldarse en ambos lados. Usted decide.
  • Colocar y soldar a el conector header de 3-pin donde el grabado muestra EXT|USB (al final de la placa). Colocar un a jumper en el lado EXT o USB para elegir entre una fuente externa o el cable USB como toma de alimentación (respectivamente). Si solo se planea alimentar mediante USB se puede conectar las dos pistas mediante un cable o con un poco de soldadura
  • Colocar el PIC18F45K50 en su socket. Esto sera mas fácil si primero si primero se dobla ligeramente sus dos filas de pines hacia el centro. Nótese que el microcontrolador tiene una muesca en uno de sus extremos. Esta muesca debe estar cerca del lugar donde el regulador de 5v se puede colocar.

Sugerencias:

1.- Los resistores no están polarizados, por ello no importa en que dirección son colocados, pero con fines estéticos es preferible tenerlos apuntados en la misma dirección.

2.- Los capacitares que no están polarizados pueden colocarse en cualquier dirección, pero es recomendable colocarlos de tal manera que sea visible su código.

Programación vía ICSP (si es requerida)

La Programación Serial en Circuito o ICSP (In-Circuit Serial Programming) es una manera de grabar/actualizar el firmware del Pinguino (bootloader).

Grabar/Actualizar el firmware es necesario solo en dos casos :

  1. Estas construyendo tu mismo tu propio Pinguino, entonces necesitas grabar el bootloader solo una vez.
  1. (En el improbable caso de que) colapsaras tu placa Pinguino.

Si compraste una placa comercial o compraste una placa desde la Pinguino Shop, el bootloader ya fue grabado previamente.

El código fuente (para ser compilado) y los archivos .hex ( el que necesites para tu programador, ya compilado) para el bootloader (v4.x) puede descargarse desde:

Bootloader_v4.14_18f45k50_INTOSC.hex es el código del bootloader especificado para una placa que corra sin ningún cristal externo, es decir, con el oscilador interno (INTOSC).

Usando un programador estilo PICkit

Conecte el programador PICkit (o alguno similar) con un cable ICSP a los pines del Pinguino (vea la tabla abajo) y cargue el firmware con, por ejemplo, MPLAB X IDE para para Windows/OS X/Linux, MPLAB IDE exclusivo para Windows o PICkit2 standalone program.para Windows/OS X/Linux

Conector ICSP Nombre en Microchip Nombre en Pinguino
1 MCLR pin 35
2 VDD 5V
3 GND GND
4 PGD pin 7
5 PGC pin 6
6 PGM pin 5

Usando otro Pinguino

Esta sección ilustrara como conectar un Pinguino para programar el bootloader (firmware) a partir de otro Pinguino.

SECCION PENDIENTE (para mas información puede también revisar esto) (en ingles)

Probando la placa ensamblada

Conecta la placa Pinguino a la PC a través de un cable USB. El LED rojo (power) estará encendido. El bootloader iniciara y saltara al programa del usuario (si hay alguno, sino nada sucederá).

Cuando el botón RESET es presionado, el bootloader esperara hasta que el programa este cargado. El LED amarillo (USERLED) parpadeara con intensidad hasta que el programa del usuario comience a ser recibido.

Si la placa es alimentada con una fuente externa y el cable USB no esta conectado a la PC, el bootloader esperara 5 segundos durante los cuales el LED amarillo permanecerá encendido y después ejecutara el programa grabado (si hay alguno).

Ya estas listo para “jugar” con placa y el Pinguino IDE.

Diviértete !!!

P45k50-05.jpg

Primeros Programas

Aquí están 4 formas para encender un LED en tu nueva placa Pinguino :

Ejemplo 1 : Con los registros del PIC

void setup()
{
    TRISAbits.TRISA4 = OUTPUT;
}
 
void loop()
{
    LATAbits.LATA4 = LOW;
    delay(50);
    LATAbits.LATA4 = HIGH;
    delay(500);
}

Ejemplo 2 : A la manera de Arduino

void setup()
{
    pinMode(USERLED, OUTPUT);
}
 
void loop()
{
    digitalWrite(USERLED, LOW);
    delay(500);
    digitalWrite(USERLED, HIGH);
    delay(500);
}

Ejemplo 3 : ¿Aun mas sencillo?

void setup()
{
    pinMode(USERLED, OUTPUT);
}
 
void loop()
{
    toggle(USERLED);
    delay(500);
}

Ejemplo 4 : Usando una interrupción

void myBlink() { toggle(USERLED); }
 
void setup()
{
    pinMode(USERLED, OUTPUT);
    // Use Timer0 para cambiar el USERLED cada 500 ms
    OnTimer0(myBlink, INT_MILLISEC, 500);
}
 
void loop()
{
}

Troubleshooting

¿Problema(s) con tu hardware Pinguino? Encuentra ayuda en el Foro.(En ingles y español)

Pin Out

Has to be updated.

Nombre del Pin Etiqueta en PCB E/S Digital Tolerancia hasta 5.5V Entrada Analoga Otro Pin en Chip Nombre Microchip
0 D0 Yes Yes SDA / SDI 33 RB0/AN12/INT0/FLT0/SDI/SDA
1 D1 Yes Yes SCL / SCK 34 RB1/AN10/INT1/SCK/SCL
2 D2 Yes Yes 35 RB2/AN8/INT2/VMO
3 D3 Yes Yes 36 RB3/AN9/CCP2(1)/VPO
4 D4 Yes Yes 37 RB4/AN11/KBI0/CSSPP
5 D5 Yes Yes 38 RB5/KBI1/PGM
6 D6 Yes Yes ICSP PGC 39 RB6/KBI2/PGC
7 D7 Yes Yes ISCP PGD 40 RB7/KBI3/PGD
8 D8 Yes Yes Serial TX 25 RC6/TX/CK
9 D9 Yes Yes Serial RX / SDO 26 RC7/RX/DT/SDO
10 D10 Yes Yes 15 RC0/T1OSO/T13CKI
11 D11 Yes Yes PWM 16 RC1/T1OSI/CCP2(1)/UOE
12 D12 Yes Yes PWM 17 RC2/CCP1/P1A
13 D13 / A0 Yes Yes Yes 2 RA0/AN0
14 D14 / A1 Yes Yes Yes 3 RA1/AN1
15 D15 / A2 Yes Yes Yes 4 RA2/AN2/VREF-/CVREF
16 D16 / A3 Yes Yes Yes 5 RA3/AN3/VREF+
17 D17 / A4 Yes Yes Yes 7 RA5/AN4/SS/HLVDIN/C2OUT
18 D18 / A5 Yes Yes Yes 8 RE0/AN5/CK1SPP
19 D19 / A6 Yes Yes Yes 9 RE1/AN6/CK2SPP
20 D20 / A7 Yes Yes Yes 10 RE2/AN7/OESPP
21 D21 Yes Yes 19 RD0/SPP0
22 D22 Yes Yes 20 RD1/SPP1
23 D23 Yes Yes 21 RD2/SPP2
24 D24 Yes Yes 22 RD3/SPP3
25 D25 Yes Yes 27 RD4/SPP4
26 D26 Yes Yes 28 RD5/SPP5/P1B
27 D27 Yes Yes 29 RD6/SPP6/P1C
28 D28 Yes Yes 30 RD7/SPP7/P1D
29 D29 Yes Yes RUN LED / USERLED 6 RA4/T0CKI/C1OUT/RCV
OSC1 13 OSC1/CLKI
OSC2 14 OSC2/CLKO/RA6
RESET RST Reset switch / ICSP MCLR 1 MCLR/VPP/RE3
USB- USB 23 RC4/D-/VM
USB+ USB 24 RC5/D+/VP
Vusb USB 18 VUSB
VDD (up to 5.5V) 11 VDD
VDD (up to 5.5V) 32 VDD
VSS (Gnd) 12 VSS
VSS (Gnd) 31 VSS

Fritzing

Pendiente.

Como obtener uno ?

Visita la Pinguino Shop y elige entre las opciones que mas se ajusten a tus necesidades:

  • El Kit completo (incluido el microcontrolador PIC18F45K50 con el bootloader USB pre-instalado).
  • La tarjeta PCB grabada, para construir tu propio Pinguino 45K50,
  • El Microcontrolador PIC18F45K50, pre-programado con el Pinguino bootloader, para construir tu propio Pinguino 45K50.
Personal tools