jueves, 26 de octubre de 2017


Curso totalmente gratuito para aprender a desarrollar interfaces USB usando PIC18F2550


Curso de desarrollo de aplicaciones USB con microcontrolador PIC18F2550 usando MIKROC y CCS



Se aprenderá a manejar tres tipos de comunicacion basica con este micro:

CDC
HID
Bulk

Creación de un cliente para Windows programado en Delphi.


DELPHI versión: XE8 


Tarjeta Power 2550


Requisitos:
1- Tener montada la placa Power 2550 
2- Los aprendices deben tener conocimientos en las siguientes áreas:
3- Electrónica y programación de microcontroladores PIC usando lenguaje C
4- Nociones básicas intermedias en programación pascal para la creación del cliente.
5- Haber fabricado la placa POWER 2550 para hacer las prácticas o placa compatible.
6- Deberás participar y hacer las actividades para permanecer en el curso.

Usaremos los siguientes programas: MIKROC, CCS, EAGLE

>>Para participar debe ser miembro solidario del grupo Programando PICs <<
                        Unete Gratis
                        Tener montada la placa Power 2550
                        O haberla comprado a electrónicos embebidos


Como registrarse: para ello debes ponerte en contacto con Mariano Rocha a travez de facebook <---

Deberas tener una direccion de correo electronico de gmail (indispensable) luego cuando recivas la invitacion en tu correo deberas aceptarla y dirigirte a la pagina: Bienvenidos y presentacion. donde te presentas y das las gracias.

Indice del curso.

1 - Bienvenidos y presentacion.

2 - Curso de programacion USB Placa de desarrollo POWER2550.

3 - Comunicación USB-DELPHI Introducción al PIC18F2550. Introduccion


4 - PIC18F2550. REGISTROS DE FUNCION ESPECIAL y EEPROM interna

5 - PIC18F2550: INTERRUPCIONES

6 - PIC18F2550: PUERTOS DE E/S

7 - PIC18F2550: PROGRAMANDO EL MICROCONTROLADOR PARTE #1

8 - PIC18F2550: PROGRAMANDO EL MICROCONTROLADOR PARTE #2

9 -Proyectos avanzados usando PIC18F2550: Bus USB.

10 -Proyectos avanzados usando PIC18F2550: Bus USB Mas informacion

11-Proyectos avanzados usando PIC18F2550: Configuracion del oscilador

12-Proyectos avanzados usando PIC18F2550: Cliente en Delphi™ XE8 parte #1

13-Proyectos avanzados usando PIC18F2550: Diseño del hardware

14-Proyectos avanzados usando PIC18F2550: Creacion de un Bootloader HID

15-Proyectos avanzados usando PIC18F2550: Recibir datos via HID

16-Proyectos avanzados usando PIC18F2550: Enviar datos via HID

17-Proyectos avanzados usando PIC18F2550: Codificación en Pascal.

18-Proyectos avanzados usando PIC18F2550: Tipos de datos en Pascal

19- Manuales y libros de delphi.

20-Proyectos avanzados usando PIC18F2550: Introduccion a las DLL

21-Proyectos avanzados usando PIC18F2550: Conociendo la libreria mcHID.dll

22- Proyectos avanzados usando PIC18F2550: Creando nuestro primer cliente HID para recibir datos desde el PIC18F2550



domingo, 22 de octubre de 2017


Este es un video explicativo enviado por  José Manuel García de Haro participante del curso


viernes, 20 de octubre de 2017

Prototipo de la placa de desarrollos PIC18F2550.




Caracteristicas prinsipales:


  1. Conmutación de fuentes
  2. Bus ICSP.
  3. Detección de conexión USB
  4. Conexión de los puertos


Diseño del circuito impreso



Descarga el esquemático en eagle
Descargar el diseño en eagle
Descarga el PDF


Agradecimientos a Pipe Cardona por la elaboración del esquemático a partir del diseño de la placa. 
Para realizar las practicas debes montar esta placa o mandarla a hacer.


Características de la placa


Cuenta con doble alimentación, USB-BUS y Externa, Sense PIn, Led Power, Led User, BUS ICSP y Reset. A esta placa se le puede colocar diversos bootloaders y trabajar con diferentes entornos, MIKROC, CCS, Pinguino, XC8.





Lado de las soldaduras



Identificacion de las conexiones de la placa


