Si grabas tu programa directamente con la placa programadora, probablemente estás borrando el bootloader.
Graba otra vez el bootloader y podemos hacer pruebas a ver porqué tu programa de aplicación no funciona.
Para comenzar, creo que deberías probar que el bootloader funciona con un programa muy sencillo que hace parpadear todos los pines de RA y RB y envía caracteres por la USART a la misma velocidad a la que esté configurado el Bootloader:
Busca Blink Test en este archivo:
Firmware para PIC18F2550También adjunto el programa hex con este mensaje.
Si esto funciona, el problema en tu aplicación puede deberse a:
1.- El programa necesita un salto en la dirección 0
Prueba a poner el origen del programa en la dirección 20h
2.- Los fuses del programa son distintos a los fuses del bootloader
El bootloader no graba la configuración de los fuses, hay que adaptarse a la configuración del bootloader.
También se puede cambiar la configuración a mano con los "códigos iniciales" del tiny pic bootloader siempre que no interfieran con el bootloader.
3.- Inicialización
Cuando el bootloader salta al programa de aplicación, mantiene la configuración de la usart, oscilador, etc,
Esta configuración es diferente a la configuración que hay después del reset.
Saludos.