Autor Tema: (Solucionado) HID Bootloader + CCS  (Leído 12344 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cyberpex

  • PIC10
  • *
  • Mensajes: 10
(Solucionado) HID Bootloader + CCS
« en: 15 de Junio de 2011, 16:04:35 »
Hola!

Hace un tiempo hice una placa de entrenamiento, inspirada en Arduino con un PIC 18F4550. Placa diseñada para encajar en un protoboad y con todos los pines disponibles (accesibles)

Descargué y modifiqué el bootloader HID USB de microchip e hice funcionar harto tiempo mi placa. La utilizaba cada vez que debía probar un sensor o un periférico, hice joysticks, dataloggers, teclados, etc.

En ese entonces comenzaba mis programas así:

Código: [Seleccionar]
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#include "..\my_usb_bootloader.h"
#use delay(clock=48M)
...
//Accesorios incorporados en la placa
#define LED_VERDE PIN_D0
#define LED_ROJO  PIN_D1
#define BOTON     PIN_E2
...

donde el archivo my_usb_bootloader.h era:

Código: [Seleccionar]
#define LOADER_SIZE                 (0x0FFF)
#define LOADER_START                (0)
#define LOADER_END                  (LOADER_SIZE)
#define APPLICATION_START           (LOADER_SIZE+1)
#define APPLICATION_END             (getenv("PROGRAM_MEMORY")-1)
#define APPLICATION_ISR             (APPLICATION_START+8)

#build(reset=APPLICATION_START, interrupt=APPLICATION_ISR)

#org 0,LOADER_END AUTO=0 void bootloader(void) {}

Funcionaba de las mil maravillas, hasta que actualicé mi CCS

incluso probé las opciones dadas en el foro:

Código: [Seleccionar]
...
#build (reset=0x1000, interrupt=0x1008)
#org 0x000, 0xFFF
void loader(void) {}
...

pero seguía sin funcionar, revisando los archivos .hex generados por las versiones 4.084 e inferiores del CCS y las posteriores me di cuenta que para el mismo programa había una sutil diferencia.

Código: [Seleccionar]
:020000040000FA

revisando la estructura de esta línea se tiene


":"         = línea con contenido.
Byte count  = 2.
Address     = 0x0000.
Record type = 0x04 -> Extended Linear Address Record.
Data        = 0x00, 0x00
Checksum    = 0xFA



Al agregar esta línea al archivo generado con versiones superiores al CCS v4.084 se arregla el problema.

Por lo tanto, mi pregunta es:
Cómo puedo automatizar que se agregue esta línea al archivo hex?
No me sirve volver a una versión antigua del CCS porque programo micros 18f45k80, que no son soportados por versiones anteriores del CCS

Me gustaría que esto se hiciera agregando alguna instruccion al compilador y no utilizando un programa externo que modifique el archivo, pues quiero que para el resto de los pics, funcione normalmente.
« Última modificación: 18 de Junio de 2011, 03:56:11 por cyberpex »

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: HID Bootloader + CCS
« Respuesta #1 en: 15 de Junio de 2011, 17:50:58 »
Cyberpex: reportalo a los de ccs. Así en futuras versiones lo corrigen.

http://www.ccsinfo.com/contactEmail.php?dept=ts

http://www.ccsinfo.com/content.php?page=contact-about

            Jukinch
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: HID Bootloader + CCS
« Respuesta #2 en: 15 de Junio de 2011, 18:19:48 »
Exacto, se puede modificar el hex o modificar el software del bootloader. JIM y LabMouse ya han posteado sobre el tema en el foro mostrando ambas soluciones.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado cyberpex

  • PIC10
  • *
  • Mensajes: 10
Re: HID Bootloader + CCS
« Respuesta #3 en: 16 de Junio de 2011, 23:19:14 »
Cierto Suky, ya lo he verificado. No lo había visto en mis búsquedas anteriores...

Dada la dificultad de instalar Visual C++ 2005 en windows 7 he decidido modificar, según las instrucciones de J1M, el proyecto de Microchip y colgarlo acá.

Descaradamente, le puse versión 2.6b, para diferenciarla de la oficial v2.6a y le agregué un icono, lo dejo acá por si le sirve a alguien.

Personalmente lo probé y funciona bien (sólo lo probé con un archivo compilado en CCS). Si alguien lo prueba con otro archivo, que comente.

Saludos y gracias a todos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: HID Bootloader + CCS
« Respuesta #4 en: 17 de Junio de 2011, 00:49:34 »
Buenísimo... Yo tengo una versión en VC++ 2008 y traducido al español, lo pueden descargar por aquí.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #5 en: 12 de Diciembre de 2011, 12:05:16 »
Hola a todos!
Estoy comenzando a trabajar con un PIC18F4550 y quiero hacer un bootloader HID USB. hasta ahora vengo trabajando con CCS, y quisiera saber si para programar el PIC con el HID USB Bootloader de MicroChip Solutions, tengo que usar si o si C18 para compilar dicho programa? Hay alguna librería desarrolada para CCS?

Muchas gracias! He leído varios foros y no logro aclarar algunas dudas

Saludos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #6 en: 12 de Diciembre de 2011, 12:44:48 »
Hola a todos!
Estoy comenzando a trabajar con un PIC18F4550 y quiero hacer un bootloader HID USB. hasta ahora vengo trabajando con CCS, y quisiera saber si para programar el PIC con el HID USB Bootloader de MicroChip Solutions, tengo que usar si o si C18 para compilar dicho programa? Hay alguna librería desarrolada para CCS?

Muchas gracias! He leído varios foros y no logro aclarar algunas dudas

Saludos.

C18 o Hi-tech... CCS no es de Microchip.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #7 en: 12 de Diciembre de 2011, 15:36:15 »
Gracias por tu respuesta Suky!

Entonces debería compilar con C18 o Hi-tech la aplicación de Microchip solutions para HID-Bootloader, grabar el .HEX en el PIC18 con mi programador (ICD2) y luego podría descargar mis programas compilados con CCS con el HIDBootloader, teniendo en cuenta de agregar la protección de escritura del bootloader. Esto es correcto?

Saludos!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #8 en: 12 de Diciembre de 2011, 15:49:46 »
Gracias por tu respuesta Suky!

Entonces debería compilar con C18 o Hi-tech la aplicación de Microchip solutions para HID-Bootloader, grabar el .HEX en el PIC18 con mi programador (ICD2) y luego podría descargar mis programas compilados con CCS con el HIDBootloader, teniendo en cuenta de agregar la protección de escritura del bootloader. Esto es correcto?

Saludos!

Exacto... Para usar cualquier versión de CCS tendrías que revisar por aquí: http://www.todopic.com.ar/foros/index.php?topic=33221.msg280148#msg280148 Otra opción. http://www.micros-designs.com.ar/foros/index.php?topic=15.0  También busca en el foro, hay más información.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #9 en: 12 de Diciembre de 2011, 20:21:16 »
Hola a todos, ya estuve dando los promeros pasos para la ejecución del bootloader;

1.- Abrí el proyecto HID Bootloader PIC18 Non J con el MPLAB v 8.80.
2.- Compile el proyecto con el C18 v3.30, la misma fue exitosa.
3.- Monte el PIC18F4550 al programador ICD2 USB y lo conecte vía USB con la PC.
4.- Descargué el proyecto desde el MPLAB, la misma fue exitosa.
5.- Desconecte el programador.  Monte el PIC en la placa que tengo desarrollada, ejecute el HIDBootLoader v2.6 y luego de conectar la placa con el PIC, puse RB4(pin 37) y MCLR (pin 1) a masa. Luego solte ambos pulsadores.

El problema es que no me detecta la placa con el PIC. Según lo que estuve leyendo, me debería detectar la placa luego del paso 5. Hay algún paso de los que realicé que sea erróneo?

Saludos!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #10 en: 12 de Diciembre de 2011, 22:11:09 »
Que cristal tiene la placa y como configuraste los fuses? No tenes que soltar ambos al mismo instante, sino el reset primero y luego de entrar al modo bootloader el pulsador en RB4 ya no importa.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #11 en: 13 de Diciembre de 2011, 10:36:32 »
Hola!

Estoy usando un cristal de 20MHz, los fuses no los he modificado mantuve el proyecto HID Bootloader PIC18 Non J como estaba. Lo de los pulsadores para entrar al bootloader, sigo la secuencia que mencionas.
Estoy revisando el tema del circuito, quería preguntarte en cuanto a la conexion del conector USB, el pin 1 lo pongo a masa a través de una resistencia y un led(se enciende cuando conecto el PIC a la PC). Es correcta está conexión? Porque vi varios esquemas que conectan este pin a 5V, pero mi circuito es alimentado por una fuente externa, por lo que creo que la configuración que estoy usando es la indicada para no hacer un cortocircuito.

Te agradezco mucho la ayuda que me estás dando!

Saludos!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #12 en: 13 de Diciembre de 2011, 11:03:16 »
Ok... Los fuses entonces son correctos con ese cristal. Y lo del pin 1 también esta bien, se coloca a 5V cuando se quiere alimentar desde USB. El pin 2 va a D- y el 3 a D+, luego el que queda a GND. Revisa esas conexiones y también el capacitor a RC3.

Cualquier cosa sube el esquema así se puede ver.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #13 en: 13 de Diciembre de 2011, 11:55:22 »
Efectivamente, pin2 del conector a D-, pin3 a D+ y pin 4 a GND. Entre VUSB y masa tengo un capacitor cerámico de 470pF.

No tengo un esquema de la placa, me fui basando en distintos esqemas según la necesidad.

Saludos!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: (Solucionado) HID Bootloader + CCS
« Respuesta #14 en: 13 de Diciembre de 2011, 13:48:44 »
Parece todo correcto, queda revisar la continuidad en las pistas, o que no exista algún corto o algo por el estilo. Si haces un programita aparte para hacer titilar un led por ejemplo, funciona?
No contesto mensajes privados, las consultas en el foro