Autor Tema: bootloader y ENC28J60  (Leído 1441 veces)

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

Desconectado JuanjoPic

  • PIC12
  • **
  • Mensajes: 97
bootloader y ENC28J60
« en: 07 de Noviembre de 2017, 14:27:09 »
Hola compañeros, bueno me compre un  ENC28J60 y he buscado información en el foro para poder utilizarlo pero lo que siempre leo es que lo utilizan con un pic que almacena una web y cosas asi.
Me gustaría saber si puedo utilizar ese modulo para conectarlo a una red lan y poder programar el pic mediante el  ENC28J60.
Para hacer algo asi debería cargar un bootloader para poder programar el pic. Se que el  ENC28J60 es una interface SPI a ethernet, entonces debería buscar un bootloader que permitiera que el puerto SPI programe la memoria (¿Estoy en lo correcto ono?).

¿Se puede hacer algo asi?
(si la respuesta es si) ¿que pic podría utilizar? (alguna experiencia en algo así me seria útil)
(si la respuesta es no)¿por que no se puede?

Cualquier información me sera util.

Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:bootloader y ENC28J60
« Respuesta #1 en: 07 de Noviembre de 2017, 14:42:41 »
Necesitarias primero implementar un stack TCP/IP. Ya que el ENC solo se encarga del MAC/PHY

Ya con eso te podras comunicar via TCP o UDP al PIC. Cuando recibe alguna trama en especial lo podes poner en modo booteo para que grabe.

Tu bootloader deberia tener el stack TCP/IP, asi que mientras mas cosas tenga el stack mas espacio ocupa el bootloader. De alli lo que hagas con los datos es cuestion tuya. Ejemplo si estan cifrados, los descifras y comenzas a grabar.

Asi que lo primero seria crear una conexion de datos, mejor por UDP que es mas "sencillo" el protocolo. Y una ves que funcione esto, le agregas el codigo que deseas que realize.

Citar
(si la respuesta es si) ¿que pic podría utilizar? (alguna experiencia en algo así me seria útil)

No poseo experiencia, pero buscaria uno con una buena Flash, ya que el bootloader no va a ser tan pequeño como el de una UART. Pero de todas formas comenza diseñandolo para algun PIC18 y luego en caso de que te parezca poco el espacio pasas a otro mas PIC18 mas grande. O segun tu aplicacion si pensas ir mas alla un PIC24, o directamente un PIC32 :P

Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 257
Re:bootloader y ENC28J60
« Respuesta #2 en: 07 de Noviembre de 2017, 15:57:12 »
Para evitar que el bootloader ocupe espacio al implementar el stack TCP/IP o UDP/IP, lo podrías hacer en dos pasos.

1.- Guardas el nuevo firmware en una memoria Flash SPI y reinicias el PIC
2.- El bootloader verificará la existencia de un nuevo firmware en la memoria flash
2.1.- Si hay. entonces lo copias a la flash interna y al finalizar borras el contenido de la memoria Flash externa
2.2.- Reinicias el PIC

Además, estas memorias tienen una capacidad de almacenamiento considerable, que la podrías usar para almacenar configuraciones, datos e incluso una páginas web. Tan sólo particionas la memoria en dos partes: Datos, FirmwareUpgrade

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:bootloader y ENC28J60
« Respuesta #3 en: 07 de Noviembre de 2017, 21:59:55 »
Pero recibir es si o si desde el ENC28J60, por lo cual va a necesitar el stack TCP/IP. Sino llevaria a que si o si tengas el stack TCP/IP implementado en tu programa. Y de olvidartelo de poner terminarias con utilizar ICSP o un grabador de flash por SPI, ya que no vas a poder enviarle nunca mas la actualizacion por Ethernet.



 

anything