TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: LABmouse en 21 de Septiembre de 2008, 01:13:23

Título: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 21 de Septiembre de 2008, 01:13:23
Hola! Todo nace de este (http://www.todopic.com.ar/foros/index.php?topic=23117.0) hilo.

Efectivamente es de mucha utilidad poder "Programar tu PIC si necesidad de un Programador".. Esto que digo es relativo, ya que al menos una vez debes programar como siempre un código residente en memoria flash, que se encargara de tomar los datos y re-programar su propia memoria Flash. Mejor dicho, hablemos que es un Bootloader.

El termino bootloader hace referencia a un pequeño programa que se realiza para determinado microcontrolador, ya sea PIC, Freescale, Atmel, etc. Este código lo que hace es tomar los datos que se le enviaran por puerto serial (UART), USB, Ethernet, el que sea que pueda enviar una cadena de Bytes al microcontrolador. El microcontrolador va tomando esos datos que le van llegando y los va "Programando" en su propia memoria Flash. que obtenemos con eso, que puedes actualizar en cualquier momento el código del PIC. Utilidades de esto, son grandes, puedes desarrollar un producto o un proyecto y el usuario final no necesita un programador de PIC para poder actualizarlo. Un fiel y gran ejemplo de esto es lo que implementan los programadores ("Quemadores") profesionales de PICs. El programador te llega a casa totalmente funcional, pero en cualquier momento aparece una nueva referencia de microcontrolador y si quieres actualizar el programador, solo te bajas de internet la actualización, conectas el micro al USB y listo, le envías la actualización al programador. Listo el se autoprogramó la FLASH y ya tiene la nueva referencia del micro para trabajar con este.

Lo anterior permite sacar las siguientes conclusiones:

•   Es necesario tener un programador para usarlo solo una vez y así grabarle el programa residente en memoria FLASH. Ya después de esto se usa el Bootloader para grabar la flash del micro.
•   El programa residente ocupa memoria flash y por ende tienes un poco menos de memoria para la aplicación real del micro. No es mucha la que quita, pero hay que tener eso claro.
•   Por ningún motivo se puede sobrescribir las posiciones de memoria FLASH en la que se encentra el programa residente Bootloader. Si se borra por algún error, pierdes el bootloader y toca nuevamente programarlo con un grabador externo.
•   No todos los micros pueden soportar Bootloder, esto se limita a aquellos que tienen la capacidad de autograbar su memoria FlLASH. Por ejemplo el 16F84 no lo permite, por eso sacaron la versión PIC16F628A que si lo deja y además tiene mejores prestaciones.


Ya con lo anterior en teoría, PODEMOS GRABAR EL PIC SIN NECESIDA DE UN PROGRAMADOR.

Bueno, este hilo trata de cómo implementar un bootloader en un PIC18F4550 usando el puerto USB 2.0 Ful-Speed que es su máximo atractivo.  


HARDWARE

El hardware es casi nada. El PIC y unas cuantas cositas para que pueda trabajar el puerto USB ya esta. Ver imagen No 1.

(http://img90.imageshack.us/img90/1538/circuitoyv4.jpg)
Imagen No 1. Circuito basico para trabajar con el PIC18F4550 en modo Bootloader.


Para entrar en modo Bootloader, se debe presionar el botón conectado en RB4, manteniéndolo presionado, de se debe dar RESET al pic con otro pulsador en el pin MCLR o, como en este caso se conecta al puerto USB el PIC y listo, lo primero que hace el PIC es preguntar por el estado del PIN RB4 donde esta el pulsador. De estar presionado este botón, el PIC entra en modo Bootloader y si no ejecuta el código normal que le grabamos al PIC.

El led conectado en el puerto RD1 que enciende y apaga cuando entra en modo Bootloader.  

El esquemático mostrado, solo tiene la particularidad de tener un PIC18F4550 encapsulado QFN44.  En esta practica, usare el EMMini de la empresa Octoplus (http://www.octoplusaz.com/index.php). Ver fotografia No1.


(http://img218.imageshack.us/img218/6171/hardwaregr0.jpg)
Ampliar (http://img140.imageshack.us/img140/4356/p1272993ya1.jpg)
Fotografía No 1. Mini sistema de desarrollo EMMini de la empresa Octoplus (http://www.octoplus.com.co).



SOFTWARE

Como decía al principio, el Bootloader es un código residente en la memoria FLASH del pic que será ejecutado cuando se le necesite y lo que hace el PIC es tomar los datos que le llegaran por el puerto USB y reprogramar su memoria FLASH. Este código ocupara un espacio de la memoria FLASH, específicamente  este es el reporte de MPLAB en el que se ve la memoria usada.

(http://img218.imageshack.us/img218/1755/reportewk5.jpg)
Imagen No 2. Reporte de memoria usada por el Bootloader.



Este código residente no es necesario desarrollarlo, aunque no es muy complicado hacerlo, no hay ninguna razón en dedicar tiempo en programación del Bootloader si ya el fabricante de los microcontroladores MICROCHIP regala el código que se deba grabar por primera vez en el PIC, el código fuente si se quiere ver como esta hecho, la plantilla sobre la que debe programar las aplicaciones siguientes y también entrega programas de ejemplo usando la plantilla.

También es indispensable tener una aplicación en el PC con la cual se pueda buscar el archivo .hex que se quiere grabar en el PIC y con la que se pueda enviar los datos por el USb al PIC. Esta también la regala MICROCHIP.

Para poder empezar a trabajar con esto, se debe descargar la aplicación desde la página de MICROCHIP llamada USB Bootloader Setup.EXE (http://ww1.microchip.com/downloads/en/DeviceDoc/USB_Bootloader_Setup.exe) después de descargarlo, solo se debe instalar para generar los siguientes archivos:

(http://img218.imageshack.us/img218/3264/archivosyw6.jpg)
Imagen No 3. Carpetas creadas al instalar el USB Bootloader Setup.EXE

Como vemos son 2 carpetas.

1.   fw (Firmware). En esta están los códigos para el microcontrolador PIC. Vemos 4 nuevas carpetas.
1.1.   _factory_hex. Solo encontramos el archivo .hex a grabar en el PIC. Es decir el programa residente.
1.2.   Boot. Es el código fuente del programa residente (Bootloader). Si se quiere, se puede compilar este codigo fuente y trabajara igual que el .hex encontrado en la carpeta anterior.
1.3.   Demo y Demo02. Son programas de ejemplo con cofigo fuente para saber como se usa la plantilla para crear el programa que ejecutara el PIC cuando no esta en modo Bootloader.

2.   Pc. Herramientas para usar en el PC.
2.1.   MCHPUSB Driver. Cuando el PIC entra en modo bootloader, el Windows detectara un nuevo dispositivo conectado en uno de sus puertos USB. Seguido pedirá el Driver a instalar.  En ese momento, se le debe buscar manualmente en esta carpeta.
2.2.   Mpusbapi.  Esta es un DLL  entregada por Microchip pues es con esta que se desarrolla la aplicación de Windows que se encarga de enviarle los datos al PIC.  Con esta podríamos desarrollar nuestra propia aplicación Windows.
2.3.   Pdfsusb. Es la aplicación que se debe usar siempre que se quiere programar el PIC en modo Bootloader.

GRABANDO EL PIC

Si el PIC no tiene el programa residente, debemos usar un programar de PICs externo.  Ver fotografía No 2. Con el grabaremos el archivo .hex encontrado en la carpeta _factory_hex.

Ya grabado el PIC, se presiona el pulsador, manteniéndolo presionado conectarlo al puerto USB. Inmediatamente el Windows lo reconocerá. Ver imagen No 4.

(http://img218.imageshack.us/img218/7195/detectadobr0.jpg)
Imagen No 4. Instante en que Windows detecta al PIC entrando en modo Bootloader.


Ya luego solo queda buscar manualmente el driver. (Ver secuencia de instalación desde imagen No 5 hasta la imagen No 8).

(http://img140.imageshack.us/img140/2971/nomomentozs7.jpg)
Imagen No 5. Paso uno en instalación de driver.

(http://img218.imageshack.us/img218/9567/desdelistakq1.jpg)
Imagen No 6. Paso dos en instalación de driver.

(http://img140.imageshack.us/img140/2856/buscandowt3.jpg)
Imagen No 7. Paso tres en instalación de driver.

(http://img140.imageshack.us/img140/3028/instaladosw0.jpg)
Imagen No 8. Paso cuatro. Verificación de instalación.

Antes que el Windows Instale el Driver, el led permanece apagado. Una vez completado el proceso y el Windows instale el PIC, el led empezara a parpadear indicando espera de archivo .hex.




En este momento, ejecutamos el archivo PDFSUSB.exe, se carga el archivo.hex y se programa el microcontrolador. Ver Imagen No 9.

(http://img218.imageshack.us/img218/6904/softwareod6.jpg)
Imagen No 9. Identificación del software de control.



Si se graba el ejemplo que se encuentra en la carpeta Demo, veremos como el PIC al entrar en modo normal, también se identifica con el Windows por puerto USB pero ahora totalmente diferente al Bootloader. Esto permite concluir que en la aplicación normal, el PIC también puede trabajar con el puerto USB y de forma totalmente diferente al Bootloader. Si se quiere ver como trabaja este ejemplo, el mismo programa PDFSUSB tiene otra aplicación denominada PICDEM FS USB. Ver imagen No 10.

(http://img140.imageshack.us/img140/4343/pruebazp1.jpg)
Imagen No 10. Test del ejemplo Demo.


Espero les ayude en algo esta guía de cómo usar el Bootloader y aprovechar esta gran ventaja que tienen en generar todos los micros que pueden reprogramar su memoria FLASH. En particular este PIC al tener puerto USB, lo hace bastante práctico y potente, ni fuente de voltaje se necesita porque se alimenta del puerto USB.

Saludos!

Ernesto.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: El_Guitre en 21 de Septiembre de 2008, 01:57:11
Ernesto, muy explicativa tu respuesta, la verdad de maravillas. Mañana mismo me pongo a jugar con esto que de la forma que lo explicas parece tan sencillo. Felicitaciones por la exposición. Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: jeremylf en 21 de Septiembre de 2008, 12:57:11
Vaya que gran trabajo PICmouse! deverdad que muy explicativo, no sabia que con ese ejemplo se podria manejar dos distintas configuraciones de USB (porq mi aplicacion trabaja con una) con solo apretar un boton.

Lo estare analizando bien porque el del ccs me dio algo de errores  :? Bueno, otra cosa, el programa (el hex) lo guarda al principio del programa no?

Gracias, gran trabajo.
Salu2.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: El_Guitre en 21 de Septiembre de 2008, 23:40:48
Probado y funcionando ok  :-/ :-/ ahora a aprender C18 para poder programar desde la notebook.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: scientist en 22 de Septiembre de 2008, 23:04:31
hola PICmouse, he intentado tu ejemplo, y me ha salido con un 18f2550, no se que tanto dependa esto, con respecto a que solo se puede utilizar programas compilados en c18, mmm, hay alguna propabilidad de programarlos con algun truquillo, algun pragma, bueno, sino tendre que empezar con el c18, muy buen articulo, saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 22 de Septiembre de 2008, 23:06:36
Scientist, precisamente estoy trabajando en eso.  Ya casi lo tengo trabajando con CCS también. Es decir, programar el Bootloader de C18, pero la plantilla de CCS.


SALUDOS!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: scientist en 23 de Septiembre de 2008, 00:32:10
hola picmouse, ya logre hacer lo que queremos, hacerlo con ccs
 ahora,lo unico que tenemos que hacer, es no grabar nada de nuestro programa en las direcciones de la 0x00 hasta la 0x7FF, ya probe varios programas y funcionan que dan miedo, aqui lo unico que tenemos que anexar a nuestro programa es:

Código: [Seleccionar]

#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// END OF bootloader definition



aqui os pongo un ejemplo que funciona muy bien

Código: [Seleccionar]
#include <18F2550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#include <usb_cdc.h>
#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// END OF bootloader definition


void main() {

usb_cdc_init();
usb_init(); //inicializamos el USB

while (!usb_cdc_connected()) {}
while (true)
{
usb_task();
if(usb_enumerated())
{
usb_cdc_putc(0x41);
}
}
}

solo hay que anexarlo a cualquier programa y chevere, cuando vayamos a programarlo con el PDFUSB nos va a salir una advertencia, le decimos que no, y lo programamos, listo, saludos y espero les haya ayudado

NOTA: solo una aclaracion, al parecer con el metodo que menciono, no podemos configurar los FUSES, se quedarian como el programa del bootloader lo tiene
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 23 de Septiembre de 2008, 03:01:16
Hola

Les dejo este enlace , espero les sirva.

Es sobre el bootloader.

http://www.piccoder.co.uk/content/view/51/26

Saludos!

Instalo correctamente el boot , pero al cargar el driver me rompe las b*las , porque no tiene soporte para 64 bits.



Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: El_Guitre en 23 de Septiembre de 2008, 07:22:38
NOTA: solo una aclaracion, al parecer con el metodo que menciono, no podemos configurar los FUSES, se quedarian como el programa del bootloader lo tiene

Que bueno, felicitaciones, ahora podemos probar el bootloader sin aprender C18 antes, respecto a los fuses, no se puede modificar el codigo del bootloader de C18 cambiando los fuses en el? En este momento no recuerdo si microchip te da el codigo fuente o solo el .hex
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 23 de Septiembre de 2008, 16:31:14
Lo de los fusibles, es cierto, quedan tal cual como se programaron en el Bootloader, es decirm, siempre vas con 20MHz, siempre vas a 48MHz , es decir, 24 Mips. Siempre con MCLR, Siempre con.... Bueno los de siempre, ya que esos solo se pueden cambiar desde el programador externo.



hola picmouse, ya logre hacer lo que queremos, hacerlo con ccs ahora,lo unico que tenemos que hacer, es no grabar nada de nuestro programa en las direcciones de la 0x00 hasta la 0x7FF, ya probe varios programas y funcionan que dan miedo.

Que bueno!  Apenas llegue a casa lo intentare.

SALUDOS!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: El_Guitre en 23 de Septiembre de 2008, 18:47:16
Ya probe lo que proponía scientist y funciona, estoy cargando programas de ccs con el bootloader de microchip y funcionan. Ahora bien, si necesitaramos cambiar algo, por ejemplo el valor del oscilador, podríamos modificar la configuración en el código del bootloader y volver a programar el microcontrolador (con el programador externo) con el código del bootloader con los fusibles que necesitemos para la aplicación, estoy en lo cierto??  :?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: WSalas en 24 de Septiembre de 2008, 23:50:02
Hola a todos, aqui les presento una aplicacion parecida.. para mas detalles ver aqui (http://www.wsalas.blogspot.com)

Bootloader usando el PIC18F2550

(http://img99.imageshack.us/img99/7129/boot25bik4.jpg)



Bootloader usando el PIC18F4550

(http://img527.imageshack.us/img527/2721/boot45bxf4.jpg)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: scientist en 25 de Septiembre de 2008, 13:13:04
muy bonita la plaquita. precisamente estoy haciendo algo parecido, saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: jeremylf en 26 de Septiembre de 2008, 20:13:21
No entiendo algo, ocea que es necesario que en todos tus proyectos de ccs pongas ese codigo para decir q grave despues de donde esta el bootloader de c18 ???


Salu2
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: El_Guitre en 27 de Septiembre de 2008, 01:08:49
Asi es en los proyectos que vayas a cargar en un PIC mediante el bootloader tenes que incluir esas lineas para indicarle al compilador como organizar los datos en las posiciones de memoria
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: andreach16 en 08 de Diciembre de 2008, 18:03:41
Es indispensable grabar el archivo .hex residente por medio de un programador externo? o como hago para que me detecte el usb
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 08 de Diciembre de 2008, 18:33:51
Si, así es.. Es necesario que tenga un Grabador externo por primera vez, ya luego no lo vas a necesitar siempre y cuando no sobrescribas el bootloader.

Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: andreach16 en 14 de Diciembre de 2008, 15:55:39
hola, tengo problemas en grabarle el archivo.hex, es decir ejecuto el PDFUSB.exe, y busco el archivo .hex para cargar, lo cargo lo salvo, y lo programa y me sale exitoso, pero en el modo demo no lo reconoce, y si le doy execute me aparece error  WARNING- FAILED TO RESET BOARD, y entonces se desconecta, porfavor me puedes ayudar para poder grabar un programa en el pic, el del demo, que es MCHPUSB.hex
gracias
y que pena la molestia, es la primera vez que trabajo con pics
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 15 de Diciembre de 2008, 01:37:01
para crear el programa tuyo, debes seguir una plantilla base que esta dentro de las carpetas creadas al instalar la AN de MICROCHIP. eso te asegura no sobrescribir las posiciones en donde esta el Bootloader.

Solo así funcionara siempre.

SALUDOS!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: andreach16 en 15 de Diciembre de 2008, 15:09:27
hola, a partir del archivo main.c de la carpeta DEMO , le copiamos esto
#include <p18f4550.h>
extern void _startup (void);        // See c018i.c in your C18 compiler dir
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800
void _reset (void)
{
    _asm goto _startup _endasm
}
#pragma code

#pragma code _HIGH_INTERRUPT_VECTOR = 0x000808
void _high_ISR (void)
{
    ;
}

#pragma code _LOW_INTERRUPT_VECTOR = 0x000818
void _low_ISR (void)
{
    ;
}
#pragma code

al proigrama
#pragma config WDT = OFF
void main (void)
{
TRISB = 0;
/* Reset the LEDs */
PORTB = 0;
/* Light the LEDs */
PORTB = 0xff;

while (1)
;
}
para que se prenda los leds, lo fuimos a grabar con el picstarplus, y ya no detecta el pic, no prenden los leds, y no lo puedo reprogramar sale muchisimos fallos, y si le pedimos que lo lea nos sale el error,
 "Device is data protected! Data memory may be invalid.
Device is code protected! Program memory may be invalid."
y no podemos borrar lo que hay en el pic por medio de la herramienta eraser flash device
no conocen algun lugar en Bogotá donde alguien nos pueda ayudar personalmente.
gracias
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: andreach16 en 15 de Diciembre de 2008, 16:59:36
Hola, ya logramos solucionar el problema anterior. Pero cuando vamos a grabar el .hex por medio del pdfsusb al cargar el .hex de la carpeta Demo, y le damos program device al pasar a la pestaña de demo mode para hacer el test del ejemplo, no nos detecta el modo normal del pic.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 15 de Diciembre de 2008, 18:00:38
Para eso, después de haber grabado el PIC, desconectado del USB y el pin B4 lo mandas a VCC, listo, cuando conectas al USB. debería arrancar.

SAludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: canival35 en 16 de Febrero de 2009, 17:34:27


 "Device is data protected! Data memory may be invalid.
Device is code protected! Program memory may be invalid."
y no podemos borrar lo que hay en el pic por medio de la herramienta eraser flash device
no conocen algun lugar en Bogotá donde alguien nos pueda ayudar personalmente.
gracias


que raro quizas se daño tu pic fisicamente ya intentaste con uno nuevo ???
Título: Bootloader USB para PIC18F4550 a full.
Publicado por: pilincho en 18 de Febrero de 2009, 18:37:17
Hola a todos los que participan de este foro, yo soy nuevo en todo esto de los pic´s y ya hice un tutorial de lafebre de controlar 8 led´s x Usb con un pic 18f4550, pero ahora estoy interezado en controlar todos los pines del pic. ya sea todas las E/S de señal digitales Como las Entradas analogicas, no se mucho de pics en el sentido de programarlos :(, lei los dataseets del 4550 y no caso demaciado como para hacer yo mismo el .HEX del pic para dicho control total, el proyecto es para un trabajo practico de escuela (Tecnica) obviamente para precentarlo en la muestra anual, tenemos pensado hacer con el profesor un pequeño Sistema domotico, para por ej: prender/apagar luces, Abrir/Cerrar percianas, control de alarmas, sensar Temperaturas, etc. y se basa en un sistema en V.B .Net, ya establecimos coneccion fisica con el pic y la pc, ahora nos frena el trabajo la coneccion logica con el pic y pc por dichos Driver´s de ambos, ya que el easy Hid no genera Los drivers completos para controlar el total de los pines y hay que crear desde sero dichos driver´s todos los que nos puedan ayudar, estaremos enormemente Agradecidos :-/, saludos y Gracias x este foro que tambien ayuda.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: elpeibel en 05 de Junio de 2009, 15:26:41
hola amigos
 a ver si pueden ayudarme. Estoy desarrollando mi proyecto de fin de carrera, se trata de una aplicación basada en el pic18f2550, una de las especificaciones es que tubiera bootloader por usb, por ello elegí este pic.

He programado el .hex y lo conecto y me pide driver y demas, aparece en el administrador de dispositivos bien, pero luego el pic dem no lo reconoce da igual si pulso o no el switch. Lo reconoce en la pestaña de demo pero me da error al conectar, y en la pestaña de bootloader no aparece.

Por lo demas programo el pic con ccs, una vez que me funcione entiendo que debo añadir el codigo del amigo scientist, y funcu¡onará.

he probado con el original y con el que WSalas propone especifico para 2550, los dos con el mismo resultado.

muchas gracias y enhorabuena por el hilo
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 05 de Junio de 2009, 15:47:47
elpeibel:
El micro entra en modo bootloader cuando se presiona reset y RB4, luego se suelta reset y esperas un rato para soltar RB4.

Otra acotacion es que el bootloader de microchip es para un 18F4550, lo que tienes que hacer es compilar el fuente que te trae para un 18F4550 pero para esto vas a necesitar de C18.


Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: elpeibel en 22 de Junio de 2009, 16:15:12
hola de nuevo, ya he conseguido hacerlo funcionar en un 2550(directamante el que viene para el 4550) con dos peros:
-Cuando le meto el hex de mi programa ya no puedo volver al modo bootloader, si pulso b4 no arranca el "boot" pero tampoco "mi aplicacion", sin pulsarlo si que funcione mi aplicacion. Esto no me preocupa demasiado porque supongo que se debera a que piso posiciones de memoria del bootloader.

-La cuestión importante es que mi hardware tiene un switch en b4 pero está normalmente a 0(y cambiarlo implica muchismos mas cambios) con lo que para que arranque "mi aplicacio"n tengo que pulsar el sw y para boot no(digamos que funcona al contrario). Y ademas "mi aplicacion" debe ir a 20Mhz(no se a cuanto irá pero loq ue si sé es que con el bootloader no me va la comunicacion de la uart), creo que este boot no va a 20Mhz, aunque tenga ese cristal.

En fin que me enrrollo demasiado, tengo que modificar el codigo del boot para asegurarme los fuses y el clock adecuados para mi aplicacion y no lo consigo, he probado a compilar con c18 pero no se como hacer lo de los fuses y el clock

os agradeceria una ayuda o alguna referencia de donde buscar porque no encuentro nada

gracias y saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: scientist en 22 de Junio de 2009, 23:44:33
hola elpeibel, lo que mencionas sucede cuando utilizas un sistema operativo diferente al windows XP, al parecer me imagino utilizas el vista o 7, tienes que hacerlo en XP, saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: elpeibel en 23 de Junio de 2009, 04:57:31
gracias scientist,

ya uso XP, supongo que te refieres a lo de que solo puedo programar una vez en modo boot.


Por lo demas he compliado el fuente que viene en la carpeta boot, dejando tal como viene, cambiando a 2550, un sinfin de pruebdas y ni siquiera lo reconoce como dispositivo desconocido. Ahora mismo lo que más me preocupa es que realmente funcione "mi aplicacion" una vez cargada usando el bootloader, luego me preocupare de poder cargarla siempre. Alguien ha conseguido cambiar algo del bootloader, compilar y que funcione??

muchas gracias
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 23 de Junio de 2009, 11:26:48
Yo cambie el bootloader para un 18f2550 y ademas para desabilitar el puerto adc, el sensor de conexión, el pin de modo bootloader(RB4 => RB0), y los led(ahora quedaron en RB2 y RB3), cristal de 20MHz, etc.

Te adjunto el .Hex
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: elpeibel en 23 de Junio de 2009, 13:49:38
hola.

no consigo enterarme, en c18 tengo los fuses asi:

#pragma config WDT = OFF
#pragma config PWRT = OFF
#pragma config FOSC = HS
#pragma config PLLDIV = 12
#pragma config CPUDIV = OSC1_PLL2
#pragma config MCLRE = ON
#pragma config LVP = OFF

#pragma config USBDIV = 2
#pragma config VREGEN = ON

el hw tiene un resonador de 20MHz, he cambiado lo del switch(en el main del bootloader), pero esto no hay manera, lo he compilado en teoria para el 2550, y cuando se supone que entra en modo boot me dice que dispositivo desconocido, creo que hago algo mal con los fuses y que el reloj no va a la frec correcta, aparte no consigo saber donde se configura la frecuencia del reloj.


por si os sirve de pista en css los fuses los tengo asi(los importantes):

#FUSES NOWDT                    //No Watch Dog Timer
...
#FUSES HS                       //High frec Osc with PLL
...
#FUSES MCLR                     //Master Clear pin enabled
#FUSES LPT1OSC                  //Timer1 configured for low-power operation
...
#FUSES PLL12                    //Divide By 12(48MHz oscillator input)
//#FUSES CPUDIV4                  // este lo tengo comentado para que realmente sean 20MHz
#FUSES USBDIV                   //USB clock source comes from PLL divide by 2


#use delay(clock=20000000)

#use rs232(baud=384000,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,disable_ints)


me estoy volviendo loco, alguna pista?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 23 de Junio de 2009, 14:48:53
Porque al PLL le pones 12

Te pego el mio

        #pragma config PLLDIV   = 5         // (20 MHz crystal on PICDEM FS USB board)
        #pragma config CPUDIV   = OSC1_PLL2   
        #pragma config USBDIV   = 2         // Clock source from 96MHz PLL/2
        #pragma config FOSC     = HSPLL_HS
        #pragma config FCMEN    = OFF
        #pragma config IESO     = OFF
        #pragma config PWRT     = OFF
        #pragma config BOR      = ON
        #pragma config BORV     = 3
        #pragma config VREGEN   = ON      //USB Voltage Regulator

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: elpeibel en 25 de Junio de 2009, 06:31:11
Conseguido¡¡¡

Era el fuse plldiv, lo cierto es que lo tenia a 12 porque es como lo pone por defecto. Lo que no entiendo es que para que mi aplicacion funcione correctmente tengo que cambiarle la linea de configuracion del reloj a #use delay(clock=48000000), cuando sin el bootloader es #use delay(clock=20000000) y el resonador es de 20mhz, la verdad es que no consigo saber porque pasa esto, alguna idea?

ahora lo tengo así en el bootloader:

#pragma config WDT = OFF
#pragma config PWRT = OFF
#pragma config FOSC = HS
#pragma config PLLDIV = 12
#pragma config CPUDIV = OSC1_PLL2
#pragma config MCLRE = ON
#pragma config LVP = OFF

#pragma config USBDIV = 2
#pragma config VREGEN = ON

Gracias por la ayuda!!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 25 de Junio de 2009, 14:58:49
Los 48Mhz se logran con la division interna. siempre vas a tener 20MHz en la entrada osea que en tu aplicación tambien le puedes poner clock = 48000000.


Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 30 de Agosto de 2009, 14:23:16
Hola amigos!

Realizando pruebas con un pic18F2550 y el bootloader a veces he tenido pantallazos azules :(

¿Le sha sucedido?

Utilizo el USB bit whacker , para entrar en modo bootloader se debe presionar s1 y resetear el pic , soltar s1 y listo en modo boot, pero en este procedimiento llego a tener ese pantallazo azul. No se si presiono muy rápido, repetidamente o los picos del pulsador que pasen a joder le circuito.

EN lo demás funciona correctamente , cargo lo sprogramas con el FS SUB de microchip sin problemas.
bueno trabajo sobre windos vista 64 (Aleluya soporte so64 xD).

De 10 veces que he probado el bootloader , 2 veces me ha dado pantallazo , no se si es mi inexperiencia en el arranque del bootloader o algo más xD .

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 30 de Agosto de 2009, 16:44:08
AKENAFAB te comento que lo utilize muchisimas veces y nunca tuve un pantallazo azul. Imagino que los pantallazos se deberan a que el driver para el puerto debe tener algun error.

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 30 de Agosto de 2009, 16:52:27
AKENAFAB te comento que lo utilize muchisimas veces y nunca tuve un pantallazo azul. Imagino que los pantallazos se deberan a que el driver para el puerto debe tener algun error.

Saludos

Gracias Ema

Pues tampoco me habia pasado en la otra pc pero con vista 32 , supongo que habrá algún problemilla con el de 64 ya que hasta hace un tiempo no tenia soporte >_<.

Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Lejan en 23 de Octubre de 2009, 16:27:35
Después de renegar un poco ( como siempre ) pude hacer funcionar el bootloader en mi pic 18f4550. Comento los inconvenientes que tuve para que otros se ahorren el mal trago :x

1) Empecé a probar con el bootloader del ccs para puerto serie ( se debe usar el programa Soiw.exe )... no me funcionó, me salió el error "Timeout while downloading" tooodasss las veces , probando de diferentes formas y configuraciones. Aclaro que probé en Win764 ( con adaptador usb serie), WinXP 64 y 32 ( con adaptador usb serie, y sin adapatador(directo puerto serie) ), en otra PC y siempre lo mismo)  :(

2) Seguí probando con el usb_bootloader que ofrece microchip (con el cual se inicia este hilo) y funcionó utilizando el PDFSUSB.exe pero no pude hacer correr el demo de ninguna manera :(, directamente no me da opción a elegir PICDEM FS USB BOARD.

3) Proseguí a probar la opción de utilizar el bootloader de microchip y cargar luego un programa de ccs mediante el PDFSUSB.exe respetando las indicaciones ya dadas ( agregar las líneas en nuestro programa para no pisar el bootloader ) y funcionó a la perfección. Solo en WinXP, ni intenten en Win7 o vista porque el driver del USB no funciona.

Muchas gracias a todos los que comentaron y espero les sirva mi aporte.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ASTROCAR en 24 de Octubre de 2009, 08:25:04
Hola buenos dias, leyendo el tema me surgio la idea de hacer una aplicacion con bootloader usb y un pic correpondiente ya sea el pic18f2550 o el pic18f4550 u cualquier otro que soporte usb; pero con la modalidad de poder tomar el hex que se le va a grabar al pic desde un servidor para que el usuario no pueda ver el hex y asi no duplique el proyecto que se este actualizando.

Me explico, cargarle un hex a un pic via bootloader pero esa informacion del hex que no sea visible o que la pueda adquirir en su pc el usuario ya que de esa manera el podria hacer dublicado del proyecto que se este actualizando. y lo que se me ocurre es tener un servidor en donde se tenga el hex a grabar en el pic y el usuario se le suministra un software el cual pueda comunicarse con el servidor y asuvez in grabando la informacion del hex en el pic via bootloader y de esa manera ya le quedaria su proyecto actualizado. El fin es que el usuario de esta manera nunca vio el hex ni lo pudo tener en su pc, asi no podra dublicar nuestras aplicaciones.

Saludos y espero haberme explicado.
Atten.
Alexander Santana.
Barcelona-Venezuela.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: darck_khronos en 24 de Octubre de 2009, 17:37:19
hay forma de mover el interuptor de Bot del puerto B al puerto C y que este funcione con CCS???
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 25 de Octubre de 2009, 18:50:10
hay forma de mover el interuptor de Bot del puerto B al puerto C y que este funcione con CCS???

Si, de hecho yo los movi a los pulsadores que tenia en mi placa. Fijate en mis mensajes anteriores.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: darck_khronos en 25 de Octubre de 2009, 18:58:46
hay forma de mover el interuptor de Bot del puerto B al puerto C y que este funcione con CCS???

Si, de hecho yo los movi a los pulsadores que tenia en mi placa. Fijate en mis mensajes anteriores.

Por lo que Lei moviste al b2 y b3, pero me gustaria mover el modo Boot al RC3 ya para tener libres los a,b,d y e
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ra2ven en 07 de Noviembre de 2009, 08:21:30
Hola, estoy intentando recompilar el código original del bootloader para que se ajuste a las caracteristicas de mi PIC 18f2550 (Clock 12 Mhz, etc..) pero no encuentro los CONFIGURATION BITS a modificar en los archivos originales, ¿alguien sabe en que archivo concreto se encuentran y que forma tienen?

Yo esperaba encontrarme algo del tipo:

#pragma config PLLDIV=5,CPUDIV=OSC1_PLL2,USBDIV=2,FOSC=HSPLL_HS,F CMEN=OFF,IESO=OFF

pero no lo encuentro.

Gracias
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 07 de Noviembre de 2009, 10:25:24
hay forma de mover el interuptor de Bot del puerto B al puerto C y que este funcione con CCS???

Si, de hecho yo los movi a los pulsadores que tenia en mi placa. Fijate en mis mensajes anteriores.

Por lo que Lei moviste al b2 y b3, pero me gustaria mover el modo Boot al RC3 ya para tener libres los a,b,d y e

El proceso es el mismo, por eso te lo puse como ejemplo


Hola, estoy intentando recompilar el código original del bootloader para que se ajuste a las caracteristicas de mi PIC 18f2550 (Clock 12 Mhz, etc..) pero no encuentro los CONFIGURATION BITS a modificar en los archivos originales, ¿alguien sabe en que archivo concreto se encuentran y que forma tienen?

Yo esperaba encontrarme algo del tipo:

#pragma config PLLDIV=5,CPUDIV=OSC1_PLL2,USBDIV=2,FOSC=HSPLL_HS,F CMEN=OFF,IESO=OFF

pero no lo encuentro.

Gracias


La configuración apacere como sigue...

Código: [Seleccionar]
        #pragma config PLLDIV   = 5         // (20 MHz crystal on board)
        #pragma config CPUDIV   = OSC1_PLL2   
        #pragma config USBDIV   = 2         // Clock source from 96MHz PLL/2
        #pragma config FOSC     = HSPLL_HS
        #pragma config FCMEN    = OFF
        #pragma config IESO     = OFF
        #pragma config PWRT     = OFF
        #pragma config BOR      = ON
        #pragma config BORV     = 3
        #pragma config VREGEN   = ON      //USB Voltage Regulator
        #pragma config WDT      = OFF
        #pragma config WDTPS    = 32768
        #pragma config MCLRE    = ON
        #pragma config LPT1OSC  = OFF
        #pragma config PBADEN   = OFF   
        #pragma config STVREN   = ON
        #pragma config LVP      = OFF
        #pragma config XINST    = OFF       // Extended Instruction Set
        #pragma config CP0      = OFF
        #pragma config CP1      = OFF
        #pragma config CPB      = OFF
        #pragma config WRT0     = OFF
        #pragma config WRT1     = OFF
        #pragma config WRTB     = OFF       // Boot Block Write Protection
        #pragma config WRTC     = OFF
        #pragma config EBTR0    = OFF
        #pragma config EBTR1    = OFF
        #pragma config EBTRB    = OFF

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ra2ven en 09 de Noviembre de 2009, 07:19:10
Hola, lo que queria saber exactamente es en que archivo concreto se encuentran o deberian encontrarse (main.c, boot.c , etc..) porque yo no los encuentro.

Por otra parte supongo que podrán cambiarse manualmente en la pestaña "Configure/Configuration bits" del Mplab y quitar la opcion de que se definan en el codigo.

Un saludo
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 09 de Noviembre de 2009, 14:41:53
Estan en el main.c  y ademas si usas un programador desde MPLAB puedes usar la opcion que tu comentas.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ra2ven en 10 de Noviembre de 2009, 07:27:13
Hola, aquí adjunto el código de mi archivo main.c. Supongo que los "configuration bits" deberían estar definidos en el apartado DECLARATIONS pero como se aprecia no hay nada. Estoy un poco confuso porque en la primera página del post se comenta que los "Configuration bits" vienen definidos por defecto en el código pero es que en el que yo tengo no los veo por ninguna parte.

Código: [Seleccionar]
/*********************************************************************
 *
 *                Microchip USB Bootloader Version 1.0
 *
 *********************************************************************
 * FileName:        main.c
 * Dependencies:    See INCLUDES section below
 * Processor:       PIC18
 * Compiler:        C18 2.30.01+
 * Company:         Microchip Technology, Inc.
 *
 * Software License Agreement
 *
 * The software supplied herewith by Microchip Technology Incorporated
 * (the “Company”) for its PICmicro® Microcontroller is intended and
 * supplied to you, the Company’s customer, for use solely and
 * exclusively on Microchip PICmicro Microcontroller products. The
 * software is owned by the Company and/or its supplier, and is
 * protected under applicable copyright laws. All rights are reserved.
 * Any use in violation of the foregoing restrictions may subject the
 * user to criminal sanctions under applicable laws, as well as to
 * civil liability for the breach of the terms and conditions of this
 * license.
 *
 * THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
 * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
 * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 * Author               Date        Comment
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Rawin Rojvanit       11/19/04     Original.
 ********************************************************************/

/** I N C L U D E S **********************************************************/
#include <p18cxxx.h>
#include "system\typedefs.h"                        // Required
#include "system\usb\usb.h"                         // Required
#include "io_cfg.h"                                 // Required

#include "system\usb\usb_compile_time_validation.h" // Optional

/** V A R I A B L E S ********************************************************/
#pragma udata

/** P R I V A T E  P R O T O T Y P E S ***************************************/

/** V E C T O R  R E M A P P I N G *******************************************/

#pragma code _HIGH_INTERRUPT_VECTOR = 0x000008
void _high_ISR (void)
{
    _asm goto RM_HIGH_INTERRUPT_VECTOR _endasm
}

#pragma code _LOW_INTERRUPT_VECTOR = 0x000018
void _low_ISR (void)
{
    _asm goto RM_LOW_INTERRUPT_VECTOR _endasm
}

#pragma code

/** D E C L A R A T I O N S **************************************************/
#pragma code
/******************************************************************************
 * Function:        void main(void)
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          None
 *
 * Side Effects:    None
 *
 * Overview:        Main program entry point.
 *
 * Note:            None
 *****************************************************************************/
void main(void)
{
    byte temp;
    temp = ADCON1;
    ADCON1 |= 0x0F;
   
    //TRISBbits.TRISB4 = 1;     // Reset value is already '1'
   
    //Check Bootload Mode Entry Condition
    if(PORTBbits.RB4 == 1)      // If not pressed, User Mode
    {
        ADCON1 = temp;          // Restore reset value
        _asm goto RM_RESET_VECTOR _endasm
    }//end if
   
    //Bootload Mode
    mInitAllLEDs();
    mInitializeUSBDriver();     // See usbdrv.h
    USBCheckBusStatus();        // Modified to always enable USB module
    while(1)
    {
        USBDriverService();     // See usbdrv.c
        BootService();          // See boot.c
    }//end while
}//end main

#pragma code user = RM_RESET_VECTOR

/** EOF main.c ***************************************************************/

Por otra parte yo compilo con el mplab pero uso un programador ajeno para grabarlo en el PIC, ¿en este caso puedo definir directamente los "configution bits" en la pestaña "Configure/configution bits" o debo definirlos en el código obligatoriamente?

Gracias
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 10 de Noviembre de 2009, 14:33:56
No tengo idea de donde sacaste ese codigo. No es ni cerca parecido al mio.

Por otro lado, si programas en otro entorno las opciones de configuración deben estar en el codigo o traves del otro entorno.

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ra2ven en 11 de Noviembre de 2009, 07:04:14
El código es el que aparece en el link proporcionado por Picmouse en la primera respuesta de este post para seguir el ejemplo.

Concretamente se encuentra en el directorio: C:\MCHPFSUSB\fw\Boot\main.c una vez instalado el ejecutable.

Supongo que cuando se decían en las respuestas siguientes a que ya venian definidos los "configuration bits" por defecto se referían al código ya compilado en el directorio C:\MCHPFSUSB\fw\_factory_hex, pero en caso de compilarlo yo podre definirlos como quiera.

Un saludo

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ema en 11 de Noviembre de 2009, 14:38:27
Prueba bajarlo directamente de microchip. Yo lo baje de ahi y no tuve problemas.

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ra2ven en 12 de Noviembre de 2009, 16:28:31

Hola, he probado a compilar el código y el Mplab me da error. Tengo la version de prueba del C18 y la configuración siguiente:

(http://i38.tinypic.com/2dhis0n.jpg)

Parece ser que no encuentra el compilador aunque creo tener su directorio corréctamente introducido. Quizás me falte algo por configurar.

Gracias.

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ra2ven en 12 de Noviembre de 2009, 16:35:19
Ya lo arregle, estaban mal introducidos los directorios.

Un saludo
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 20 de Enero de 2010, 10:57:55
Hola amigos del foro, espero que alguien pueda ayudarme con este problema:

He estado utilizando el bootloader de microchip con la tarjeta picdem fs usb, hasta la fecha he cargado mis programas de CCS v4.84, utilizando las directivas que ustedes tan amables publicaron en este foro, para no borrar el bootloader de microchip:

#BUILD(reset=0x800,interrupt=0x808)
#ORG 0x0000,0x07ff {}

Hasta la fecha me ha funcionado bien pero ayer decidi descargar la nueva versión de CCS: 1.104, compile un programa de prueba y no me marco ningun error pero al descargarlo a la tarjeta no hace nada. Este mismo programa al compilarlo fuciona perfectamente con la version 4.84. Alguna sugerencia o idea que tengas de porque pasa esto:

Gracias por su atención.

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 22 de Enero de 2010, 04:11:18
Pues me has dejado dudando. Sera un nuevo BUG...  :? Voy a intentar para ver que podemos hacer.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 29 de Enero de 2010, 22:07:10
Gracias por tu respuesta PICmouse, yo he tratado de resolver el problema pero aun sigo sin poder hacer funcionar una simple secuencia compilada con la version de CCS 4.104, espero tenr algo favorable y ya estaré informando.
Saludos y gracias por su atencíon   :)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: anhexo en 07 de Febrero de 2010, 06:22:23
hola que tal yo tambien me he encontrado con el mismo problema campech, al parecer las nuevas verciones del ccs modificaron el funcionamiento del build y el export, o al menos eso creo, prueba a mirar el ejemplo api.zip, yo por el momento lo he arreglado agregando la siguiente linea
:020000040000FA
al hex que genera el ccs...aunque no estoy muy agusto con la solucion

si encuentras una mejor te agradeceria la compartieras....

saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 09 de Febrero de 2010, 13:34:58
Hola anhexo:

Aun no he podido resolver el problema, mientras tanto regrese a usar la version 4.084, porque ni la 4.093 funciona. El ejemplo que dices que revise api.zip está en la carpeta de ejemplos de la instalación del compilador CCS ? o es uno que tu hiciste?

Saludos, seguimos en contacto para tratar de resolver el problema,   8) byeee
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: alcome en 16 de Febrero de 2010, 09:31:08
Yo llevo muchos intentos de Bootloader con código de Mikrobasic y no logro hacerlo funcionar.
Alguien lo probó?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: elpeibel en 25 de Febrero de 2010, 13:30:53
uf menos mal ya pensaba que me estaba volviendo loco.... me pasa igual... le he dado 5000 vueltas a mi código, empezaba a sospechar eso, del compilador, pero no podia creermelo ¿sulen hacer cosas así?

teneis algún avance??

saludos!!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ajhl7 en 02 de Marzo de 2010, 21:42:38
lo del programador externo, se refieren a cargar el bootloader al pic con el mplab y el picstar???
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 06 de Marzo de 2010, 03:14:18

Hay algún bootloader para el pic18f4550/2550 que  programe los bits de configuracion ???




Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 08 de Marzo de 2010, 09:42:58
No creo que lo encuentres. si cambian fusibles, ya deja de trabajar a la frecuencia que necesita el bootloader para comunicación USB.

A no ser que sea por RS232 y autobaudrate.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 08 de Marzo de 2010, 14:04:07
>_<

Entonces si quiero cambiar el pin del PWM , o el BOR y algunos FUSES de esos , toca compilar el bootloader >_<.????

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 08 de Marzo de 2010, 14:09:45
No le intente, pero si es ese fusible del BOR y no tocas el oscilador, deberia funcionar.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 08 de Marzo de 2010, 14:45:37


Gracias!!

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: thegame en 26 de Marzo de 2010, 12:56:54
Que tal, solo una pregunta, alguien a probado este bootloader en Windows 7??? y si es asi, Funciona????
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 27 de Marzo de 2010, 02:20:09
En que carpeta se encuentra el archivo donde se le cambian LOS FUSES?????

No lo encuentro en el boot.

Abri todas y no veo los PRAGMAS ni esas cosas para cambiar la Division del oscilador y esas cosas
--------------------------------------------------------------------------------------------------

Ya me fije en la carpeta boot y abri todos los archivos pero no veo ningun PRAGMA >__<

Ni alguna linea donde vea los bits de configuracion >_<



Gracias!!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 27 de Marzo de 2010, 05:24:52
Ya lo he resuelto

Encontre unos archivos donde si aparecian los bits de configuracion y ahi modifique el Cristal, los CCP2 , el PUT , desactive los pines analogos ,cambie el pin , etc...

No me sirvio el driver posteado aqui, por lo menos el que instala la herramienta del boot , me baje uno más nuevo , supongo no soporta los 64bits.

Baje el pic32_solution de microchip , el cual incluye el MCHPFUSB y varias herramientas , ese driver no me da problemas y me lo reconocio la pc a la primera. Windows vista 64 home premium.

Usnado el bootloader de Microchio ^^ exito! :P :D

http://ww1.microchip.com/downloads/en/devicedoc/MCHP_App_%20Lib%20v2010_02_09_Installer.zip
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 27 de Marzo de 2010, 11:17:55
AKENAFAB ,
Gracias por este reporte de actividad del bootloader en 64 bits.. Tengo en mano un PIC18F46J50 para ver como va el bootloader en el. YA les comentare.

SALUDOS!
Título: Problema para cargar el programa residente en un Boot 4550
Publicado por: gbaldrich en 30 de Marzo de 2010, 21:01:25
Amigos del foro se me presenta el siguiente inconveniente.

Estoy intentando crear un Bootloader para una aplicacion de mi tesis, hasta el momento he logrado que lo detecte cargar el bootloader, conmutar Boot/Ejecucion con el picdemusb.hex de microchip.

Pero ahora quiero cargar mi propio programa he escrito varios pero todos escriben en el espacio de memoria del bootloader, decidi entonces compilar el proyecto "Demo" y carge el hex desde PDFUSB y me funciono correctamente.

Mi intension es ahora modificar el programa del proyecto "Demo" para hacer mi aplicacion pero no se que uitar y que dejar me podrian ayudar?...
 se los agradeceria....
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 30 de Marzo de 2010, 23:46:03
estas trabajando en c18 o en CCS ???

Porque de c18 :/ no he visto los ejemplos y en CCS C esta en este mismo hilo como proteger el bootloader de sobreescritura

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 31 de Marzo de 2010, 00:27:04
Como se hace en CCS en C18 hay que remapear los vectores:

Código: [Seleccionar]
/****** Remapped Vectors ********************
    *   _____________________
    *   |       RESET       |   0x000000
    *   |      LOW_INT      |   0x000008
    *   |      HIGH_INT     |   0x000018
    *   |       TRAP        |   0x000028
    *   |     Bootloader    |   0x00002E
    *   .                   .
    *   .                   .
    *   |     USER_RESET    |   0x000800
    *   |    USER_LOW_INT   |   0x000808
    *   |    USER_HIGH_INT  |   0x000818
    *   |      USER_TRAP    |   0x000828
    *   |                   |
    *   |   Program Memory  |
    *   .                   .
    *   |___________________|   0x0005FFF / 0x0007FFF
    */

Viendo unos de los ejemplos que utilizan bootloader, esta es la forma de re-mapearlos:

Código: C
  1. //On PIC18 devices, addresses 0x00, 0x08, and 0x18 are used for
  2.         //the reset, high priority interrupt, and low priority interrupt
  3.         //vectors.  However, the current Microchip USB bootloader
  4.         //examples are intended to occupy addresses 0x00-0x7FF or
  5.         //0x00-0xFFF depending on which bootloader is used.  Therefore,
  6.         //the bootloader code remaps these vectors to new locations
  7.         //as indicated below.  This remapping is only necessary if you
  8.         //wish to program the hex file generated from this project with
  9.         //the USB bootloader.  If no bootloader is used, edit the
  10.         //usb_config.h file and comment out the following defines:
  11.         //#define PROGRAMMABLE_WITH_USB_HID_BOOTLOADER
  12.         //#define PROGRAMMABLE_WITH_USB_LEGACY_CUSTOM_CLASS_BOOTLOADER
  13.        
  14.         #if defined(PROGRAMMABLE_WITH_USB_HID_BOOTLOADER)
  15.                 #define REMAPPED_RESET_VECTOR_ADDRESS                   0x1000
  16.                 #define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS  0x1008
  17.                 #define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS   0x1018
  18.         #elif defined(PROGRAMMABLE_WITH_USB_MCHPUSB_BOOTLOADER)
  19.                 #define REMAPPED_RESET_VECTOR_ADDRESS                   0x800
  20.                 #define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS  0x808
  21.                 #define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS   0x818
  22.         #else  
  23.                 #define REMAPPED_RESET_VECTOR_ADDRESS                   0x00
  24.                 #define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS  0x08
  25.                 #define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS   0x18
  26.         #endif
  27.        
  28.         #if defined(PROGRAMMABLE_WITH_USB_HID_BOOTLOADER)||defined(PROGRAMMABLE_WITH_USB_MCHPUSB_BOOTLOADER)
  29.         extern void _startup (void);        // See c018i.c in your C18 compiler dir
  30.         #pragma code REMAPPED_RESET_VECTOR = REMAPPED_RESET_VECTOR_ADDRESS
  31.         void _reset (void)
  32.         {
  33.             _asm goto _startup _endasm
  34.         }
  35.         #endif
  36.         #pragma code REMAPPED_HIGH_INTERRUPT_VECTOR = REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS
  37.         void Remapped_High_ISR (void)
  38.         {
  39.              _asm goto YourHighPriorityISRCode _endasm
  40.         }
  41.         #pragma code REMAPPED_LOW_INTERRUPT_VECTOR = REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS
  42.         void Remapped_Low_ISR (void)
  43.         {
  44.              _asm goto YourLowPriorityISRCode _endasm
  45.         }
  46.        
  47.         #if defined(PROGRAMMABLE_WITH_USB_HID_BOOTLOADER)||defined(PROGRAMMABLE_WITH_USB_MCHPUSB_BOOTLOADER)
  48.         //Note: If this project is built while one of the bootloaders has
  49.         //been defined, but then the output hex file is not programmed with
  50.         //the bootloader, addresses 0x08 and 0x18 would end up programmed with 0xFFFF.
  51.         //As a result, if an actual interrupt was enabled and occured, the PC would jump
  52.         //to 0x08 (or 0x18) and would begin executing "0xFFFF" (unprogrammed space).  This
  53.         //executes as nop instructions, but the PC would eventually reach the REMAPPED_RESET_VECTOR_ADDRESS
  54.         //(0x1000 or 0x800, depending upon bootloader), and would execute the "goto _startup".  This
  55.         //would effective reset the application.
  56.        
  57.         //To fix this situation, we should always deliberately place a
  58.         //"goto REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS" at address 0x08, and a
  59.         //"goto REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS" at address 0x18.  When the output
  60.         //hex file of this project is programmed with the bootloader, these sections do not
  61.         //get bootloaded (as they overlap the bootloader space).  If the output hex file is not
  62.         //programmed using the bootloader, then the below goto instructions do get programmed,
  63.         //and the hex file still works like normal.  The below section is only required to fix this
  64.         //scenario.
  65.         #pragma code HIGH_INTERRUPT_VECTOR = 0x08
  66.         void High_ISR (void)
  67.         {
  68.              _asm goto REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS _endasm
  69.         }
  70.         #pragma code LOW_INTERRUPT_VECTOR = 0x18
  71.         void Low_ISR (void)
  72.         {
  73.              _asm goto REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS _endasm
  74.         }
  75.         #endif  //end of "#if defined(PROGRAMMABLE_WITH_USB_HID_BOOTLOADER)||defined(PROGRAMMABLE_WITH_USB_LEGACY_CUSTOM_CLASS_BOOTLOADER)"
  76.  
  77.         #pragma code
  78.        
  79.        
  80.         //These are your actual interrupt handling routines.
  81.         #pragma interrupt YourHighPriorityISRCode
  82.         void YourHighPriorityISRCode()
  83.         {
  84.                 //Check which interrupt flag caused the interrupt.
  85.                 //Service the interrupt
  86.                 //Clear the interrupt flag
  87.                 //Etc.
  88.        
  89.         }       //This return will be a "retfie fast", since this is in a #pragma interrupt section
  90.         #pragma interruptlow YourLowPriorityISRCode
  91.         void YourLowPriorityISRCode()
  92.         {
  93.                 //Check which interrupt flag caused the interrupt.
  94.                 //Service the interrupt
  95.                 //Clear the interrupt flag
  96.                 //Etc.
  97.        
  98.         }       //This return will be a "retfie", since this is in a #pragma interruptlow section


Saludos!

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: AKENAFAB en 31 de Marzo de 2010, 01:19:09
Suky

El código de usuario va hasta el final??
Después del la última llave o corchete??

Lo demás me queda claro

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 31 de Marzo de 2010, 08:06:13
Suky

El código de usuario va hasta el final??
Después del la última llave o corchete??

Lo demás me queda claro



El código de usuario va después del última llave:

Código: [Seleccionar]
#pragma code
void main(void)
{  
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 31 de Marzo de 2010, 12:06:01
Hola a todos:

Hace un tiempo publique en este hilo un problema que se me presento al pasar de la version 4.084 a la 4.104 de CCS y despues al tratar de descargar el codigo hex con el bootloader por usb mchpdfusb de microchip.

Ahora estoy usando la apilcacion de usb bootloader tambien de microchip pero HID v2.6a, y ya tengo la version 4.105 de CCS, pero una vez más al compilar un programa de prueba muy sencillo con ambas versiones, ohhhhhh sorpresa ¡¡¡ sigo sin poder programar el pic con el archivo compilado con la version 4.105. Simplemente al darle un reset para ejecute el codigo descargado el PIC se queda muerto.

A continuacion pongo el codigo del programa de prueba y mas abajo las imagenes capturadas al momento de realizar la descarga del hex hacia el pic18f4550

Código: [Seleccionar]
//-------------------------------------------------------------------------------
#include "18f4550.h"
#fuses HSPLL,NOWDT,NOBROWNOUT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,MCLR,NOPBADEN,WRTB,CPB

#use delay(clock=48000000)

#build(reset=0x1000,interrupt=0x1008)
#org 0x0000,0x0FFF {}

//-------------------------------------------------------------------------------

#define LED PIN_B1

void main(void)
{
set_tris_b(0b11111101);

   do{
output_toggle(LED);
delay_ms(500);
        }while(true);
}

//-------------------------------------------------------------------------------

Programa compilado con la version 4.084 CCS
(http://i44.tinypic.com/24lmz3d.jpg)

Programa compilado con la version 4.105 CCS
(http://i39.tinypic.com/wul0tx.jpg)

Como podran darse cuenta en la segunda imagen no aparecen los mensajes de "Erase complete" ni "Programming started", pero lo mas extraño es que si aparece  el mensaje de que el pic fue borrado, programado y verificado correctamente.
 
Espero que alguien pueda decirme si ha tenido alguna experiencia parecida y si pudo resolver el problema.
Saludos y gracias por atencion. :)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: darck_khronos en 31 de Marzo de 2010, 12:32:25
con la vercion .94 en el Hid no da problemas
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 31 de Marzo de 2010, 13:12:00
Esa version no la conozco, cuando salio???
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 31 de Marzo de 2010, 13:19:22
Puedes mostrar el disassembly para ver como se ubican las funciones en la memoria de programa?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 31 de Marzo de 2010, 14:04:10
Hola Suky:

Estos son loa codigos generados por el disassembler

compilado con version 4.084
Código: [Seleccionar]
0000:
L0000  ANDLW  0x24
       SUBWF  1,W
             
0800:
       
0804:  ANDLW  7       
       ANDLW  0xF
       ANDLW  0x8F
       NOP
       
       GOTO   L00C0
       CALL   L000F
       
       ANDLW  7
       ANDLW  0xFD
     
       ANDLW  2   
       ANDLW  0xFA
       
       SLEEP


compilado con version 4.105
Código: [Seleccionar]
0800:
       
0804:  ANDLW  6     
       ANDLW  0xF
       ANDLW  0x8F
       NOP
           
       GOTO   L00C0
       CALL   L000F
       
       ANDLW  7   
       ANDLW  0xFD
           
       ANDLW  2     
       ANDLW  0xFA
           
       SLEEP

Si exiten notables diferencias, aunque me descargue la ultima version del manual de usuario de CCS y no cambiaron en nada las directivas #build y #org.

Saludos.  :)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 31 de Marzo de 2010, 14:42:47
Bueno, en cualquiera de los 2 estamos mal, supuestamente con esto:

Código: [Seleccionar]
#org 0x0000,0x0FFF {}
Se estaría protegiendo el código desde 0x00 hasta 0xFFF, pero te ubica el código del main en 0x800  :?

Podrías probar colocando:

Código: [Seleccionar]
#org 0x0000,0x0FFF void Bootloader(void){}

Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 31 de Marzo de 2010, 16:17:33
Hola Suky:

Los codigos anteriores que publique, los genere con las opciones del disassembler: "Disassemble as 12 bit opcode" y "Label format C Label"

Acabo de generar nuevamente los archivos asm correspondientes pero ahora con las opciones del disassembler: "Disassemble as 16 bit opcode" y "Label format Addresses"  y ahora si aparece correctamente protegida la seccion del bootloader. Aunque hay tres lineas que varian(flechas) entre un codigo y el otro y ese debe ser el porque con la version 4.105 no se puede programar el pic.
Adjunto ambos codigos asm en la parte de abajo.

 archivo asm-version 4.084
Código: [Seleccionar]
0000 RETLW  00
0002 NOP   
0004 NOP   
0006 NOP   
0008 NOP   
000A NOP   
      .
      .
      .
      .
0FF8 NOP   
0FFA NOP   
0FFC NOP   
0FFE NOP   
1000
1002 GOTO   1032
1004 NOP   
1006 NOP   
1008 CLRF   FEA
100A MOVLW  07    <---------------------
100C MOVWF  FE9
100E MOVF   FEF,W
1010 BZ    102E
1012 MOVLW  0F
1014 MOVWF  01
1016 CLRF   00
1018 DECFSZ 00,F
101A BRA    1018
101C DECFSZ 01,F
101E BRA    1016
1020 MOVLW  8F
1022 MOVWF  00
1024 DECFSZ 00,F
1026 BRA    1024
1028 NOP   
102A DECFSZ FEF,F
102C BRA    1012
102E
1030 GOTO   105C
1032 CLRF   FF8
1034 BCF    FD0.7
1036 CLRF   FEA
1038 CLRF   FE9
103A MOVF   FC1,W
103C ANDLW  C0
103E IORLW  0F
1040 MOVWF  FC1
1042 MOVLW  07
1044 MOVWF  FB4
1046 MOVLW  FD
1048 MOVWF  F93
104A BCF    F93.1
104C BCF    F8A.1
104E BCF    F93.1
1050 BTG    F8A.1
1052 MOVLW  02
1054 MOVWF  06
1056 MOVLW  FA
1058 MOVWF  07   <----------------------
105A BRA    1008
105C DECFSZ 06,F  <---------------------
105E BRA    1056
1060 BRA    104E
1062 SLEEP
1064 NOP

 archivo asm-version 4.105
Código: [Seleccionar]
0000 RETLW  00
0002 NOP   
0004 NOP   
0006 NOP   
0008 NOP   
000A NOP
       .
       .
       .
       .
0FF8 NOP   
0FFA NOP   
0FFC NOP   
0FFE NOP   
1000
1002 GOTO   1032
1004 NOP   
1006 NOP   
1008 CLRF   FEA
100A MOVLW  06   <-----------------------
100C MOVWF  FE9
100E MOVF   FEF,W
1010 BZ    102E
1012 MOVLW  0F
1014 MOVWF  01
1016 CLRF   00
1018 DECFSZ 00,F
101A BRA    1018
101C DECFSZ 01,F
101E BRA    1016
1020 MOVLW  8F
1022 MOVWF  00
1024 DECFSZ 00,F
1026 BRA    1024
1028 NOP   
102A DECFSZ FEF,F
102C BRA    1012
102E
1030 GOTO   105C
1032 CLRF   FF8
1034 BCF    FD0.7
1036 CLRF   FEA
1038 CLRF   FE9
103A MOVF   FC1,W
103C ANDLW  C0
103E IORLW  0F
1040 MOVWF  FC1
1042 MOVLW  07
1044 MOVWF  FB4
1046 MOVLW  FD
1048 MOVWF  F93
104A BCF    F93.1
104C BCF    F8A.1
104E BCF    F93.1
1050 BTG    F8A.1
1052 MOVLW  02
1054 MOVWF  05
1056 MOVLW  FA
1058 MOVWF  06  <-----------------------
105A BRA    1008
105C DECFSZ 05,F   <---------------------
105E BRA    1056
1060 BRA    104E
1062 SLEEP
1064 NOP

Saludos y gracias por su atencion  8)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: campech en 31 de Marzo de 2010, 16:21:48
Hola Suky:

A continuacion publico tambien los dos codigos .hex respectivos a cada compilador, donde tambien se notan diferencias considerables

v4.084
Código: [Seleccionar]
:020000040000FA
:0410000019EF08F0EC
:08100800EA6A070EE96EEF50E1
:101010000EE00F0E016E006A002EFED7012EFBD7E8
:101020008F0E006E002EFED70000EF2EF2D72EEFAF
:1010300008F0F86AD09EEA6AE96AC150C00B0F094D
:10104000C16E070EB46EFD0E936E93928A929392C8
:101050008A72020E066EFA0E076ED6D7062EFBD7E0
:04106000F6D70300BC
:020000040030CA
:0E000000240E381E008181000F800FA00F001B
:00000001FF
;PIC18F4550
;CRC=3A18  CREATED="31-Mar-10 12:56"

v4.105
Código: [Seleccionar]
:0410000019EF08F0EC
:08100800EA6A060EE96EEF50E2
:101010000EE00F0E016E006A002EFED7012EFBD7E8
:101020008F0E006E002EFED70000EF2EF2D72EEFAF
:1010300008F0F86AD09EEA6AE96AC150C00B0F094D
:10104000C16E070EB46EFD0E936E93928A929392C8
:101050008A72020E056EFA0E066ED6D7052EFBD7E3
:04106000F6D70300BC
:020000040030CA
:0E00000024CE381E008581000F800FA00F0057
:00000001FF
;PIC18F4550
;CRC=31B7  CREATED="31-Mar-10 13:01"

Saludos.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: darck_khronos en 31 de Marzo de 2010, 22:37:29
Al parecer la falla principal del compilador CCs 105, comparada con la .94 y la .84 es que simplifica demaciado el hex, con el dimple hecho de agregar algunas lineas, y en otras solo hacer cambios de bits.

Pero algo gracioso es que al hacer la comparacion con el MD5 son casi identicos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: adrianjpc en 07 de Abril de 2010, 05:48:53
al parecer campech tiene toda la razon las versiones mas recientes no funcionan bien, comprobado

usen la version 4.084 funciona muy bien
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: maverick_007 en 22 de Abril de 2010, 21:12:45
hola les queria comentar que arme el boot loader que publico pic mause y a funcionado de maravilla ( tambien tuve ese dolor de cabeza con la vercion del ccs asique uso la v4.084) y haora lo ke me interesaria seria armar el mismo boot loader pero con el pic18f2550 si alguien tuviera la gentileza de ayudarme estaria muy agradecido .....

les adjunto la modificacion que le ise ( con la ayuda del auto paint jejeje ) para notener problemas con las patitas que estan ocupadas. bueno esa seria mi contribucion a este gran proyecto bye.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Lobo_Azul en 25 de Abril de 2010, 20:46:42
         
       ¿Cómo le hago para "remappear" los vectores en MikroC? --- ¿Alguien sabe?, agradecería su ayuda, ya que no soy primerizo en este gran mundo de los PIC's...


                    Hola, saludos a todos los del foro, este link me interesa mucho, ya que actualmente estoy trabajando con algo relacionado con ésto; específicamente, estoy trabajando con la placa PIC DEM FS USB de Microchip, es la tarjeta DM163025, hace ya un par de días que la empecé a probar, lo que ha descrito LabMouse con respecto a conectar la tarjeta, copiar el controlador y probar el modo Demo que ésta tarjeta trae ya lo he hecho, sin embargo, es el modo Bootload el que no me funciona.... me puse a leer el manual de la tarjeta (en inlgés  :? ya que no es mi fuerte  : :D :cry:) y al final de cuentas me dí cuenta que lo que me falta es lo que le llaman: "Remapped Vectors", que es lo que muchos ya han solucionado con las líneas de código que propone andreach16  o la que propone ema, sin embargo, observo que esas soluciones son para el compilador CCS incluso está la misma solución que propone Suky para el Mplab C18 "como se hace en CCS en C18 hay que remapear los vectores:"; pero lo que no he dicho, es que yo estoy trabajando con Mikroc, ya que se me ha hecho un lenguaje de programación demasiado sencillo, no se si sea el mejor o no, pero esa es mi pregunta actualmente, grax por todo y espero respuesta ya que no lo he encontrado... :shock:

La imagen que pongo "when ok.jpg" muestra los mensajes que aparecen cuando grabo el archivo *.hex que trae la tarjeta por default para utilizar el modo botload, en ese caso todo esta bien  :mrgreen:


sin embargo he hecho este codigo para Mikroc para el PIC18F4550:

void  main() {

  ADCON1 = 0x0F;
  CMCON  = 7;                      // Comparadores Deshabilitados


  TRISD = 0x00;                     // Configurar PuertoB como Salida
  PORTD = 0x00;                     // Valor inicial del puerto en 0

  while(1){
           PORTD.F3=1;
           Delay_ms(1000);
           PORTD.F3=0;
          Delay_ms(1000);

  }
}

el cual lo compila y ejecuta de maravilla, pues ya lo he simulado con Proteyus y anda muy bien, pero a la hora de quererlo meter al PIC18F4550 por medio de la función Bootloader, me saca lo de la imagen "warnings.jpg" que he adjuntado, y como podrán ver los warnings mencionan sobre el "Failed to reset Board" y "Failed to Program CONFIG DATA", y como mencione antes, he revisado el manual y lo que veo es que no he remappeado los vectores, pero no se como hacerlo en Mikroc  :(, agrdecería su ayuda, de antemano geracias.  :)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ignaps45 en 07 de Mayo de 2010, 19:26:13
Muy bueno este post sobre el boot loader usb.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Alumno en 06 de Julio de 2010, 19:31:21
Hola a todos, acabo de instalar el bootloader en WINDOWS7 y no me funciona queria saber si alguien ya resolvio este problema ( en WXP no tenia problemas).
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 07 de Julio de 2010, 11:00:30
Bájate la ultima versión de las librerías desde Microchip, estas ya tienen soporte Seven.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: luis.duso en 06 de Agosto de 2010, 11:25:44
Hola a todos,
para aquellos que quieran modificar los fuses, sin tener que recompilar el código y modificar (y encontrar) los dichosos #pragma,
tengo una solución más fácil.
Descarguen el WinPic800 (Se encuentra facilmente con una busqueda rápida en google), abran el .hex del bootloader situado en la carpeta _factory_hex y en la pestaña de config dentro del winpic800, cambien la configuración que quieran. Despues le dan a guardar como (para conservar el original) y listo programan otra vez el chip.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: albermillan69 en 29 de Agosto de 2010, 11:57:03
Buenos dias!!! Hice todos los pasos del primir post!

El pic entre bien en modo bootloader!! pero a la hora de grabar o leer lo q tiene el pic adentro me da error!

Aqui Adjunto la imagen del error!!!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: albermillan69 en 29 de Agosto de 2010, 12:25:35
Buenos dias!!! Hice todos los pasos del primir post!

El pic entre bien en modo bootloader!! pero a la hora de grabar o leer lo q tiene el pic adentro me da error!

Aqui Adjunto la imagen del error!!!

Aparentemente es el driver q no funciona para W7!! porq en XP si funciona 100%!!

Si alguien tiene el driver me lo puede pasar Por fa!!

Gracias!!!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: albermillan69 en 01 de Septiembre de 2010, 20:07:31
Alguno de ustedes tiene el archivo base en CCS para el bootloader??? Osea para poder editarlo a mi conveniencia!!!

Por fa!!! lo necesito!!!

Ya puedo grabar el pic pero usando Win XP!! :s

por cierto como puedo hacer para q cuando el pic no entre a MODO BOOTLOADER pueda mantener una comunicacion con la pc via usb??
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Piries en 18 de Septiembre de 2010, 06:08:48
Hola, estaba jugando con el 18F4550 y tengo un problema con el Bootloader USB, el programa del pic parece funcionar bien pues el led esta parpadeanda  la espera de que le mande el codigo hex del pic. Lo que me da problemas es la parte del pc, al cargar el PDFSUSB donde pone select PICDEM FS USB board no me aparece nada y las opciones para cargar el hex estan desactivadas. El driver esta correctaments instalado. Utilizo Vista 32bits.¿ Alguien sabe que puede estar pasando?

Edito

En el administrador de dispositivos me detecta el PIC como PIC18F4550 Family Device pero tambien me lo detecta como PICDEM FS USB Demo Board (C) 2004 y me pide un driver que no tengo. ¿Que he de hacer en este caso?

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 18 de Septiembre de 2010, 11:17:01
Tal vez con la ultima versión del driver debe funcionar bien. Bajatelo de la pagina de Microchip.

SALUDOS!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Piries en 18 de Septiembre de 2010, 14:25:09
He instalado una version mas reciente del driver y ahome me lo detecta como Microchip custom USB device, el led parpadea igualmente pero en el PDSFUSB sigue sin aparecerme nada. ¿Alguna otra idea?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Lobo_Azul en 18 de Septiembre de 2010, 18:06:44
Saludos a todos, de tanto esperar yo mejor me pasé al CCS y si funciona muy chido, jeje, para Piries, no se si tengas la tarjeta DM163025, si es eso, para que se te habilite el modo Bootloader y las opciones de "Program Device", "Execute", "Read Device", etc, debes mantener presionado el botón S2 y mientras haces eso resetear la tarjeta con el botón S1 (sigue presionado S2), después de esto ya sueltas el S1 y S2, en ese momento ya podras entrar al modo bootloader, ya solo selecciona tu dispositivo en la lista desplegable, suerte (Y), espero que ese sea tu problema, jeje, bye a todos. (Bytes!!).
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Piries en 18 de Septiembre de 2010, 23:27:49
Hola, la targeta que tengo me la he hecho yo mismo siguiendo un diagrama muy parecido al de la primera pagina de este post. Lo de pulsar los botones ya lo hago y el PIC entra en modo bootloader, lo se porque el led parpadea. El problema es que el al intentar descargar algun .hex con el PDFSUSB no me sale ningun dispositivo para señalar.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Piries en 19 de Septiembre de 2010, 18:50:12
He conseguido resolver el problema, el caso es que para poder usarlo correctamente con windows vista se ha de ejecutar el PDFSUSB en modo administrador, de esta forma ya se puede usar el bootloader.

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: fr4n en 04 de Octubre de 2010, 07:47:57
Hola a todos, he conseguido hacer funcionar el bootloader, uso WinXP y el PIC18F4550.

Metí el programa residente (booloader) que se encuentra en C:\MCHPFSUSB\fw\_factory_hex mediante un programador externo.
Éste archivo picdemfsusb.hex ocupa 23KB y con él, el bootloader me funciona perfectamente.

Mi problema es que quiero modificarlo para agregarle mis fuses (#pragma) y modificar el Pin que hace entrar en modo bootloader, quiero que entre a nivel alto en lugar de a nivel bajo como viene por defecto.

Abro el proyecto que contiene el codigo fuente que se encuentra en C:\MCHPFSUSB\fw\Boot y lo modifico a mi gusto, después de compilarlo, el archivo resultante es de solo 6-7KB y al meterlo en mi PIC mediante programador externo también, ya deja de funcionar el modo bootloader, nunca entra en dicho modo. Si lo programo mediante el bootloader, también deja de funcionar. Creo que ese .hex que creo, poco tiene que ver con el bootloader original...

¿Alguien podría ayudarme?

Saludos y gracias a todos.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: diego_z en 14 de Octubre de 2010, 22:32:35
Bájate la ultima versión de las librerías desde Microchip, estas ya tienen soporte Seven.
hola podrias indicarme donde bajar esas librerias , me recorri todo , y tal vez por mi escaso ingles , no encontre nada , cuando lo conecto en w7 no reconoce nada , en xp anda bien , un saludo
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: fr4n en 07 de Noviembre de 2010, 08:32:56
Bájate la ultima versión de las librerías desde Microchip, estas ya tienen soporte Seven.
hola podrias indicarme donde bajar esas librerias , me recorri todo , y tal vez por mi escaso ingles , no encontre nada , cuando lo conecto en w7 no reconoce nada , en xp anda bien , un saludo

Hola, a mi me ha funcionado para Windows 7 de 32 bits, no se si funcionará para 64 bits. Aqui te paso las librerías donde se encuentra el driver.
http://ww1.microchip.com/downloads/en/devicedoc/MCHP_App_%20Lib%20v2010_02_09_Installer.zip

Saludos.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: rbpkirow en 09 de Diciembre de 2010, 18:45:45
Hola a tod@s.
Antes de nada quiero agradecer y felicitar a LABmouse por esta magnifica explicacion.

A continuacion me gustaria pedir un favor.
Estoy empezando en el tema de pic con usb y me gustaria probar este bootloader. El problema que tengo es que segun he entendido, necesita un boton en RB4 y un led en RD1, que indican si entra a ejecutar el bootloader o no (segun he visto en el esquema).

Para mi caso necesito, por simplicidad en mi placa, que el pulsador se encuentre en RD0 ó RD1, y el led se conecte a RD2 ó RD3.
He intentado compilar el proyecto con MPLAB, pero me devuelve un error de compilador no encontrado.

Alguien me haría el favor de compilarme de nuevo este bootloader?
o bien si alguien sabe porqué me devuelve este error, agradecería me diera una solucion. Utilizo MPLAB con PICC.

Muchisimas gracias

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 09 de Diciembre de 2010, 18:59:44
Hola rbpkirow,
Me alegra te sirva el trabajo.

Ahora ando metido en un problema y debo entregar urgente un proyecto, así que si a el Domingo no constesto es que se me olvido así que me mandas un MP y te compilo el proyecto una vez mas.

SALUDOS!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 09 de Diciembre de 2010, 19:22:34
Adjuntado. Bootloader HID (ocupa de 0x0000 a 0x1000) para 18F4550, cristal de 20MHz, SW en RD0 y led en RD2. No lo probé, solo modifique la configuración en io_cfg.h y compile.


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: rbpkirow en 13 de Diciembre de 2010, 12:07:43
Hola.
Muchisimas gracias a ambos, Probaré el bootloader y os comento a ver si funciono.
Muchas gracias de nuevo.

Un saludo
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: asyncronick10 en 05 de Enero de 2011, 11:44:30
Hola, a todos soy nuevo en el foro, y quiseira saber si me pueden ayudar, arme un clon del arduino pero en pic, que se llama pinguino, adjunto informacion.
http://www.hackinglab.org/pinguino/
La pregunta es la siguiente, el proyecto esta muy verde, muy poco desarrollado y sin documentacion, por lo tanto quiero utilizar esa placa y modificar mi propio bootloader, esta placa tiene un solo pulsador, que cuando se lo preciona entra en reset y queda por 5 segundos esperando que se cargue por bootloader el soft, si no se cargo nada, entra en el vector del programa del usuario. El problema es que no se como hacer porque el boton esta en el puerto MCLR y con este mismo boton hace todo.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: darck_khronos en 05 de Enero de 2011, 12:37:20
Hola, a todos soy nuevo en el foro, y quiseira saber si me pueden ayudar, arme un clon del arduino pero en pic, que se llama pinguino, adjunto informacion.
http://www.hackinglab.org/pinguino/
La pregunta es la siguiente, el proyecto esta muy verde, muy poco desarrollado y sin documentacion, por lo tanto quiero utilizar esa placa y modificar mi propio bootloader, esta placa tiene un solo pulsador, que cuando se lo preciona entra en reset y queda por 5 segundos esperando que se cargue por bootloader el soft, si no se cargo nada, entra en el vector del programa del usuario. El problema es que no se como hacer porque el boton esta en el puerto MCLR y con este mismo boton hace todo.

Tendrias que estudiar C18 para poder modificar el bootloader y hacerlo a tu gusto, el clon que hisiste es para la compañia microchip, no es de atmel, y para que funcione devez precionar el boton de MCLR y el que esta en el RB4 al mismo tiempo, sueltas el MCLR dejando precionado el boton de RB4 y entrara en modo boot
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: asyncronick en 05 de Enero de 2011, 17:53:06
Hola, a todos soy nuevo en el foro, y quiseira saber si me pueden ayudar, arme un clon del arduino pero en pic, que se llama pinguino, adjunto informacion.
http://www.hackinglab.org/pinguino/
La pregunta es la siguiente, el proyecto esta muy verde, muy poco desarrollado y sin documentacion, por lo tanto quiero utilizar esa placa y modificar mi propio bootloader, esta placa tiene un solo pulsador, que cuando se lo preciona entra en reset y queda por 5 segundos esperando que se cargue por bootloader el soft, si no se cargo nada, entra en el vector del programa del usuario. El problema es que no se como hacer porque el boton esta en el puerto MCLR y con este mismo boton hace todo.

Tendrias que estudiar C18 para poder modificar el bootloader y hacerlo a tu gusto, el clon que hisiste es para la compañia microchip, no es de atmel, y para que funcione devez precionar el boton de MCLR y el que esta en el RB4 al mismo tiempo, sueltas el MCLR dejando precionado el boton de RB4 y entrara en modo boot

Estimado Dark cronos, si, ya lo se que es de microchip. Con respecto a los 2 botonos, no es correcto, porque existe una version (dentro de esa pagina) que tiene un solo boton conectado al MCLR con el cual se resetea y entra a esperar que se cargue el bootloader si en 5 seg no se cargo nada, ejecuta el programa que tenga en memoria, quisiera que me ayuden para poder adaptar un bootloader a esta placa, gracias.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: rmadrid25 en 05 de Enero de 2011, 19:51:59
Hola a todos.
He estado siguiendo este foro durante un año. Agradecer primero a los maestros, a LABmouse por crear este hilo, a Suky por todos los tutoriales que se ha currado,  y a los compañeros que han añadido conocimientos e ideas.

He estado investigando el tema del bootloader USB HID, ya que se me hacia pesao programar con el pickit2.
He probado el que ha hecho la pagina de neoteo, similar al de Suky, y me funciona en el 2550.
lo que yo he quiero hacerme una placa pequeña y me gustaria poner  un switch y un LED en los pines A0 y A4 respectivamente.
despues de instalar el c18 , modifico el io_cfg.h y pongo esto:

#define mInitAllLEDs()      LATA &= 0x00; TRISA &= 0x0F;
    
#define mLED_1              LATAbits.LATA4   //salida A4 usa LATA

#define mInitAllSwitches()  TRISAbits.TRISA0=1;
#define mInitSwitch2()      TRISAbits.TRISA0=1; //entrada
#define sw2                 PORTAbits.RA0



y en el main:
void main(void)
{  


ADCON1 = 0x0F;   //todos los pines ANX son digitales
 CMCON = 0x07;   //desactivar comparadores
 TRISA &= ~0x0F; // pin 4 como salida, 3 al 0 como entradas

   //Check Bootload Mode Entry Condition
   if(sw2 == 1)   //This example uses the sw2 I/O pin to determine if the device should enter the bootloader, or the main application code
   {
          ADCON1 = 0x07;      //Restore "reset value" of the ADCON1 register
      _asm
      goto 0x1000         //If the user is not trying to enter the bootloader, go straight to the main application remapped "reset" vector.
      _endasm
   }

    InitializeSystem();
    while(1)
...


El led me funciona, pero el micro siempre entra en modo bootloader da igual el pulsador. No se si tengo algo mal, o hice alguna conexión rapida mal. Luego utilice el de Neoteo y me funciona correctamente. si alguien lo puede revisar y comentarme, se lo agradezco.

Respecto al problema que todos tenemos del CCS , respecto las versiones 089 vs las ultimas, tengo que decir que como el compañero Campech, que el v.104 no me funciona. He realizado un programa muy sencillo de comprobar si esta pulsado un switch ,que encienda un led. y en caso contrario que no encienda.   Lo he compilado en el 089 y en el 104 . Pues los ficheros LST son IGUALES!!!! pero al programarlos con el HID,  el compilado por el 089 si me funciona, y el 104 NO.  Pues investigando, los hexadecimales NO son iguales.

El hexadecimal de campech se puede ver la diferencia.  la Primera línea es la clave.  Copie la linea al 104 y VOILÁ, funcionó.

:020000040000FA

Si alguien lo puede probar y confirmarlo, se agradece. El CRC de la ultima línea NO lo modifiqué, se ve que el bootloader HID no lo comprueba. Y como agradecimiento solo pediría que me ayudasen con el fichero del C18, a ver si tengo tiempo para aprenderlo.

Saludos,  Hara_Kiri85.  (ó rmadrid25 según que foro)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: rmadrid25 en 05 de Enero de 2011, 20:04:43
Si al final funciona, creo que es un buen regalo de reyes para todos, jeje.

Felices Reyes  para tod@s. Que traigan salud, conocimiento y dinero para seguir trasteando con estos cacharros.

Saludos, Josué.

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: luftwaffe en 05 de Marzo de 2011, 03:23:51
Hola LABmouse no se si me podrias explicar la manera en que entras al bootloader y la manera de free corregime si me equivoco
antes de conectar el cable usb debo mantener precionado el boton del bootloader para ingresar un nuevo programa o debo precionar ese boton junto con el de reset y cuando ya tengo el nuevo programa como salgo del bootloader perdona solo que no comprendo muy bien esa parte, y muchisimas gracias por el aporte.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 05 de Marzo de 2011, 09:06:50
Hola LABmouse no se si me podrias explicar la manera en que entras al bootloader y la manera de free corregime si me equivoco
antes de conectar el cable usb debo mantener precionado el boton del bootloader para ingresar un nuevo programa o debo precionar ese boton junto con el de reset y cuando ya tengo el nuevo programa como salgo del bootloader perdona solo que no comprendo muy bien esa parte, y muchisimas gracias por el aporte.

Para entrar el bootloader, con el cable conectado, presionas los 2 pulsadores y luego sueltas primero el de reset. Allí el software acusará haber detectado el dispositivo.

Y para entrar en modo normal, restear el microcontrolador sin nada presionado.


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: luftwaffe en 05 de Marzo de 2011, 15:32:39
Ok muchas gracias por la explicacion, ahora me propongo a probarlo
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: luftwaffe en 08 de Marzo de 2011, 00:58:12
Hola que tal disculpen la molestia ya he armado el circuito he ingresado el bootloader para el pic 18F4550, ahora bien la interfaz HID se comunica bien todo funciona muy bien pero al tengo el inconveniente de grabar un archivo .hex aparentemente lo graba pero al momento de dar reset ya sea en el pic o en el programa ya no funciona el nuevo .hex no ejecuta el programa, aunque el bootloader funciona perfectamente no lo borra y siempre puedo entrar de nuevo al modo bootloader, alguien puede ayudarme. he probado con Windows XP y 7 con ninguno de los dos funciona con los nuevos softwares que he podido encontrar en el foro. este es el circuito que realice.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: jeremylf en 08 de Marzo de 2011, 04:56:03
Hola, una pregunta...

No importa cuanta configuracion haga en los fusibles en el programa que quiero enviar por bootloader, pues ninguna tendra efecto mas que con la que se ha grabado el bootloader al inicio verdad?

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 08 de Marzo de 2011, 10:49:46
Hola que tal disculpen la molestia ya he armado el circuito he ingresado el bootloader para el pic 18F4550, ahora bien la interfaz HID se comunica bien todo funciona muy bien pero al tengo el inconveniente de grabar un archivo .hex aparentemente lo graba pero al momento de dar reset ya sea en el pic o en el programa ya no funciona el nuevo .hex no ejecuta el programa, aunque el bootloader funciona perfectamente no lo borra y siempre puedo entrar de nuevo al modo bootloader, alguien puede ayudarme. he probado con Windows XP y 7 con ninguno de los dos funciona con los nuevos softwares que he podido encontrar en el foro. este es el circuito que realice.

Revisa con que versión de CCS estás trabajando, despues de la 4.84 hay que hacer un par de "maniobras", LabMouse ha dejado un hilo explicado en el foro, utiliza el buscador  ;-)
Hola, una pregunta...

No importa cuanta configuracion haga en los fusibles en el programa que quiero enviar por bootloader, pues ninguna tendra efecto mas que con la que se ha grabado el bootloader al inicio verdad?



El bootloader te permite re -grabar los fusibles, pero no debes modificar los que afectan al funcionamiento del bootloader


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: gabrieladrian en 22 de Marzo de 2011, 15:56:45
holaaa labmouse y a todos los del foro eh armado este circuito le eh instaladoo el bootloader al momento de hacer pruebas con la aplicacion demo me aparece un error que dice

usb read failed
failed with error 997: se esta ejecutando la operacion de e/s superpuesta.

alguien podria ayudarme a corregir este error porfavor de antemano gracias a todos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 22 de Marzo de 2011, 16:13:22
holaaa labmouse y a todos los del foro eh armado este circuito le eh instaladoo el bootloader al momento de hacer pruebas con la aplicacion demo me aparece un error que dice

usb read failed
failed with error 997: se esta ejecutando la operacion de e/s superpuesta.

alguien podria ayudarme a corregir este error porfavor de antemano gracias a todos

Hola! El mensaje ya habia sido publicado, no es necesario repetirlo  :? Se paciente!


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 22 de Marzo de 2011, 18:19:00
gabrieladrian, este ejercicio esta probado por varios acá en el foro, de resultar un problema seguro que es por un error cometido de tu parte a la hora de fabricar o ensamblar los componentes.

Por el numero del error no logro entender cual sea la razón de el, nunca me ha pasado,  por ello recomiendo revisar detalladamente las conexiones del microcontrolador y del cristal. Recuerda que debe ser uno de 20MHz.

Ya nos contaras que encontraste.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: gabrieladrian en 24 de Marzo de 2011, 15:14:45
ya eh logrado resolver mis problemas con el programa de ccs era la version tube que utilizar una mas antigua para que me permitiera trabajar... por otro lado qusiera realizar una aplicacion similar a la pdfsubs alguien pudiera guiarme con eso porfavor =)

gracias y saludos a todos por su ayuda
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 24 de Marzo de 2011, 16:04:24
ya eh logrado resolver mis problemas con el programa de ccs era la version tube que utilizar una mas antigua para que me permitiera trabajar... por otro lado qusiera realizar una aplicacion similar a la pdfsubs alguien pudiera guiarme con eso porfavor =)

gracias y saludos a todos por su ayuda

Se puede usar cualquier versión de CCS, busca en el foro, también está explicado como realizarlo. Y sobre una aplicación pdfsubs, también utiliza el buscador. Hay ejemplos en VB, VC#, VC++, Delphi, ect.....


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: pfc_18f4550 en 03 de Abril de 2011, 10:36:40
Hola! Soy nuevo en esto de los PIC's y estaba interesado en el tema del bootloader. He leido en post anteriores de este tema que para que el bootlodaer que viene en el probrama de la placa PIC DEM FSUSB, se puede preserbar, es decir, que si hago yo un programa el bootloader seguira estando. Para ello he leido que se tiene abrir una plantilla que viene dentro del C18 pero la verdad es que no la se encontrar, si alguien me puede decir como encotrarla o que librerias o que pases tengo que seguir para no perder el boot.

Muchas gracias :P
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 03 de Abril de 2011, 14:04:31
Busca en la página de Microchip, un paquete que se llama Microchip Solutions


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: pfc_18f4550 en 03 de Abril de 2011, 14:10:06
Buenas!

Ese paquete ya lo descargué. Dentro de este esta la plantilla esta¿?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 03 de Abril de 2011, 14:18:30
Buenas!

Ese paquete ya lo descargué. Dentro de este esta la plantilla esta¿?

Si buscas hay una carpeta que dice USB Device - Bootloaders  :mrgreen:

Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: pfc_18f4550 en 03 de Abril de 2011, 14:25:03
aaah!!!

OK, ya lo he encontrado. Ahora abriendo este proyecto y añadiendo en el main todo mi programa ya estaria verdad??

Muchas gracias man!!!

Saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: gabrieladrian en 06 de Abril de 2011, 15:55:06
holaaa todos

quisiera saber si se puede hacer funcionar este bootloader con rs232 lo eh intentado pero pdfusb no me recoce

gracias =)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 06 de Abril de 2011, 18:29:53
si quieres por RS232, entonces debes bajarte un boorloader para ese puerto desde la pagina microchip.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: JoaGM en 11 de Abril de 2011, 14:17:22
Hola LabMouse!
Soy nuevo el el foro!
He armado este bootloader...
Teniendo inconvenientes y dudas...
Primero que nada... creo q mal interprete el diagrama y puse un push botton de 4 "patitas"...
Segundo: He conseguido en windows 7 arracar y acepta el modo bootloader, parpadeando el LED esperando el .hex!
Al Cargar el .HEX lo carga correctamente, pero cuando le voy a dar click en programar... Me marca un error...
Que dice: "USB Write Failed.Failed with error 997: Se está ejecutando la operación de E/S superpuesta"...
Tambien otra duda que tengo es que... en dado caso que programe existosamente mi programa .HEX... como lo pongo en modo normal????
Una disculpa si mis preguntas son tontas u obvias.
Espero me puedan ayudar
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Maxtronic en 11 de Abril de 2011, 23:41:19
Yo tengo un problema con el C18 de microchip con WIN7 no reconoce los directorios de los archivos *.h y tambien con el CCS las ultimas versiones no funciona el USB CDC pero las versión antigua las primeras de la 4.0xx si.
Para mi pic18f2553.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 13 de Abril de 2011, 17:48:54
Hola a todos,


Sobre write Filed, debes usar otro driver para windows. El que se instala junto al paquete antiguo (Que hace referencia en el primer post) no tiene soporte para seven. Te recomiendo bajarte la ultima versión desde la pagina de microchip.

 Para llevarlo a modo normal, solo se debe dar RESET a microcontrolador y B4 debe estar en 1.

Maxtronic a lo mejor se debe a que no instalaste C18 en C:/MCC18
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 26 de Mayo de 2011, 15:57:55
Tal vez los de MCElectronics graban un bootloader diferente o peor... nunca graban nada. Parece que son especialistas en dejar las cosas a media, así que te recomiendo te pases por la oficina de ellos y pidas una explicación de su producto. Nos comentas como te fue con ello.

SALUDOS!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: cperez en 29 de Mayo de 2011, 18:18:02
 :5]
consulta????    no es necesario especificar el vid ni pid  con este metodo???  gracias por aclarar...
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 24 de Junio de 2011, 19:23:07
El PID y VID del bootloader no hay que tocarlo, ya que la aplicación desarrollada en Visual los utiliza para establecer la comunicación. Después, si es una aplicación, es totalmente independiente del bootloader, no mezclar las cosas  ;-)


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full. y con Windows 7?
Publicado por: armandoyamir en 01 de Julio de 2011, 20:10:48
Hola que tal?

Realice la tarjeta pero cuando lo conecto bajo windows 7 64 bits me dice que no reconoce la tarjeta, "aparato desconocido". Pregunto si han tenido este mismo problema con windows 7 pues el ejemplo que veo esta bajo windows xp y me imagino que los drivers ya no deben funcionar. Que solución han buscado?.

Gracias

Armando Blanco C.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 01 de Julio de 2011, 20:41:47
Hola que tal?

Realice la tarjeta pero cuando lo conecto bajo windows 7 64 bits me dice que no reconoce la tarjeta, "aparato desconocido". Pregunto si han tenido este mismo problema con windows 7 pues el ejemplo que veo esta bajo windows xp y me imagino que los drivers ya no deben funcionar. Que solución han buscado?.

Gracias

Armando Blanco C.

Es el bootloader HID? Te recomiendo que bajes los ejemplos más actuales, generalmente no hay problemas con Win7


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: jorgejg en 26 de Agosto de 2011, 18:20:49
He leido todo el hilo, uso el C18, y tengo el mismo problema que algunos: el archivo main.c que está en C:\MCHPFSUSB\fw\Boot no contiene los pragmas para modificar los bits de configuración. Cuando compilo todo trabaja bien pero a 20MHz y no tengo como cambiar desde el código fuente a 4Mhz.

Quise usar el bootloader que hay en "Microchip Solutions v2011-06-02" (C:\Microchip Solutions v2011-06-02\USB\Device - Bootloaders\MCHPUSB\Firmware - PIC18F4550 Family) porque ahi si estan los pragmas para cambiar los bits de configuración pero al compilar el proyecto me da el error:

Error - section '_cinit_scn' can not fit the section. Section '_cinit_scn' length=0x0000009e

Alguien me podria pasar el código fuente del boot para C18 para modificar los bits de configuración a mi gusto y la respectiva plantilla donde realizaré mi programa para un PIC18F4550?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 26 de Agosto de 2011, 18:29:39
Si solo quieres cambiar la opción del cristal y la configuración del PLL, lo más rápido es hacerlo con el programa que grabas el hex del bootloader, allí también lo puedes cambiar a gusto. Sino en el main.c agrega los #pragma, aunque me parece raro que no esten.


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: jorgejg en 26 de Agosto de 2011, 18:52:39
He colocado los pragmas y parece funcionar, el programa PDFSUSB.exe me reconoce el programa bootloader pero al grabar el ejemplo demo (MCHPUSB.hex) que está en "C:\MCHPFSUSB\fw\Demo\_output" me sale error (lo mismo ocurre con el demo02 que está en "C:\MCHPFSUSB\fw\Demo02"):

WARNING - Failed to program FLASH
MESSAGE - Erasing and Programming FLASH...

Y encima luego de resetear el pic parece que el programa bootloader se borra porque no responde mas. Tal vez el ejemplo demo está diseñado para trabajar a 20Mhz y por eso me sale error o que podria ser?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: leosanta en 06 de Octubre de 2011, 14:50:25
Citar
fr4n
Re: Bootloader USB para PIC18F4550 a full.
« Respuesta #99 : 04 de Octubre de 2010, 07:47:57 »

Hola a todos, he conseguido hacer funcionar el bootloader, uso WinXP y el PIC18F4550.

Metí el programa residente (booloader) que se encuentra en C:\MCHPFSUSB\fw\_factory_hex mediante un programador externo.
Éste archivo picdemfsusb.hex ocupa 23KB y con él, el bootloader me funciona perfectamente.

Mi problema es que quiero modificarlo para agregarle mis fuses (#pragma) y modificar el Pin que hace entrar en modo bootloader, quiero que entre a nivel alto en lugar de a nivel bajo como viene por defecto.

Abro el proyecto que contiene el codigo fuente que se encuentra en C:\MCHPFSUSB\fw\Boot y lo modifico a mi gusto, después de compilarlo, el archivo resultante es de solo 6-7KB y al meterlo en mi PIC mediante programador externo también, ya deja de funcionar el modo bootloader, nunca entra en dicho modo. Si lo programo mediante el bootloader, también deja de funcionar. Creo que ese .hex que creo, poco tiene que ver con el bootloader original...

¿Alguien podría ayudarme?

Saludos y gracias a todos.

buenas tardes, he tenido el mismo problema que el mencionado anteriormente, pues al compilar el archivo solo pesa 7 kb y me saca error al hacer el bootloader, en cambio el .hex que viene par montarlo sin modificar que pesa 23kb me funciona perfecto. si alguien sabe por que agradecería su ayuda.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: electro_0x7c1 en 11 de Octubre de 2011, 15:18:32
ya eh logrado resolver mis problemas con el programa de ccs era la version tube que utilizar una mas antigua para que me permitiera trabajar... por otro lado qusiera realizar una aplicacion similar a la pdfsubs alguien pudiera guiarme con eso porfavor =)

gracias y saludos a todos por su ayuda

Se puede usar cualquier versión de CCS, busca en el foro, también está explicado como realizarlo. Y sobre una aplicación pdfsubs, también utiliza el buscador. Hay ejemplos en VB, VC#, VC++, Delphi, ect.....


Saludos!

Que tal, no se si me puedas decir en que parte, o como, pues he leido el hilo completo y no encuentro lo que mencionas. saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 11 de Octubre de 2011, 16:08:55
Por aquí: http://www.todopic.com.ar/foros/index.php?topic=33221.msg280148#msg280148

Con ese tip cree este ejecutable: http://www.micros-designs.com.ar/foros/index.php?topic=15.msg29#msg29

Y aquí LABMouse da otra forma: http://www.todopic.com.ar/foros/index.php?topic=33487.msg280136#msg280136

Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: mephisto340 en 30 de Noviembre de 2011, 02:55:37
Hola a todos! soy nuevo en el grupo y antes de hacer mi pregunta quiero dar las gracias a todo el equipo de TODOpic

tengo dos problema con el bootloader! ya queme el pic18f4550 con el .hex del primer post y ya tengo el circuito montado (pero no el empaque superficial, sino en el otro, asegurandome de que cada cosa va en el pin correcto), cuando lo conecto a la PC por medio del USB el pic entra en modo bootloader (lo sé porque el led empieza a parpadear) pero la computadora nada que lo reconose, ya descargue el  Microchip Solutions v2011-07-14, para actualizar el driver pero no sirvio de nada.

El otro problema que tengo es que al intentar compilar la plantilla del bootloader que viene en Microchip Solutions v2011-07-14 me sale el siguiente error



"Bootloader_18f4550.lkr" "main.o" "boot.o" "usb9.o" "usbctrltrf.o" "usbdrv.o" "usbdsc.o" "usbmmap.o" /u_CRUNTIME /z__MPLAB_BUILD=1 /m"MCHPUSB.map" /w /o"MCHPUSB.cof"
MPLINK 4.40, Linker
Device Database Version 1.3
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section '_cinit_scn' can not fit the section. Section '_cinit_scn' length=0x0000009e
Errors    : 1

Link step failed.
----------------------------------------------------------------------
Release build of project `C:\Microchip Solutions v2011-07-14\USB\Device - Bootloaders\MCHPUSB\Firmware - PIC18F4550 Family\MCHPUSB.mcp' failed.
Language tool versions: mpasmwin.exe v5.42, mplink.exe v4.40, mcc18.exe v3.40, mplib.exe v4.40
Wed Nov 30 01:19:45 2011
----------------------------------------------------------------------
BUILD FAILED

y la unica modificación que le he hecho al codigo es la siguiente



/** I N C L U D E S **********************************************************/
#include <p18F4550.h>
#include "typedefs.h"                        // Required
#include "usb.h"                         // Required
#include "io_cfg.h"                                 // Required

#include "usb_compile_time_validation.h" // Optional

/** C O N F I G U R A T I O N ************************************************/

#if   defined(__18F4550)||defined(__18F4455)|| \
      defined(__18F2550)||defined(__18F2455)|| \
      defined(__18F4553)||defined(__18F4458)|| \
      defined(__18F2553)||defined(__18F2458)


Que puedo hacer para corregir estos problemas?? gracias de antemano
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: micro_cadaver en 30 de Noviembre de 2011, 09:08:38
Bueno primero antes de moficar algo pueba que funcione el orginal, consejo de un conejo.

Yo utilize este bootloader para el pic18f4550 y funciono todo ok, puedes subir fotos y esquema de tu placa donde estas implemtando el boot?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: mephisto340 en 01 de Diciembre de 2011, 17:36:05
Bueno primero antes de moficar algo pueba que funcione el orginal, consejo de un conejo.

Yo utilize este bootloader para el pic18f4550 y funciono todo ok, puedes subir fotos y esquema de tu placa donde estas implemtando el boot?

trate de compilar el que tu me pasaste y me da el mismo error sera que tengo mal el compilador?? es el mplab c18 descargado directamente de michochip esta instalado en C:\Program Files\Microchip y se me habia olvidado mencionar estoy trabajando en win7
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: micro_cadaver en 02 de Diciembre de 2011, 00:40:53
Bueno primero antes de moficar algo pueba que funcione el orginal, consejo de un conejo.

Yo utilize este bootloader para el pic18f4550 y funciono todo ok, puedes subir fotos y esquema de tu placa donde estas implemtando el boot?

trate de compilar el que tu me pasaste y me da el mismo error sera que tengo mal el compilador?? es el mplab c18 descargado directamente de michochip esta instalado en C:\Program Files\Microchip y se me habia olvidado mencionar estoy trabajando en win7

a pike si esta algo maluko tu compiler, yo tambien tengo win7 y ese archivo es directo de MAL de microchip.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: mephisto340 en 19 de Diciembre de 2011, 18:34:25
saludos!!

ya pude hacer que el pc me reconosca el pic (tuve que buscar un pc de escritorio con winXP) pero no puedo grabar, este es el error que sale cuando trato de grabar el demo o cualquier otro .hex

Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: micro_cadaver en 20 de Diciembre de 2011, 11:54:11
saludos!!

ya pude hacer que el pc me reconosca el pic (tuve que buscar un pc de escritorio con winXP) pero no puedo grabar, este es el error que sale cuando trato de grabar el demo o cualquier otro .hex


mmm no sera por el protoboard? puedes poner los componentes que usas? y el esquematico en que te estas basando? si quieres te paso mis fuentes para que te armes una plaquita con usb bootloader la cual me funciona sin problemas en win7 con laptop.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 20 de Diciembre de 2011, 12:57:52
Tambien asegurate de utilizar versiones actuales ;-)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: mephisto340 en 23 de Diciembre de 2011, 19:05:23
el mismo circuito del post original, la unica diferencia es el cambio de pic

- alimentación toda a travez del puerto usb (el terminal 1 del terminal) que llega a los pines 32 y 11
- un led y una resistencia de 1k conectado entre al pin 20 que es el RD1/SPP1 y referencia
- los pines 31 y 12 a referencia
- un pulsador de punto central normalmente conectado a un alto a travez de una resistencia de 10k, en el pin 37 que es el RB4/AN11/KBIO/CSSP
- el pin 1 que es el MCLR/vpp/RE3 lo envio a un alto
- un resonador de 20 Mhz conectado entre los pines 13 y 14. En cada pin va conectado un capacitor de 20 pF que va a referencia

Si por favor pasame todo el material para el hardware y el software (compilador y bootloader) que tengas, a ver si puedo hallar el error
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: micro_cadaver en 24 de Diciembre de 2011, 10:06:55
el mismo circuito del post original, la unica diferencia es el cambio de pic

- alimentación toda a travez del puerto usb (el terminal 1 del terminal) que llega a los pines 32 y 11
- un led y una resistencia de 1k conectado entre al pin 20 que es el RD1/SPP1 y referencia
- los pines 31 y 12 a referencia
- un pulsador de punto central normalmente conectado a un alto a travez de una resistencia de 10k, en el pin 37 que es el RB4/AN11/KBIO/CSSP
- el pin 1 que es el MCLR/vpp/RE3 lo envio a un alto
- un resonador de 20 Mhz conectado entre los pines 13 y 14. En cada pin va conectado un capacitor de 20 pF que va a referencia

Si por favor pasame todo el material para el hardware y el software (compilador y bootloader) que tengas, a ver si puedo hallar el error

Pucha que raro, haber te mando mis archivos e intentalo otra vez pero desde cero para no estar caminando sobre el mismo posible error.

carpeta 4shared (http://www.4shared.com/folder/lQeUOBg4/pic18Fboot.html)
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: jrlc en 02 de Enero de 2012, 10:58:45
interesante tema, aunque me suena demasiado a PICAXE...  :-/
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: micro_cadaver en 02 de Enero de 2012, 11:25:55
interesante tema, aunque me suena demasiado a PICAXE...  :-/

Claro, justo estoy entrandole al PINGUINO CORE PIC18F4550 (http://wiki.pinguino.cc/index.php/Main_Page) y veras algunas similitudes con la inmensa ventaja que es open source y tiene soporte por la comunidad, osea nosotros  :-/

Feliz anio ñuevo!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LeugimZerO en 09 de Febrero de 2012, 18:00:04
hola micro_cadaver  :mrgreen:, luego de darle al C18 le entro a tu pinguino que me llama mucho la atencion, sigue asi  ((:-)), saludos
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: ESCBTIS en 30 de Mayo de 2012, 13:49:17
MUY BUENAS TARDES
DE ACUERDO AL TEMA ME PARECE INTERESANTE
VEO QUE YA HICIERON UNPROGRAMA  EN CCS Y NO SE BORRA EL BOOTLOADER
ALGUIEN TIEN  EL PROGRAMA PARA MIRKOC NO ES EL BOOTLOADER
ES EL PROGRAMA DE APLICACION
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 30 de Mayo de 2012, 14:46:48
Revisa el siguiente tema, puede que te ayude: http://www.mikroe.com/forum/viewtopic.php?t=7370


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: JpSID en 25 de Junio de 2012, 16:42:25
Hola  :) , me gustó mucho este hilo y me esta siendo de mucho utilidad :-/, pero tengo una pequeña duda :?, la cual es sobre si es necesario la conexión de un pulsador en el pin RB4 del pic18f4550 (disculpen si es que ya se hablo sobre este tema en los comentarios). Por lo que leí, este pulsador se usa para entrar en modo bootloader, ademas el led en el pin RD4 podria ser conectado a otro pin??, esas son las dos dudas que tengo,el motivo de esto es porque estoy diseñando un pcb y esos pines ya estan siendo usados :(, gracias, saludos!! :mrgreen:
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 25 de Junio de 2012, 17:43:47
El pulsador es necesario para entrar al modo bootloader, así que se necesita  ;-) En el archivo  io_cfg.h podes configurar donde colocar el led y el pulsador .


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: xiran en 12 de Julio de 2012, 00:38:46
Hola a todos, estoy super emocionado con el tema de este link, yo manejo niple para generar mi codigo, he estado buscando por toooodos lados como adaptar mi codigo al bootloader, obviamente esto en el asm q me genera niple, a través de mplab. Se q esta pregunta tal vez deberia ir x alla, pero siento q los expertos en btldr podrian echarme una mano con esto, usé el btldr de la pagina 1, el demo 1 y 2, no me funcionan, supongo q por falta de los demas componentes, pero el btldr si q lo reconoce.
Entonces, solo quisiera saber, q lineas agregar para q mi codigo no pise la zona del btlr, y respetando tambien, los vectores de interrupciones.
Sin mas, les agradesco su tiempo, anexando el encabezado del codigo q me genera niple del asm:
;------------------------------------------------------------
; Código assembler generado por Niple V5.6.0
; Proyecto: simple led
; Autor: Iran Espinoza
; Fecha: 03/07/2012
; PIC: 18F4550
; Velocidad de reloj: 20 Mhz
; Descripcion: 
;------------------------------------------------------------


 LIST    P=PIC18F4550


_PLLDIV_1             equ  0xF8
_CPUDIV_OSC1_PLL2     equ  0xE7
_USBDIV_1             equ  0xDF
_FOSC_HS              equ  0xFC
_FCMEN_OFF            equ  0xBF
_IESO_OFF             equ  0x7F
_PWRT_ON              equ  0xFE
_BOR_OFF              equ  0xF9
_BORV_0               equ  0xE7
_VREGEN_ON            equ  0xFF
_WDT_OFF              equ  0xFE
_WDTPS_1              equ  0xE1
_MCLRE_OFF            equ  0x7F
_LPT1OSC_OFF          equ  0xFB
_PBADEN_OFF           equ  0xFD
_CCP2MX_OFF           equ  0xFE
_LPT1OSC_OFF          equ  0xFB
_STVREN_OFF           equ  0xFE
_LVP_OFF              equ  0xFB
_ICPRT_OFF            equ  0xDF
_XINST_OFF            equ  0xBF
_DEBUG_OFF            equ  0xFF
_CP0_OFF              equ  0xFF
_CP1_OFF              equ  0xFF
_CP2_OFF              equ  0xFF
_CP3_OFF              equ  0xFF
_CPB_OFF              equ  0xFF
_CPD_OFF              equ  0xFF
_WRT0_OFF             equ  0xFF
_WRT1_OFF             equ  0xFF
_WRT2_OFF             equ  0xFF
_WRT3_OFF             equ  0xFF
_WRTB_OFF             equ  0xFF
_WRTC_OFF             equ  0xFF
_WRTD_OFF             equ  0xFF
_EBTR0_OFF            equ  0xFF
_EBTR1_OFF            equ  0xFF
_EBTR2_OFF            equ  0xFF
_EBTR3_OFF            equ  0xFF
_EBTRB_OFF            equ  0xFF
_config1l             equ  0x300000
_config1h             equ  0x300001
_config2l             equ  0x300002
_config2h             equ  0x300003
_config3h             equ  0x300005
_config4l             equ  0x300006
_config5l             equ  0x300008
_config5h             equ  0x300009
_config6l             equ  0x30000a
_config6h             equ  0x30000b
_config7l             equ  0x30000c
_config7h             equ  0x30000d

 __config _config1l, _PLLDIV_1 & _CPUDIV_OSC1_PLL2 & _USBDIV_1
 __config _config1h, _FOSC_HS & _FCMEN_OFF & _IESO_OFF
 __config _config2l, _PWRT_ON & _BOR_OFF & _BORV_0 & _VREGEN_ON
 __config _config2h, _WDT_OFF & _WDTPS_1
 __config _config3h, _MCLRE_OFF & _LPT1OSC_OFF & _PBADEN_OFF & _CCP2MX_OFF
 __config _config4l, _STVREN_OFF & _LVP_OFF & _ICPRT_OFF & _XINST_OFF & _DEBUG_OFF
 __config _config5l, _CP0_OFF & _CP1_OFF & _CP2_OFF & _CP3_OFF
 __config _config5h, _CPB_OFF & _CPD_OFF
 __config _config6l, _WRT0_OFF & _WRT1_OFF & _WRT2_OFF & _WRT3_OFF
 __config _config6h, _WRTB_OFF & _WRTC_OFF & _WRTD_OFF
 __config _config7l, _EBTR0_OFF & _EBTR1_OFF & _EBTR2_OFF & _EBTR3_OFF
 __config _config7h, _EBTRB_OFF


;------------------------------------------------------------
;                  Declaración de Registros
;------------------------------------------------------------
w                     equ  0x0000
_np_tiempo            equ  0x0001
_np_tiempo1           equ  0x0003
_np_tiempo2           equ  0x0004
_np_tiempo3           equ  0x0005
porta                 equ  0x0f80
portb                 equ  0x0f81
portc                 equ  0x0f82
portd                 equ  0x0f83
porte                 equ  0x0f84
lata                  equ  0x0f89
latd                  equ  0x0f8c
late                  equ  0x0f8d
trisa                 equ  0x0f92
trisb                 equ  0x0f93
trisc                 equ  0x0f94
trisd                 equ  0x0f95
trise                 equ  0x0f96
adcon2                equ  0x0fc0
adcon1                equ  0x0fc1
adcon0                equ  0x0fc2
status                equ  0x0fd8
bsr                   equ  0x0fe0
pclath                equ  0x0ffa


;------------------------------------------------------------
;                  Declaración de Bits
;------------------------------------------------------------
adon                  equ  0   ;
c                     equ  0   ;
rd1                   equ  1   ;
vcfg0                 equ  4   ;
vcfg1                 equ  5   ;
z                     equ  2   ;


;------------------------------------------------------------
;               Declaración de Registros EEPROM
;------------------------------------------------------------


;------------------------------------------------------------
;                        Inicio
;------------------------------------------------------------

   org 0x00
   goto paso2


;------------------------------------------------------------
;                      programa principal
;------------------------------------------------------------
paso2
   movlb .0                         ;cambiar al banco 0
   clrf _np_tiempo,1
   clrf _np_tiempo1,1


Les agradesco cualquier dato, y si alguien me hace alguna referencia, o donde buscar, yo le busco x ahi, saludos a todos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: xiran en 03 de Agosto de 2012, 21:16:23
Alguien q pueda echarme una mano con la cuestión a puse? Gracias a todos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 03 de Agosto de 2012, 21:38:31
Debes en los vectores de interrupción y reset hacer un goto a los vectores re-mapeados del bootloader (más información leer todo el hilo) y proteger los primeros 0x1000 bytes de código.


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: xiran en 05 de Agosto de 2012, 03:33:03
Muchísimas gracias por responder, he leído todo el hilo, y estoy confundido precisamente con esos 2 valores, crees q, abusando un poquito de tu tiempo, pudieras ponerme ese pequeño código q necesitaría en asm? Es q veo q lo hacen en c18, pero no he visto el asm, muchas gracias de antemano.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: xiran en 19 de Agosto de 2012, 00:48:16
Hola, alguien q pudiera orientarme en la pregunta anterior¿ Solamente q me comente como tengo q ponerlo en asm, saludos.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: BEXTIXTOX en 23 de Agosto de 2012, 13:18:17
UFF...
 me perdi por completo durante un tiempo y ahora regreso pero veo este tema nuevo y por supuesto de mi interes pero entre tantos linck no se por cual irme ¿cual es el bueno? todos
bueno tengo el ccs 4.134
proteus 7.9
labview 2012
pic 18f4550
y quiero hacer el bootloader con ccs y labview
alguien tiene informacion que me puedan pasar para trabajar con ccs???
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 23 de Agosto de 2012, 14:20:35
Hola, alguien q pudiera orientarme en la pregunta anterior¿ Solamente q me comente como tengo q ponerlo en asm, saludos.

Yo creería que es así:

Código: ASM
  1. org 0x00
  2. goto 0x1000
  3. org 0x08
  4. goto 0x1008
  5. org 0x18
  6. goto 0x1018
  7.  
  8. org 0x1000
  9. goto Inicio
  10. org 0x1008
  11. ; Interrupcion...
  12. org 0x1018
  13. ;interrupcion...
  14.  
  15. Inicio:
  16. ; de aquí en adelante tu código.

UFF...
 me perdi por completo durante un tiempo y ahora regreso pero veo este tema nuevo y por supuesto de mi interes pero entre tantos linck no se por cual irme ¿cual es el bueno? todos
bueno tengo el ccs 4.134
proteus 7.9
labview 2012
pic 18f4550
y quiero hacer el bootloader con ccs y labview
alguien tiene informacion que me puedan pasar para trabajar con ccs???

El bootloader ya tiene su propia aplicación, dentro de la carpeta \USB\Device - Bootloaders\HID están los códigos fuente en C++ como para verlos y ver como es el protocolo implementado para enviar los datos (USB HID).

Bajando de aquí (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784) Microchip Application Libraries tienes la ultima versión disponible.


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: BEXTIXTOX en 25 de Agosto de 2012, 12:40:29
GRACIAS zuky
pero aun perdido.. ya tengo la descarga y la carpeta que mencionas pero estoy WHAT!!!
no se me hace familiar ningun archivo pues creo es por que estan echos con MPLAB y cn C++
y yo manejo CCS y LABVIEW aunque lo que mas me interesa es estudiar el PROGRAMITA DEL PIC pero en lenguaje CCS y por parte de la PC me las arreglo con LABVIEW
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Suky en 25 de Agosto de 2012, 12:55:31
Bueno, pero entonces que intentas hacer? El bootloader ya esta hecho y tiene su aplicación para utilizarlo. Entonces puedes dejarlo así y tu solo implementarlo. No se bien si entiendes que es un bootloader?

Ahora si tu quieres hacer la aplicación en LabView para enviarle al microcontrolador el HEX a programar, entonces si necesitas ponerte a leer bastante. Ver como es que interactuan las dos cosas, el bootloader del PIC con la aplicación hecha en C++, o sea de que modo es que se envían los datos para grabarlo y para leerlo.


Saludos!
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Gnewton en 22 de Marzo de 2013, 11:25:58
Hola a todos.
Me presento en el foro y reviso este tema que he leído por completo con entusiasmo.
Hace unos días fabriqué una placa similar a la que aquí se explica, partiendo de este link http://www.forosdeelectronica.com/f24/algunos-proyectos-avanzados-microcontroladores-pic-78040/
Pero aunque pude grabar programitas en el PIC mediante un programador externo y funcionan bién, no logré que la PC reconozca la placa al conectarla al puerto USB.
Probé grabarle todos los .hex que aconsejaban y nada.
Luego encontré este foro y agregué a mi placa otro pulsador al puerto RB4 para usar el .hex mencionado aquí. Presiono ambos botones soltando el reset primero y nada...
En cuanto al esquema de componentes, la única diferencia que veo es que en el de este foro el MCLR va directo a VDD y yo tengo una resistencia de 10k.
Podrá ser esa resistencia el problema?
Gracias.
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: LABmouse en 27 de Marzo de 2013, 17:46:53
Hola Gnewton,

No logro ver el esquemático en el link que das. Puedes adjuntarle acá mismo?
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Marito_26 en 01 de Junio de 2013, 02:01:38

  Funciona muy bien lo del bootloader...............pero....... hay manera de entre solo usando el boton RESET, sin necesidad de usar otro boton mas?


Lo tengo funcionando asi con presionar A1 y RESET, pero solo quiero RESET.

Código: C
  1. void iniciar_bootloader(void)
  2.    {
  3.       g_InBootloader = TRUE;
  4.       usb_cdc_init();
  5.       usb_init();
  6.       while(!usb_enumerated());
  7.       load_program();
  8.    }
  9.  
  10. void main(void)
  11. {
  12.   #if (defined(__USB_87J50__) && (getenv("FUSE_SET:H4_SW")))
  13.    #byte OSCTUNE = 0xF9B
  14.    #bit PLLEN=OSCTUNE.6
  15.    PLLEN = TRUE;
  16.    delay_ms(250);
  17.   #endif
  18.  
  19.    //we use PIN_A4 as an event to determine if we should start the USB CDC
  20.    //bootloader.  if it is not low (button is not pressed) then goto the
  21.    //application, else if is low (button is pressed) then do the bootloader.
  22.    if(!input(PIN_A1))
  23.    {
  24.     iniciar_bootloader();
  25.    }
  26.    g_InBootloader = FALSE;
  27.    
  28.   #ASM
  29.    goto APPLICATION_START
  30.   #ENDASM
  31. }
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: alberto0265 en 14 de Junio de 2013, 22:07:23
Hola a todos vengo con una consulta,he probado todos los remapeos que estan en el hilo y no pude hacer funcionar mi programa.
Les comento tengo el  hid booloader cargado en un pic18f4550,cuando cargo el programa que tambien tiene una comunicacion en
visual C# y la comunicacion con el pic es hid en el pic no se manifiesta nada.
Mi version de ccs es 4.110 y si la vajo mi programa no se compila porque ya se a probado en otro foro.
Les agradecere su atension
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: facundo598 en 28 de Julio de 2013, 19:37:23
Hola a todos.. he estado leyendo este post y con el esquema aki mencionado arme una plaquita y a la hora de compilar con el mplab no compila por el siguiente error, siempre q m aparecen los archivos extencion .o m dan dolores de cabeza.. jee... no entiendo mucho pero el archivo que me pide o menciona el "lib/c018i.o" esta en la carpeta lib y bueno de ahi no se q mas hacer .. si alguien m podria ayudar estaria agradecido..
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Users\facu\Documents\Digi2\100_Bootloader 4550\boot.o".
Clean: Deleted file "C:\Users\facu\Documents\Digi2\100_Bootloader 4550\boot4550.mcs".
Clean: Done.
Executing: "C:\Program Files\Microchip\mplabc18\v3.40\bin\mcc18.exe" -p=18F4550 /i"C:\Program Files\Microchip\mplabc18\v3.40\h" "boot.c" -fo="C:\Users\facu\Documents\Digi2\100_Bootloader 4550\boot.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
MPLAB C18 v3.40 (feature limited)
Copyright 2000-2011 Microchip Technology Inc.
This version of MPLAB C18 does not support the extended mode
and will not perform all optimizations.  To purchase a full
copy of MPLAB C18, please contact your local distributor or
visit buy.microchip.com.

Executing: "C:\Program Files\Microchip\mplabc18\v3.40\bin\mplink.exe" /p18F4550 /l"C:\Program Files\Microchip\mplabc18\v3.40\lib" /k"C:\Program Files\Microchip\mplabc18\v3.40\bin\LKR" "..\..\..\..\..\Program Files\Microchip\mplabc18\v3.40\bin\LKR\18f4550_g.lkr" "boot.o" /u_CRUNTIME /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"C:\Users\facu\Documents\Digi2\100_Bootloader 4550\boot4550.cof" /M"C:\Users\facu\Documents\Digi2\100_Bootloader 4550\boot4550.map" /W
MPLINK 4.40, Linker
Device Database Version 1.3
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - could not find definition of symbol 'main' in file 'C:\Program Files\Microchip\mplabc18\v3.40\lib/c018i.o'.
Errors    : 1

Link step failed.
----------------------------------------------------------------------
Debug build of project `C:\Users\facu\Documents\Digi2\100_Bootloader 4550\boot4550.mcp' failed.
Language tool versions: mpasmwin.exe v5.37, mplink.exe v4.40, mcc18.exe v3.40, mplib.exe v4.37
Preprocessor symbol `__DEBUG' is defined.
Mon Jul 29 00:29:23 2013
----------------------------------------------------------------------
BUILD FAILED
Título: Re: Bootloader USB para PIC18F4550 a full.
Publicado por: Fer_TACA en 01 de Abril de 2014, 15:20:12
Hola,
debido a los problemas que tengo a la hora de grabar un programa en un determinado tipo de pics, estoy estudiando la posibilidad de montar un bootloader a mi diseño para recargar programas de usuario.

En mi diseño, en vez de usar  el pin RB4 como activación del bootloader, como se indica en estos post, uso el pin RC1.
Me he leído todo este tema a si como otros similares para ver si hay una compilación realizada apropiada para es pin y no la he visto.
El problema es que supongo que se puede modificar el original cambiar ese dato y volver a compilar, pero de "C" ya que me supongo que esta realizado en ese lenguaje, no tengo ni idea.
me podrían decir donde o como podría obtener ya el hex para ese pin RC1 y para ser usado en un pic 16F4550 por USB-
Muchas gracias por anticipado por su inestimable ayuda.
Título: Re:Bootloader USB para PIC18F4550 a full.
Publicado por: Hernandiaz03 en 12 de Enero de 2016, 00:33:22
hola, me gustaria aprender sobre pics y para ello como proyecto tengo hacer una board de entrenamiento, pero debido a que no tengo pickit, pensaba pedirle el favor a alquien que me pusiera usb bootloader en un 18f2550 y asi trabajar con ella, pero quisiera trabajar lo mas fiel y parecido a como lo haria con pickit, por lo que he descartado los pinguino.

alguien podria compartirme informacion util para este fin? o alguna recomendacion?


Gracias
Título: Re:Bootloader USB para PIC18F4550 a full.
Publicado por: agauss en 09 de Diciembre de 2016, 12:58:20
Hola buen día compañeros del foro, resulta que estoy haciendo la prueba del bootloader PDFSUSB programando en CCS y tal como lo indica Scientist, añadiendo estas lineas al código fuente, es posible usar dicho boot con el entorno de CCS.

#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// END OF bootloader definition

Todo bien hasta que he querido usar las interrupciones en CCS, en este caso el programa no funciona, el programa se pierde en algún punto y se congela. ¿Alguien a tenido este problema y lo ha podido resolver?, ¿sera acaso que tendría que hacerse alguna modificación en el remapeo de las direcciones para las interrupciones?. Si alguien tiene información al respecto, espero quiera compartirla. Saludos...
Título: Re:Bootloader USB para PIC18F4550 a full.
Publicado por: KILLERJC en 09 de Diciembre de 2016, 13:11:38
Lo feo es que CCS posee una interrupcion para cada cosa. Si pudieras ubicar un goto 0x0808 y 0x0816 en las direcciones 0x08 y 0x16 seria lo ideal.
Me refiero al bootloader ( y suponiendo que el bootloader no use las interrupciones ).