Autor Tema: Bootloader 18F4550 RS232 Serie  (Leído 19860 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #15 en: 25 de Febrero de 2012, 19:33:19 »
¿Estás seguro de que funciona el hardware a 57600baud y el reloj a 20Mhz?

En caso contrario, comienza con PIC18F2550_i8Mhz_19200baud.hex

Funciona con el oscilador interno a 8Mhz (no necesita reloj externo)

Funciona a 19200 baud verdaderos (con poco error) que es una velocidad lenta que da menos problemas.

Otro problema que puedes tener es de hardware. Comprueba que las señales Tx y Rx se reciban y envíen correctamente con un terminal rs232 quitando el micro del zócalo y puenteando los pines correspondientes.

Saludos.
« Última modificación: 25 de Febrero de 2012, 19:45:31 por picuino »

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #16 en: 25 de Febrero de 2012, 19:54:15 »
Probé la comunicación RS232 PIC-PC y funciona. Le cargue un programa para enviar datos y los recibo correctamente en el terminal de la PC. Entonces el hard está ok.

Necesitaría que sea con 20MHz porque tengo la placa  armada con ese cristal


Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #17 en: 25 de Febrero de 2012, 20:31:57 »
Los 8Mhz funcionan con el oscilador interno, aunque tengas cristal externo de 20Mhz.

De todas formas estoy pensando que antes de intentar la comunicación con el PIC necesitas resetearle.
El bootloader sólo funciona durante el primer segundo posterior al reset. Si pasado ese tiempo no recibe comunicación por el RS232, entonces el bootloader termina y salta al programa de usuario.

Si no has cableado el cable RTS del RS232 al reset del PIC, entonces debes pulsar reset en el PIC mientras el programa del PC está buscando al micro.

Saludos.
« Última modificación: 25 de Febrero de 2012, 20:39:58 por picuino »

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #18 en: 25 de Febrero de 2012, 21:09:03 »
Estoy probando con el PIC18F2550_HS_20Mhz_19200baud, pero tampoco me conecta.

Uso un pulsador para forzar el reset

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #19 en: 26 de Febrero de 2012, 07:43:49 »
He probando el PIC18F2550_HS_20Mhz_19200baud y a mí tampoco me conecta reseteando a mano.

El caso es que conecta perfectamente cuando el reset lo produce el PC, pero con el reset a mano no hay forma.
No se si el problema estará en el programa del PC.

Por ahora te recomiendo que intentes producir el Reset con la línea RTS del RS232. Esto automatiza mucho el procedimiento:



De todas formas yo recuerdo haber reseteado a mano con este bootloader sin problemas.
Cuando descubra el problema lo posteo.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #20 en: 26 de Febrero de 2012, 13:03:47 »
Ya me funciona.
He comprobado el archivo PIC18F2550_HS_20Mhz_19200baud.hex  con un PIC18F2550 y con un PIC18F4550 y en ambos casos funciona correctamente.

El error que estaba cometiendo consistía en que estaba retirando el cable de TX en vez de el cable de Reset.

Con el cable TX y RX conectados (además de GND y Vdd) y sin el cable de Reset conectado, el bootloader funciona bien.

Mientras el programa del PC está buscando al microcontrolador hay que pulsar Reset en el microcontrolador.

Saludos.

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #21 en: 28 de Febrero de 2012, 09:50:54 »
Hola Picuino! He vuelto del descanso.

Te comento que he realizado las pruebas con el PIC18F2550_HS_20Mhz_19200baud.hex y tampoco he conseguido que funcione. Los pasos que hago son:

1) Monto el PIC18F4550 en mi placa programadora ICD2 USB y descargo el bootloader con el MPLab 8.8

2) Coloco el PIC en mi circuito, en el que el pueto serie tiene conectados los pines Tx, Rx, GND y Vdd.

3) Conecto la PC y el PIC, abro el tiny bootloader y doy la orden de buscar el PIC, en este momento pulso el reset del PIC... y no lo consigue detectar.

Puede ser que mi problema venga del windows 7 64 bits que estoy usando?

La comunicación entre PIC y Pc, con un programa que envía datos desde el PIC funciona de manera correcta.

