Hola a todos!! por fin después de bastante tiempo, puedo decir que mi pequeño servidor web esta listo, y comienza una nueva fase que es la fase de experimentar con el. Si habéis seguido el blog, desde hace tiempo, en una serie de entradas que podéis encontrar con la etiqueta Servidor Web, he estado contando como he diseñado un servidor web desde cero, el cual, lleva un PIC18LF4685 como núcleo central. Este microcontrolador, es un micro de gama media-alta de 8 bits, el cual he elegido porque dispone de 96k de memoria de programa. En la primera de las entradas fijamos unos objetivos, de los cuales unos se han conseguido, pero otros no, y en las siguientes entradas os expliqué como diseñar la parte del firmware que llevará dentro nuestro microcontrolador. Todos estos avances, aunque no os lo he mostrado, los estaba verificando sobre una placa de board de prototipos, en la cual estaba montado el micro, y una break-board que contenía toda la circuitería del controlador Ethernet ENC28j60. Este tipo de montaje está muy bien para probar, pero no para experimentar a fondo, así que, si ya teníamos los materiales, y habíamos preparado el firmware del circuito lo único que nos faltaba es llevar nuestro proyecto a una PCB.
Evidentemente, ya que vamos a fabricar una placa, lo ideal sería que tanto la parte del microcontrolador, como la parte del controlador Ethernet estuvieran montados ahí. La parte del microcontrolador no entraña ninguna dificultad, es simplemente el micro, y algunas entradas y salidas, todo esto corriendo con un oscilador de 10MHz, la parte más complicada del diseño, y que tenia dudas de que funcionara es la parte del ENC. En la siguiente figura os muestro el esquema de conexión que podemos encontrar en su datasheet.
Como ya os dije, un elemento fundamental de nuestra placa es el conector Ethernet, y este , tal y como vemos en el esquema, necesitamos que disponga de transformadores de aislamiento, y así ha sido, por lo que nuestro trabajo d diseño, comienza desde los transformadores hacia la izquierda. lo primero que vemos es una bonina que viene nombrada como Ferrite Bread, que tal y como nos dice en la nota 3 sirve para eliminar interferencias. Como no encontré un valor claro por ningún sitio, y había leído que era un elemento prescindible, así he hecho, por lo que no la encontrareis en mi diseño. Si seguimos mirando hacia la izquierda, el otro elemento que llama la atención, son las resistencias de 49,9 con una tolerancia del 1%. Estas resistencias, aunque las encontré por internet, y puesto que no son más que resistencias de pull-up y pull-down, decidí sustituirlas por dos resistencias en serie, una de 10 y otra de 39, con lo que tengo unas resistencias de 49 ohms, eso si, con una tolerancia del 1%. Y si bajamos la vista un poco, vemos una resistencia de 2,32k, que al igual que las otras he sustituido por dos resistencias de 2k2 y 120 ohms, lo que hacen 2k32, que es lo que nos pide. Los leds, en mi caso, van incluidos en el conector, y las resistencias son de 220 ohms. Por último, como estoy utilizando un PIC de la serie LF, y lo alimento con 3,3 voltios, el Level Shift Logic no es necesario.
Cualquiera podría pensar que, tomando todas esas suposiciones, es muy difícil que el proyecto funcione, y así pensaba yo también, aunque no siempre las cosas son como esperamos!! y para no haceros esperar más, a continuación teneis unas fotos de mi SERVIDOR WEB. En primer lugar teneis una foto de como quedó el PCB recién pasado por el ácido.
Y a continuación, tenéis una foto del servidor completamente montado.
Como veis, tenemos el PIC arriba, y perpendicular a este tenéis el ENC, ambos con encapsulado PDIP. Y por último un video de funcionamiento.
Bien, por último os quiero contar una serie de problemas que he tenido y como los he solucionado, en primer lugar, había un pequeño error en el esquema inicial, por lo que la fuente de alimentación de 3,3 voltios integrada no funciona bien, de hecho en el video veis una mini placa que hay con un regulador, ese problema en los archivos que os adjunto está solucionado, otra cosa que pasaba es que el servidor no funcionaba siempre, es decir, lo conectaba una vez y funcionaba, y a los 2 minutos los volvía a conectar y no funcionaba, esto, en principio, lo he achacado a que en un primer momento estaba habilitado el AUTO_IP, de forma que es mi PC es que le da la IP, al quitarlo, y dejar preasignada la IP, el problema se ha solucionado y ahora funciona siempre. Como veis, la página web que utilizo en el video es la que había programado ya antes, por lo que solo manejo un led, además que la lectura de la temperatura es completamente errónea, ya que no hay nada conectado a esta, más adelante crearé una página web exclusiva para esta placa, y os dejaré el firmware completo para que lo podáis descargar, por ahora os voy a dejar el esquema utilizado y el PCB para que, si queréis, podáis fabricaros uno vosotros.
Por último deciros que aquí acaba la primera fase, y ahora que tengo una herramienta sólida con la que trabajar podré realizar diseños más complejos. También quiero dar las Gracias a mi novia Elena que me ha estado aguantando estos últimos días dejándome que le mostrara cada avance que conseguía.