Simulación de la placa con Altium Designer 

Cortesía del ingeniero Gabo Casarrubias




                                                                              Link de descarga

Conexión con el PICKIT3

Acá vemos como esta conformado el bus icsp de Microchip en el PICKIT3



Conectar el PICKIT3 a la tarjeta POWER2550














Placa POWER4550

Como dato adicional también contamos con la placa POWER4550 encargada por Fredery Polanias. Esta placa trabaja con el PIC18F4550.



Placa POWER2550 versión SMD

Cortesia de Henry Fernando




Descarga los archivos de eagle aca


lunes, 9 de octubre de 2017

¿Qué es un Bootloader?

Un bootloader es un pequeño código que permanece dentro del flash del PIC. Se utiliza como herramientas de programación, para cargar código de programa real en el MCU.   

El código de programa real puede pasar de la PC al gestor de arranque mediante una aplicación de PC específica ("mikroBootloader") a través de interfaces de comunicación específicas.

Micros usados.
Por ahora solo podemos usar micros con 8k de memoria flash ya que las direcciones estan definidas en ese rango, en este caso usaremos el PIC16F876A pero el original funciona para el PIC16F877A.

El codigo original del bootloader se encuentra ubicado en la carpeta:
C:\Users\Public\Documents\Mikroelektronika\mikroC PRO for PIC\Examples\Other\Bootloader\P16\P16F877A

Una vez copiado el archivo vamos a abrir el proyecto y vamos a modificar algunos parámetros como sigue a continuación:


Guardamos, y lo compilamos, se graba el archivo hex y procedemos a armar el siguiente esquema:


Como puedes ver este bootloader funciona por terminal serie, puedes usar cualquier adaptador USB serie como el PL2303 que provee la alimentacion de 5v y es muy economico:


haciendo click en la imagen descargas el driver


Ahora haremos un programa blink para probar el funcionamiento, ejemplo el siguiente:

void main() {
       trisb.b0=0;
       while(1){
       PORTB.B0=1;
       delay_ms(500);
       PORTB.B0=0;
       delay_ms(500);
       }

}


Recuerde las configuraciones deben ser las mismas del bootloader, ahora le damos cargar usando el programa que la ide incorpora para esto:




Recuerde, precionar el boton de reset antes de conectar, una ves cargado vuelva a presionar el reset y espere, el led encendera y apagara y ud se habra dado cuenta que ya esta funcionando.

domingo, 8 de octubre de 2017


sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D4 at RB4_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D7_Direction at TRISB7_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB4_bit;
#include <built_in.h>
const char ASCCI[] = "0123456789ABCDEF";

void main() {
unsigned Temp;
char string[8];
adcon1 = 6;
       Lcd_Init();
       Lcd_Cmd(_LCD_CLEAR);
       Lcd_Cmd(_LCD_CURSOR_OFF);
       while(1){
           temp=ReadDs(0);
           DS18S20ToStr(temp,string);
           lcd_out(1,1,String);
           delay_ms(200);
     
       }
}
Lectura de ADC y visualización en display LCD 2X16



// Lcd pinout settings
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D4 at RB4_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D7_Direction at TRISB7_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB4_bit;

void main() {
unsigned t;
unsigned short h,l;
char txt[7];
   trisb=0;
   portb=0;
   trisa  = 0xff;
   ADC_Init();
   Lcd_Init();
   Lcd_Cmd(_LCD_CLEAR);               // Clear display
   Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
   Lcd_Out(1,1,"Start LCD");                 // Write text in first row

while(1){
     t=ADC_Read(0);
     wordtostr(t,txt);
     lcd_out(2,1,txt);
     delay_ms(100);
}

}

Esta es la configuracion apropiada para este proyecto




sábado, 5 de agosto de 2017

Continuamos con esta serie de ejercicios básicos de programación en ensamblador usando el PIC16F1827
Ej #7
Esta ves damos uso al modulos EUSAR (Enhanced USART).
Por ahora no vamos a utilizar las caracteristicas de deteccion de velocidad que es capas de realizar estos micros, ya que es una caracteristica avanzada que nunca he utilizado, pero que mas adelante en ejercicios posteriores voy a tratar de probar.
Por ahora solo se enviara una cadena de datos, eso si al estilo strings de c, y usando rutinas tambien comunes a lenguajes de alto nivel, pero implementadas en ASM.
Tenemos rutinas como:
CONFIG_USART_9600
UART_WRITE
UART_WRITE_STRING
Esto se pone emocionante!!
ver codigo aca
https://pastebin.com/iCDduWzY
bajate todo el proyecto https://goo.gl/SabWj6