Saludos!


Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #22 en: 28 de Febrero de 2012, 10:21:46 »
Voy a preparar un bootloader modificado para poder observar fallos.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #23 en: 28 de Febrero de 2012, 10:45:35 »
Adjunto bootloader de pruebas. Este bootloader no carga ningún programa en el microcontrolador, sólo comprueba que funcione correctamente la comunicación RS232 entre la aplicación bootloader del PC y el microcontrolador.

Velocidad de reloj = 8Mhz internos (no hace uso del oscilador externo de 20Mhz)
Velocidad de comunicaciones RS232 = 19200 baudios
Después de reset el puerto RA = 0

El puerto RA se utiliza para comprobar que se ejecutan las distintas fases del bootloader:
   RA0 = 1  Iniciado bootloader
   RA1 = 1  Iniciada la espera de recibir caracter por RS232
   RA2 = 1  Recibido al menos un caracter por el puerto RS232
   RA3 = 1  Bootloader finalizado después de esperar a recibir un caracter por el puerto RS232 y no recibir ningún caracter.
   RA4 = 1  Bootloader finalizado después de enviar por RS232 el código de microcontrolador y la letra 'K'

Una vez activada una salida del puerto RA, esta se mantiene activa hasta que se pulse reset.
Una vez finalizado el proceso de test el bootloader no salta al programa de usuario, se mantiene en un bucle indefinido hasta que se pulse reset.



EJEMPLO:
========
En caso de que funcione el bootloader y no reciba ninguna señal por el puerto RS232, los valores en el puerto A deben ser:
   RA0 = 1
   RA1 = 1
   RA2 = 0
   RA3 = 1
   RA4 = 0
Entonces deberías comprobar con un polímetro que llega alguna señal a la patilla RX (RC7) mientras envías datos por un terminal desde el PC.


Saludos.
« Última modificación: 28 de Febrero de 2012, 11:22:12 por picuino »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #24 en: 29 de Febrero de 2012, 17:56:38 »
Programa para testear comunicaciones RS232:

Programa test RS232

Este programa realiza un echo (devuelve todas las señales que llegan desde el RS232)
Para probar comunicaciones:
   1. Grabar el programa en el microcontrolador
   2. Abrir un terminal RS232
   3. Enviar una cadena de texto por el terminal
   4. Comprobar que el terminal recibe la misma cadena de texto desde el microcontrolador

   5. Apagar el microcontrolador
   6. Enviar una cadena de texto por el terminal
   7. Comprobar que NO LLEGA ningún dato desde el microcontrolador

Saludos

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #25 en: 01 de Marzo de 2012, 20:38:36 »
Picuino a que velocidad se debe configurar el terminal para testear la comunicación?

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #26 en: 02 de Marzo de 2012, 08:47:03 »
Hasta el momento no he logrado que detecte el PIC con el tinybootloader.

Lo que he conseguido es, cargando un programa con la programadora, recibir datos en el terminal del PC desde el PIC. Por lo que el hardware estaría funcionando bien
« Última modificación: 02 de Marzo de 2012, 08:49:54 por marito »

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #27 en: 02 de Marzo de 2012, 09:06:10 »
Picuino, para hacer la carga del bootloader en el PIC, tengo el programador ICD2-USB y el MPLAB v8.80.

En el MPLAB, importo el archivo .hex y luego doy la orden de program.

Te parece correcto este método?

No se me ocurre ninguna idea de cual puede ser el motivo de que no me funcione

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #28 en: 02 de Marzo de 2012, 11:04:43 »
El programa de test funciona para cualquier velocidad de comunicación hasta 115200 baudios y puede que más porque no utiliza la USART, simplemente copia la señal de un pin en otro pin:

Programa test. RS232 echo

Creo que te funciona bien el envío de datos PIC --> PC
Pero puede que esté fallando la recepción de datos PC --> PIC

El test te puede decir si funciona el RS232 en los dos sentidos.

Saludos.
« Última modificación: 02 de Marzo de 2012, 11:07:20 por picuino »

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Bootloader 18F4550 RS232 Serie
« Respuesta #29 en: 05 de Marzo de 2012, 08:35:13 »
Hola Picuino!

Para el bootloader necesito que la comunicación PC-PIC sea en ambos sentidos? PIC-->PC y PC-->PIC?