jueves, 7 de febrero de 2013

Servidor Web en 18F4550.

Desde que acabé el proyecto del servidor web, habéis sido muchos los que me habéis preguntado si mi código era válido para el microcontrolador 18F4550. Yo, hasta ahora, no lo había intentado porque como os comenté a cada uno que me lo preguntó, el microcontrolador que yo utilicé, cuadruplica la memoria del 4550, por lo tanto no estaba seguro de que tuviera espacio suficiente. Aún así, hace unos días hice las modificaciones que os he comentado a todos, el cambio de la configuración del PLL para funcionar a 48MHz, y la reasignación de pines, y después de que no hubiera ningún error de referencias no válidas y demás, esto es lo que he obtenido.
image
A la hora de que el compilador empieza a intentar meter el código en el microcontrolador, me arroja el error que veis arriba, y es que, el código no cabe en el microcontrolador…, para intentar solucionarlo, he cambiado la página web a una muy sencilla sin imágenes, tan solo con una línea de texto, y le he deshabilitado todos los módulos excepto el de servidor web, pero aún así no he conseguido hacerlo caber en el 4550.
Leyendo en foros de Microchip, todos dicen lo mismo que os estoy diciendo yo, y no solo eso, y esto no lo sabía hasta ahora, sino que recomiendan utilizar el PIC18F4685, que es el que he utilizado yo, así que si queréis hacer funcionar el servidor en un microcontrolador con encapsulado PDIP, tenéis pocas opciones 4620, 4685, 2620 y no se si alguno más. Esto que estoy diciendo es solo válido para el que intente utilizar el STACK TCPIP de MICROCHIP, CCS tiene otro diferente que desconozco si cabe. Otra cosa que podéis probar, es utilizar una versión más antigua del STACK, ya que según he leído estas ocupan menos, aunque aún así vais a tener que estar optimizando el código… en resumen, os recomiendo conseguir un PIC con más memoria para así ahorraros futuros problemas.

8 comentarios:

  1. disculpa, he desarrollado una aplicación similar utilizando estas librerías. tengo un problema, no me acepta múltiples usuarios. ¿sabes a que se debe el problema? ¿cual podría ser una solución?. cualquier ayuda es muy bien recibida.

    ResponderEliminar
  2. Excelente, me sacaste la duda si se podía utilizar.
    ---
    ¿Es lo mismo utilizar un modulo ethernet ya armado (http://3.bp.blogspot.com/-sU_c5tb8in4/UP0sqchQRMI/AAAAAAAACwo/UW9YfKoz8Ew/s1600/enc28j60.jpg) con el ejemplo del 4685 ?

    Por cierto, muy bueno tu blog.
    Saludos!!

    ResponderEliminar
    Respuestas
    1. Hola! disculpa por contestar tarde, no habia visto el comentario. Por supuesto que es lo mismo, de hecho las rimeras pruebas las hice con el módulo que tu tienes. debe funcionar sin problemas. Gracias! se hace lo que se puede!

      Un saludo.

      Eliminar
  3. Hola ando con un proyecto similar pero me podrías pasar el tuyo

    ResponderEliminar
    Respuestas
    1. Hola, el codigo lo tienes colgado en esta entrada del blog. http://mipsandchips.blogspot.com.es/2012/11/servidor-web-desde-cero-archivos.html
      Un saludo

      Eliminar
  4. Saludos Pablo, te escribo para consultarte algo referente al servidor web con el 18lf4685 y la ENC28j60... es en cuanto al oscilador del ENC28j60.... por lo que leí en el datasheet necesita 25 Mhz.. en el montaje que tu propones usaste un cristal de 25Mhz para el ENC20j60? o si usaste otro velocidad, me me podrias indicar por favor de que velocidad es?. En los diagramas no encontre por ningun lado referencia a ese cristal salvo la referencia Q2. Muchas gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Hola!, el oscilador ejectivamente es de 25 MHz, con otra velocidad no funcionaria correctamente. Gracias por pasarte!

      Un saludo

      Eliminar