martes, 1 de agosto de 2017

50 ejercicios ensamblador MPLABx con el PIC16F1827 
Continuamos con esta serie de ejercicios básicos de programación en ensamblador usando el PIC16F1827
Ej #6
Esta ves he realizado una nueva actualización de la librería ASM para manejo del LCD ahora se puede utilizar cualquier pin del microcontrolador y cualquier puerto con el fin de hacer mas personalizable la libreria, pero eso no es todo, ahora vamos a ver el TIMER1 en acción, pero eso no es nada he incorporado una librería que había creado hace muchos años para la conversión de datos binarios en BCD y para finalizar estamos usando el direccionamiento Indirecto con los registros INDF0 y FSR0 con el fin de enviar datos al lcd al estilo cadenas de c.
Codigo principal https://pastebin.com/1x5vs7Rf
https://goo.gl/vPcYH5







sábado, 29 de julio de 2017

50 ejercicios ensamblador MPLABx con el PIC16F1827 
Continuamos con esta serie de ejercicios básicos de programación en ensamblador usando el PIC16F1827
Ej #5
Titulado: Manejo de display LCD con librería LCD propia.
Ver libreria https://pastebin.com/GF0fZp0z
archivos para descargar https://goo.gl/DUYpy9












miércoles, 26 de julio de 2017



En los últimos años, hemos visto proyectos y productos pasar lentamente de microcontroladores de 8 bits a microcontroladores ARM más potentes. La razón de esto es simple: si quieres hacer más cosas, como una tostadora con coneccion a Internet, necesitas más bits, más Flash y más poder de procesamiento. Sin embargo, esto no significa que los PIC de 8 bits estén muertos. Los pic de Ocho bit siguen dando batalla, y recientemente Microchip anunció su última familia de microcontroladores de 8 bits.

La familia de microcontroladores PIC16F15386  es la última incorporación de Microchip a su cartera de micros de 8 bits. Esta familia de microcontroladores de Microchip 'incluye todos los juguetes' . Otras familias de PICs han incluido características tales como un generador de forma de onda complementario, oscilador de control numérico, un controlador lógico configurable, ahorro de energía y extra bajo consumo, pero nunca antes tanto en un solo chip.


Esta incluye algunos nuevos modulos internos no visto antes en las ofertas anteriores de Microchip. Cabe destacar las características de administración de energía (modos IDLE y DOZE) y un área de información del dispositivo en el chip que contiene datos calibrados en fábrica (calibración de voltaje ADC y una referencia de voltaje fijo) y un ID exclusivo para cada chip individual.

Como es de esperar de una nueva familia de PIC, el PIC16F15386 es compatible con el MPLAB Xpress  IDE y el MPLAB Code Configurator , un entorno de programación gráfica. Los productos de la familia van desde paquetes de 8 pines(incluyendo DIP!) Con 3.5kB de Flash de programa a 48 pines QFPs con 28kB de memoria Flash de programa. El objetivo de Microchip es ofrecer una amplia oferta, lo que permite a los diseñadores ampliar sus creaciones sin tener que cambiar las familias de los microcontroladores.





martes, 25 de julio de 2017

Cambios: Se cambiaron las resistencias de 1/8w por resistencias de 1/4w mas comerciales.
Cuenta con doble alimentación, USB-BUS y Externa, Sense PIn, Led Power, Led User, BUS ICSP y Reset. A esta placa se le puede colocar diversos bootloaders y trabajar con diferentes entornos, MIKROC, CCS, Pinguino, XC8.




Conexión con el PICKIT3

Acá vemos como esta conformado el bus icsp de Microchip en el PICKIT3





Conectar el PICKIT3 a la tarjeta POWER2550

Diseño del circuito impreso

Pruebas terminadas, conectividad en todos los aspectos funcionando
descargar aca el archivo eagle:

Descargar el diseño en eagle  <<--- click aqui









viernes, 21 de julio de 2017

Continuamos con esta serie de ejercicios básicos de programación en ensamblador usando el PIC16F1827

Titulado: Contador decimal con display led con tabla de datos








copiar codigo fuente aca

Descargar los archivos aca