sábado, 17 de noviembre de 2012

Servidor Web desde cero. Archivos

Ya hace mas de un mes que terminé de diseñar y fabricar el servidor web que empecé a hacer aquí en el blog. En la última entrada, os conté como había hecho la placa y puse un vídeo del servidor funcionando. Hoy, para cerrar definitivamente esa fase, voy a poner todos lo archivos necesarios para que podáis hacer vuestro servidor. Los archivos son los que he utilizado yo, por lo que estan hechos para las características de mi servidor, un PIC18f4685 funcionando con un oscilador a 20MHz, leds conectados al puerto E del PIC, ..., aunque supongo que no tendréis mayores problemas para poder adecuarlos a vuestros sistemas.
Algunos de los códigos que hay en el proyecto ya los habéis ido viendo a lo largo de las entradas en las que he hablado del servidor, aunque quizás han sufrido alguna modificación de ultima hora. Los archivos que pongo son totalmente funcionales, y deberían compilar sin mayor problema, una vez le hayamos dicho a nuestro compilador donde encontrar los archivos que necesita. Espero que los disfrutéis.

Proyecto:                                                                 ServidorWEB_P_Trujillo_MIPSANDCHIPS.rar

Placa Componentes:
 

Placa PCB:


Esquema:

Si tenéis algún problema con alguno de los archivos, dejad un comentario e intentaré solucionarlo.

102 comentarios:

  1. Felicitaciones... me parece un exelente trabajo. muy detallado y entendible incluso para aquellos que somos expertos en el area. solo tengo una pregunta ¿cual es el archivo que debo alojar en el micro?.... jeje un poco de ayuda sobre como comenzar me haría bien.

    ResponderEliminar
    Respuestas
    1. pues el archivo que hay que meter dentro del micro es el .hex. aunque si abres el proyecto con el MPLAB, desde ahi puedes programar el micro directamente. Gracias por las felicitaciones.

      Un saludo.

      Eliminar
  2. jeje que NO somos (corrijo)

    ResponderEliminar
  3. Bueno dias, primero debo felicitarte por tan buen y comnpleto trabajo. Despues me gustaria me resolvieras estas dudas:

    1.- De momento solo cuento con este Pic18f4550, ya compre todo pero no hubo el pic que tu usaste. hay que modificar mucho?
    2.- Tampoco consegui el DCJ0202, puedo sustituirlo por uno similar?

    Ya consegui todo meno esos dos articulo.



    Salu2

    ResponderEliminar
    Respuestas
    1. Hola Ángel, lo primero decirte que si quieres utilizar el PIC18F4550 la placa que yo diseñé no vale, ya que el 4550 lleva puerto USB, y los pines del canal SPI difieren. En cuanto al conector DCJ0202, es un simple jack para alimentar la placa, por lo que puedes poner otro y no habrá problemas, siempre y cuando mantengas la polaridad... Sobre las modificaciones que hay que hacer en el codigo para utilizar el 4550, ya las he comentado por aquí, son basicamente en la frecuencia de reloj, ya que el PLL que lleva el 4550 se configura diferente por el USB, y como he dicho, la asignación de pines del puerto SPI hay que cambiarla tambien.
      Como veo que sois muchisimos los que queréis utilizar el 18f4550, cuando tenga tiempo, esta semana o la que viene, colgaré el proyecto para ese micro.
      Un saludo y gracias!!!

      Eliminar
  4. Estaria muy bien esa modificacion ya que el pic que utilizaste originalmente ni en www.mouser.com lo tienen jajajaja eso si es para asustar.

    He estado checando bien tu blog y le encuentro cada vez mas cosas utiles.

    Es raro encontrar gente que tenga el deseo de compartir conocimiento sin recibir nada a cambio o solo un gracias. Te agradezco la tarea que te estas tomando con este blog me va a ayudar de mucho porque estoy a poco tiempo de empezar un proyecto con un pic32MX custom board el cual pretendo que controle mis acuarios pienso automatizar el mantenimiento y este blog es buen comienzo en especifico el servidor web.

    salu2

    ResponderEliminar
    Respuestas
    1. La utilización del PIC18f4685, viene más que nada por la memoria que tiene, que triplica la del 4550, por eso no tengo muy claro que quepa, a ver si esta semana puedo hacer las modificaciones y pruebo. Lo probaré con un 18f2550 que es similar al 4550, ya que de este tengo una placa de desarrollo y me facilitará bastante el montaje.
      Me alegro que el blog te esté siendo de ayuda!, PIC32 ya son buenos microcontroladores, y seguiré escribiendo sobre ellos ya que son unos micros con muchas posibilidades.

      Un saludo!

      Eliminar
  5. Es un trabajo muy bueno el que haces Bro felicitaciones oye quisiera preguntarte si este serviría conectando el cable de ethernet a un módem inalámbrico y simplemente con conectarme a la pagina del servidor creado ver la obtención de los datos y el control del pic saludos y muchas gracias.

    ResponderEliminar
    Respuestas
    1. Hola! creo que te he respondido a ti en Youtube no? bueno como te he dicho ahí, no se si con modem te refieres a router, si es así tu puedes conectar el servidor a tu router wifi, e introduciendo su ip local en el navegador de cualquier ordenador de la misma red accederias al PIC. Si quisieras conectarte desde fuera de tu red, necesitarias saberla IP pública que te ha asignado tu ISP, y configurar bien el router para que deje entrar conexiones desde fuera.

      Gracias por pasarte.

      Pablo.

      Eliminar
  6. Hola q tal amigo muy buen aporte pero tengo una duda, que archivo tengo que abrir para poder editar el programa en para el PIC

    ResponderEliminar
    Respuestas
    1. Hola Alexis, bueno pues depende de lo que quieras modificar... si lo que quieres es cambiar la configuración debes modificar bien el hardware_profile.h, o bien el tcpipconfig.h, que quieres modificar exactamente?
      gracias por pasarte!!

      Pablo.

      Eliminar
  7. PIC18LF4685 PIC18F4685 o utilizado para este proyecto?

    Para leer el pic pines OS, CS e INT, utilizan algunos tampón? Cómo conectar los pines del módulo a la PIC?

    El cristal utilizado fue 10Mhz o 20Mhz?

    ResponderEliminar
    Respuestas
    1. los LF so iguales que los F, solo que trabajan con tensiones menores, en este caso trabaja con 3,3 voltios. No se a que te refieres con tampón... solo tienes que conectar al pic los pines del SPI, SDI, SDO y CS, WOL e INT no hace falta que los conectes. El cristal es de 10MHz.

      Pablo.

      Eliminar
  8. Sí, yo uso 18F4685 y Vcc = 3.3V?
    ¿O debería usar Vcc = 5V PIC18F4685 y ENC28J60 aliementar con 3.3v?

    ResponderEliminar
    Respuestas
    1. el pis 18F4685 necesita al menos 4,2 voltios para funcionar (página 418 del datasheet). En el caso que comentas, dos alimentaciones diferentes deberias adaptar las tensiones del pic hacia el enc, ya quela tension en los pines del enc debe ser como mucho de 3.6, con un divisor bastaría. En el caso contrario, del enc al pic no hay problema porque los 3v3 ya los detecta como un uno lógico.
      Un saludo.

      Eliminar
  9. ¿Puedo alimentar PIC18F4685 con Vcc = 5V?
      y ENC28J60 Ethernet escudo con 3.3v?
    Sin ningún problema?

    ResponderEliminar
    Respuestas
    1. como te he dicho arriba en principio si, lo unico que debes hacer es poner un divisor de tensión en el pin SDO del pic de form que bajes de los 5 voltios del pic a 3.3, para no dañar el ENC
      Un saludo.

      Eliminar
    2. Así que uso Vcc = 5V y regulador de 3.3V (por ejemplo LM3940) para alimentar ENC28J60?

      Cómo pin INT, SCK, CS, SO, SI, RESET, no hay problema en el PIC?

      Hay nessário, conexión INT, CLKOUT, ​​WOL?

      Muchas gracias

      Eliminar
    3. A ver, los unicos pines que tienes que conectar son SCK, SDI y SDO, a parte de las alimentaciones. Ahora bien, en la linea que va desde el PIC hacia el ENC, o sea SCK y SDO del PIC (SDI del ENC), has de poner un divisor de tension porque esas señales son de 5 voltios, mientras que el ENC funciona con 3.3. El camino contrario, es decir SDO del enc, y SDI del PIC no hay problema porque con 3v3 el pic ya detecta un uno.

      Un saludo.

      Eliminar
  10. ¿Tienes algún proyecto para utilizar PIC18F4685 LCD16x2 c18?
    Utilización de bibliotecas XLCD.

    ResponderEliminar
    Respuestas
    1. Hola! pues había una entrada en la que hablaba del rotary encoder y estaba el código para descargar pero era de megaupload y no está disponible. Aquí lo he vuelto a subir. Tienes dos diferentes, uno del rotary encoder, y otro de un termometro LCD. El código está hecho para un 18f2550 pero debe funcionar igual para cualquier PIC.
      http://www.4shared.com/rar/w2flLJLa/Rotary_encoder.html
      http://www.4shared.com/rar/Gwhc8ttg/Termometro_LCD.html
      En esta entrada explico un poco esa librería:
      http://mipsandchips.blogspot.com.es/2011/09/termometro-lcd.html
      Los retardos verás que no son como dice el manual pero de esta forma funciona perfectamente, como dice el manual no he conseguido hacerlo fucionar bien.. Si tienes alguna pregunta no dudes en ponerla aquí.
      Un saludo!!

      Eliminar
  11. ¿Es posible hacer un diseño más racional? Las conexiones del PIC18F4685 ENC28J60 sff? (Puede ser por ejemplo: Paint) por favor.

    Hago un divisor de tensión para cada pin? SDO, SCK y SDI?


    Sea más apropiado utilizar diodos Zener?

    ResponderEliminar
    Respuestas
    1. Hola!, aquí tienes una imagen de las conexiones:
      http://www.4shared.com/photo/NVLoyFe9/CONEXIONES_ENC.html
      No hace falta hacer más conexiones para que funcione.

      La opción de los zener tambien sería válida.

      Un saludo.

      Eliminar
  12. Gracias por toda la ayuda y disponibilidad.
    Si me lo permiten, tengo algunas preguntas.

    - Con este divisor de tensión tiene Vout = 3V, ¿correcto? Uno no tiene que ser 3.3v?
    -Hago estas conexiones y el PIN restante llamo directamente?

    ResponderEliminar
  13. Si utilizo hasta PICLF18465 lugar de PIC18F4685, no tenían esas conexiones?

    Estoy utilizando PIC18F, como puedo conectar la clavija: RESET, CS?

    No hay necesidad de aumentar el voltaje de 3.3V a 5V? ¿cómo puedo hacer eso?

    Si usted tiene el tiempo y la energía, responda por favor por separado.
    Muchas gracias por todas las respuestas.

    ResponderEliminar
    Respuestas
    1. -Se me olvidaba el CS!, iría conectado también con el divisor de tensión, igual que el SCK.
      -El ENC detectan un 1 a partir de 2.3 voltios, así que 3 voltios es suficiente.
      -Si utilizas un LF, lo puedes alimentar con 3.3 voltios, así que si lo alimentas con 3.3, no hace falta ningún divisor.
      -¿Para que necesitas aumentar de 3.3 a 5? si fuera necesario si que es posible hacerlo claro, pero si todo tu circuito funciona a 3.3 voltios mucho mejor.
      Un saludo.

      Pablo.

      Eliminar
  14. No hay necesidad de aumentar 3v a 5v para el SDI pin alto nivel de comprensión PIC?

    no hay necesidad de conectar el pin RESET o los otros pines?

    Cuando uso PIC18LF, me alimento con 5v o 3.3v?

    Saludo, Takers.

    ResponderEliminar
    Respuestas
    1. No es necesario ya que el PIC detecta un 1 lógico con menos de 3 voltios. Solo hacen falta conectar los pines de la comunicación SPI (CS, SDI, SDO y SCK). De hecho estoy viendo en el datasheet del ENC que tamnpoco harían falta los divisores, ya que aceptan tensiones de hasta 7 voltios (página 83, ELECTRICAL CHARACTERISTICS, http://ww1.microchip.com/downloads/en/devicedoc/39662a.pdf), así que puedes quitar lo divisores tranquilamente, aliemntas el ENC a 3.3 y el PIC a 5, conectas los pines que te he dicho antes y ya está.

      Un saludo.

      Eliminar
  15. el pin RESET, debo llamar con divisor de tensión? ¿Cómo debo conectar el pin de RESET?

    ¿Puede confirmar si entiendo:
    el uso de alimentos divisor de tensión, proporciono 5V para el PIC.
      si yo no uso divisor de tensión y luego doy a 3,3 V, el PIC?

    ResponderEliminar
    Respuestas
    1. A ver, en primer lugar has de entender que hace un divisor de tensióm, que no se si lo tienes claro... un divisor de tension lo que hace es reducir la tensión, esto se hace porque un PIC alimentado a 5 voltios tiene en sus pines 5 voltios, los cuales pueden dañar a un dispositivo que funcione a 3,3 voltios. Bien, luego, yo pensaba que el ENC no soportaba tensiones de 5 voltios en sus pines, pero mirando el datasheet en la hoja y el enlace que te he puesto, verás que en sus pines acepta hasta 7 voltios, con lo cual no hacen falta divisores de tensión en NINGÚN PIN. Ahora, que pasa con las señales que salen del ENC a 3,3 voltios, y llegan al PIC que funciona a 5 Voltios, pues no pasa nada, ya que el PIC, a partir de 2 y pico voltios ya detecta un 1 lógico, así que con estas señales no hay que hacer nada. Y esto se repite para TODAS las señales. Conclusión! que los conectas tal cual, sin divisor de tensión ni nada.

      Eliminar
    2. Por lo tanto pin de reset,conecto tal cual, sin divisor de tensión ni nada ?
      Y del Pin SCK, SDI y CS, el enlace al divisor de tensión correcta?
      Dar el PIC VDD = 5 V y ENC Vcc=3.3v con pic 18F4685 ?

      Y el uso de PIC18LF4685 doy VDD = 3.3V a pic y ENC ?

      Lo siento por no darse cuenta muy bien, gracias por ayudarme aun.

      Saludo

      Eliminar
    3. Por favor, vuelve a leer lo que te he puesto porque te he respondido...
      "en sus pines acepta hasta 7 voltios, con lo cual no hacen falta divisores de tensión en NINGÚN PIN"

      Eliminar
  16. Absolute Maximum Ratings
    RESET, CS, SCK and SI, with respect to VSS .... -0.6V to 7.0V
    pero usamos los valores más bajos, no debemos usar el derecho absoluto?

    Si usted no necesita resistencias porque hago estas conexiones? (http://www.4shared.com/photo/NVLoyFe9/CONEXIONES_ENC.html ) + conexión de CS ?

    ¿Puedo alimentar a mi circuito con 5V.
    y no usa en ninguna pin resistencias?

    ResponderEliminar
  17. " yo pensaba que el ENC no soportaba tensiones de 5 voltios en sus pines, pero mirando el datasheet en la hoja y el enlace que te he puesto, verás que en sus pines acepta hasta 7 voltios, con lo cual no hacen falta divisores de tensión en NINGÚN PIN"
    , si, puedes el pic con 5 voltios y el ENC con 3,3V no entiendo lo que quieres decir con "pero usamos los valores más bajos, no debemos usar el derecho absoluto?"

    ResponderEliminar
  18. Quería alimentar el circuito con 5v, 3.3v utilizar la ENC con pic18F4685.
    Usé las resistencias como he dicho y no funcionó.

    Fed el circuito 3.3v no utiliza resistencias y funciona, pero necesito el circuito fuera a 5V

    "Stresses above those listed under “Maximum Ratings” may cause permanent damage to the device"

    ResponderEliminar
    Respuestas
    1. No entiendo lo que me dices... a ver es muy sencillo, no tiene complicación alguna, no entiendo que es lo que te lía enserio, alimentas el ENC18j60 a 3,3 voltios, el PIC a 5 voltios, y conectas los pines como te he dicho SIN RESISTENCIAS y ya está, no es nada complicado, si tan solo para hacer las conexiones tienes tantos problemas, ¿que pasará si tienes que modificar el código?, ¿que experiencia tienes con microcontroladores?

      Eliminar
  19. Pero circuito de alimentación de 5 V PIC, el pin RESET, CS estará a 5V.
    De acuerdo con la ficha técnica no debería utilizarse "Maximum Ratings" porque dañan la ENC.
    Usted me dice que llame a: CS-> RE1 SCK-> RC3, SI-> RC5, SO-> RC4
    PIC Vdd = 5V y 3,3 V = enc vcc conectar todo directamente sin divisor de tensión? Igual o pic18LF PIC18F?

    ResponderEliminar
    Respuestas
    1. pero es que la tensión máxima de esos pines es 7 voltios..., si utilizas un 18F tienes que alimentarlo a 5 voltios, si utilizas un 18lf puedes alimentarlo a 3,3, en ambos casos no son necesarios divisores de tensión.

      Eliminar
    2. Luego que alimento el PIC y enc, y se conectan directamente a los pines no hay problema?
      Con PIC18F.

      Eliminar
    3. Incluso si utiliza PIC LF4685, puede alimentar el ciruito con 5V y el ENC con 3,3 V?
      Y conectar directamente?

      Porque además me dijo que hacer un divisor de tensión SCK y SDO? ¿Cuál es la diferencia?

      Eliminar
    4. De verdad pienso que este proyecto te queda grande, no se que experiencia tienes en electrónica o microcontroladores... si miras el datasheet del 18lf4685 verás que efectivamente puede alimentarse a 5 voltios.
      Lo del divisor de tensión te lo dije porque no sabia que el ENC soportaba tensiones de 5 voltios, pero mirando el datasheet se observa que en esos pines acepta hasta 7 voltios, así que como he dicho, se conecta directamente y ya está.

      Eliminar
    5. Gracias, entiendo.
      Debido a que no es necesario conectar el INT PIN?

      Otra pregunta, si cambio el código de la página web. ¿Cómo puedo hacer para recibir la distancia de un SR04 sonar y el poder que muestra la página web.

      Saludo, Takers

      Eliminar
    6. debes crearte una variable dinámica en la página web y luego en el código del micro asignarle a esa variable la cadena de caracteres que quieras. Eso está todo explicado en la entrada en la que hablo de monitorización.

      Un saludo.

      Eliminar
  20. ¿Cómo puedo conectar una pantalla LCD de 16x2 con este programa el servidor web?
    Añadido el archivo y XLCD.C XLCD.H pero fracasó.

    ResponderEliminar
    Respuestas
    1. Revisaste los pines que llevan asignados esa librería? luego también debes crear los retardos en función de tu frecuencia de reloj,de todas formas, antes de todo deberías hacer funcionar el servidor tal cual, y luego ya ir añadiendo más cosas, siempre teniendo en cuenta la limitación de memoria que tiene ese micro.

      Eliminar
  21. Con este micro es posible utilizar 16x2 LCD?
    ¿Me puede dar algunos consejos sobre cómo utilizar LCD debo hacer?

    ResponderEliminar
  22. Ya te puse los enlaces a las entradas en las que hablaba del LCD, la del termometro, y la del rotary encoder, además también tienes los códigos...

    ResponderEliminar
  23. En los proyectos de termómetro, codificador rotatorio, no
      es posible encontrar algunas funciones para utilizar LCD, por ejemplo WriteCmdXLCD.


    Cuando uso el sonar SR04 con su servidor de web no funciona, he usado juntos?

    ¿Debo usar Interrupción? ¿Tienes algún proyecto con código sonar SR04 con Interrupción?

    ResponderEliminar
  24. como que no están esas funciones?¿?¿?¿ has visto el código? esa función que dices si que está, es una de las funciones más básicas que hay. Con el SR04 no te puedo ayudar.

    ResponderEliminar
  25. añado un archivo al proyecto que contiene las funciones en C?

    utilizar LCD aumenta en gran medida el tamaño del programa? Es muy simple?

    ResponderEliminar
    Respuestas
    1. No se lo que ocupan las librerias del xlcd en cuanto a memoria... en los ejemplos que te he puesto hay programas desarrollados en pocas lineas, verás que si que es simple

      Eliminar
    2. En los ejemplos que usted dio es necesario añadir algún archivo, además de la ya existente?

      Eliminar
    3. No, los ejemplos esos estan listos para meterlos en un micro y ya deben funcionar.

      Eliminar
  26. Estoy usando un cristal de 20 MHz, y "#pragma config OSC = HSPLL".

    Mi frecuencia del oscilador es 20MHZ o es diferente?
    En HWP PIC18EX_ENC28.h :
    "// Clock frequency values
    #define GetSystemClock() (8000000ul)

    #define GetInstructionClock() (GetSystemClock()/4) // Should be GetSystemClock()/4 for PIC18
    #define GetPeripheralClock() (GetSystemClock()/4) // Should be GetSystemClock()/4 for PIC18 "



    Usando 20Mhz demuestra dañino? Sólo se debe utilizar 10 MHz?

    ResponderEliminar
    Respuestas
    1. Si utilizas la configuración HSPLL es porque estás utilizando el PLL, deberás irte al datasheet y ver como funciona el PLL de tu microcontrolador.

      Eliminar
  27. Lo signficia esta instrucción?

    En HWP PIC18EX_ENC28.h :
    "// Clock frequency values
    #define GetSystemClock() (8000000ul)

    No es que el trabajo a las 8 MHz?

    (¿Me puede dar su correo electrónico o Skype?)

    ResponderEliminar
    Respuestas
    1. Esa linea no está en el código que yo he compartido... yo solo puedo ayudarte si utilizas mi código, si no lo utilizas no se lo que han hecho, ni si está funcionando el PLL o no.

      Eliminar
    2. Esta línea está en el código que compartieron.
      En este archivo se llama: HWP PIC18EX_ENC28 . h en headers files....

      Eliminar
    3. En el .rar que puedes descargar de aquí arriba, en el archivo HWP PIC18EX_ENC28.h pone esto:

      // Clock frequency values
      #define GetSystemClock() (40000000ul)

      #define GetInstructionClock() (GetSystemClock()/4) // Should be GetSystemClock()/4 for PIC18
      #define GetPeripheralClock() (GetSystemClock()/4) // Should be GetSystemClock()/4 for PIC18

      No se de donde has sacado ese archivo... Revísalo porque si ese archivo no es el mismo no funcionará nada a que es uno de los archivos de configuración y está en la carpeta TCPIP>DemoApp>Configs

      Eliminar
  28. HWP PIC18EX_ENC28 . h Yo descargo: http://search.4shared.com/postDownload/3hJARPEV/servidorweb_p_trujillo_mipsand.html y el archivo se encuentra en: TCPIP>DemoApp>Configs>HWP PIC18EX_ENC28 . h

    estas líneas de código indican que el oscilador es 4 MHz?
    #define GetSystemClock() (40000000ul)

    Con OSC = HSPLL, que sigifnica entonces? estoy confundido.
    The HSPLL mode makes use of the HS mode oscillator
    for frequencies up to 10 MHz. A PLL then multiplies the
    oscillator output frequency by 4 to produce an internal
    clock frequency up to 40 MHz.

    significa que la frecuencia es de 4 * 4 = 16Mhz?

    ResponderEliminar
    Respuestas
    1. hay 7 ceros... son 40 mhz... esa es la frecuencia de sistema... yo le puse un reloj de 10MHz x 4 = 40MHz

      Eliminar
  29. He cambiado a:
    "// Clock frequency values
    #define GetSystemClock() (8000000ul)

    Por lo tanto corresponden a 8 MHz,
    No es necesario multiplicar por 4, ¿verdad?

    ResponderEliminar
  30. que más te da? deja activado el PLL, no se que frecuencia es la mínima que se necesita para que el STACK funcione bien. Yo te aseguro que tal como está funciona, si cambias cosas, no se si va a seguir funcionando...

    ResponderEliminar
  31. ¡Hola
    ¿Por qué es mejor utilizar este circuito uno PIC18LF lugar de F?

    Sólo aliementação?

    ¿Qué ventajas tiene la PIC18LF?

    Saludo

    ResponderEliminar
    Respuestas
    1. la unica diferencia es la alimentación, no es que sea mejor o peor, sino que de esta forma te ahorras los adaptadores de señal.
      Un saludo

      Eliminar
  32. Muy bien.
    Debido a que este proyecto no es necesario conectar el pin de interrupción?

    En el ejemplo, demo, Microchip se requiere correcta?

    ResponderEliminar
    Respuestas
    1. Mi programa está basado en ese ejemplo, así que tampoco es necesario conectarlo.
      Un saludo.

      Eliminar
    2. Te felicito por compartir y documentar todo el proyecto. Que paciencia tenes para aguantar las preguntas tediosas y repetitivas del amigo TakersPT. Me gustaria saber si funciona bien (no se cuelgue) en el mundo real, digamos acoplado en un tablero con otras circuiterias de automatizacion.

      Eliminar
    3. Hola Martin! En el blog estoy para ayudar a todos!!, En cuanto a tu pregunta, he tenido el servidor funcionando bastante rato y no se ha colgado. Con lo único que he tenido algún problema es con la alimentación, pero estoy seguro que era por la fuente que utilizaba, ya que si alimentaba el circuito desde el Pickit2 funcionaba siempre y bien. En los PIC, el peligro de que se cuelgue no es demasiado grande, ya que tenemos el watch-dog, simplemente habría que inicializar los pines en reset a un estado conocido, bien leyéndolo desde la eeprom interna, o bien en el mismo código inicializándolos en las declaraciones. Como ya he comentado, existe el problema de la memoria, pero si la aplicación no es demasiado grande podría funcionar perfectamente. Un saludo! Gracias por pasarte!

      Eliminar
    4. Hola Pablo, gracias por responder tan rápido y tu interés en enseñar. Estoy interesado en hacer un TCP server socket con el hard de tu proyecto y usarlo desde mi smartphone a traves de una app de android tcp cliente que he desarrollado, ya tengo probada la comunicacion con un soft corriendo como servidor bajo windows. Me imagino que al no necesitar el web server con el "site cargado" da la posibilidad de abarcar a muchos mas microcontroladores de menor capacidad de memoria. Por defecto el tcp server socket del stack escucha en el puerto 9760. Ahora estoy viendo como interactuar con el stack al nivel de tcp. Asi que agradezco tu ayuda y Gracias por responder. Gracias

      Eliminar
    5. Hola de nuevo!, Ese tipo de comunicación no lo he probado, aunque es muy interesante. Para poder realizarla, mi hardware supongo que te valdrá, pero el software la mayoria no. Para hacer lo que tu quieres Microchip tiene implementadas unas librerias de la universidad de Berkeley. Aquí tienes la información http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en532885 . está hecho para PIC32 pero no será muy complicado hacerlo compatible con PIC18.
      Un saludo!

      Eliminar
  33. Saludos Pablo. Te escribo para realizar una consulta y ademas felicitarte por publicar este proyecto tan interesante. La consulta es: Cual es la frecuencia del cristal oscilador que va conectado al ENC20j60? En tus diagramas lo señales como Q2, pero no se indica a cuanto MHZ trabaja. Asumo que sería 25Mhz porque leí el datasheet y decia que trabaja a ese frecuencia. En el montaje que probaste cual cristal usaste para el ENC? .... ahh y otra pregunta : tu cress que trabajando a 20 Mhz funcione? yo modifiqué el programa para usar HS sin PLL con un cristal de 20Mhz conectado al PIC18LF4685? lo he probado en proteus y funciona pero creo que en realidad proteus hace caso omiso al cristal. Muchas gracias por la paciencia de antemano...

    ResponderEliminar
    Respuestas
    1. Hola, como te he dicho el reloj es de 25 MHz. Respecto a la frecuencia no se si habrá algún problema con la velocidad del puerto SPI, en principio o pero no te lo puedo asegurar. De todas formas... ¿que problema hay si utilizas el PLL?. No estoy seguro de lo de proteus, pero si que lo tiene que tener el cuenta ya que si que simula bien las temporizaciones y las señales PWM las saca de la frecuencia que has calculado. Aún así, en simulación, todo es más bonito ;).
      Un saludo y gracias por pasarte!!

      Eliminar
    2. Saludos de nuevo Pablo.

      Tengo unas nuevas consultas que hacerte, pero para que me entiendas un poco mejor te explico lo que estoy haciendo. Estoy montando un proyecto donde el microcontrolador tenga una pagina web embebida accesible naturalmente por medio de conexión Ethernet con la dirección ip que se le asigne a la controladora Ethernet, ahora desde esa página web se comanda al microcontrolador para enviar comandos a dispositivos X10 (protocolo de domotica), es decir, desde la pagina web puedo por ejemplo indicar la dirección de un dispositivo X10 que controla por ejemplo un bombillo y pedir que la enciende o la apague. Ahora bien, el circuito X10 se implementa con una fuente sin transformador, la cual ya la implemente y puse a trabajar con un pic 18LF4685 con una aplicación sencilla, entonces procedí a montar la ENC28j60 con todo el arreglo de resistencias, capacitores, pero SIN el conector Ethernet RJ45 Magjack o como se llame, todo esto en un protoboard, y con una pantalla LCD 16x4 que antes de implementar la controladora solo mostraba mensajes... el tema es que cuando implementé la controladora Ethernet la fuente sin transformador (que maneja corrientes no mayores a 150mA) se cae... es decir se le va el voltaje a casi 0... la única forma de que funcione es le meta una resistencia en el 15 VDDTX de la ENC, ya que probé desconectando todos los 3.3V que usaba la ENC y cuando desconecte ese funciono, entonces lo volvi a conectar pero con una resistencia de 220 Ohms y así trabaja pero el voltaje en ese PIN cae a 1.6V... ahora te pregunto: creis que tal vez eso podria deberse a que aun no le conectado el Conector Ethenet rj45 "magjack" o si no es por eso creis que con una tension de 1.6V el circuito funcione?

      Otra cosa: no consigo aquí en Venezuela ningún cristal de 25 MHZ :/ solo de 24! creéis que puede trabajar la ENC así?

      ahora mismo voy a ponerme a realizar pruebas pero te pregunto de antemano para que cuando leas y podais responderme se acorte el tiempo y asi puede tener alguna otra opinión si es que aun no he solucinado

      Gracias de antemano...

      Eliminar
  34. Otra consulta .. el voltaje de 3.3V/1.5C señalado en tu segunda hoja de plano, proviene del mismo voltaje de alimentación de la fuente que señalas 3.3V/2.1B o viene dado por medio del conector Ethernet?.... disculpa la ignorancia con lo de alimentacion pero en verdad primera vez que trabajo con implementacion con Ethernet

    ResponderEliminar
    Respuestas
    1. Hola!, respecto a la pregunta de la fuente sin transformador, no se que tipo de configuración estas utilizando, pero 150mA me parece poco para hacerlo funcionar todo, el LCD, el controlador ethernet, el PIC y luego el control del X10. Puede que en regimen normal funcione, pero el problema es en el arranque. Puedes probar una cosa, desconecta el ENC, y pon en marcha el resto, y una vez hayan pasado unos segundos conecta el ENC sin ninguna resistencia a ver que sucede. Poniendo la resistencia de 220 ohm lo que haces es limitar la corriente del ENC, por eso la tensión no cae hasta cero, pero sigue cayendo. Prueba eso que he dicho, y si no funciona tendrás que pasar a otro tipo de fuente.
      Respecto a lo del reloj, he estado mirando en datasheet y son bastante tajantes con la velocidad del oscilador, por lo que no te aseguro que funcione a otra velocidad... no puedes pedirlo por internet?
      Y por ultimo, en el esquema todas las señales de 3v3 son la misma señal, solo que al cambiar de hoja las nombra de esa forma.
      Un saludo y gracias por pasarte!!!

      Eliminar
  35. Saludos de nuevo Pablo. Pasando por aqui de nuevo con nuevas consultas... primero que todo te comento que el cristal de 25Mhz tuve que sacarselo a un router linksys que estaba dañado y en medio de la desesperación se lo saque así que ya tengo cristal de 25Mhz...Como te comente antes, el circuito lo estoy montando en protoboard y supuestamente implemente todo como tu indicaste pero la parte Ethernet no hace nada. Los leds del magjack no encienden aunque el router al que lo pegue si enciende y parpadea la luz del puerto donde esta conectado. Como te comente antes yo primero corrí una simulacion de proteus en la cual el servidor se pone online
    perfectamente con la pagina web, por lo que supongo que no debería ser un problema de
    software. Sin embargo si hay algunos detalles de hardware que los voy a comentar a ver si
    por ahi hay alguna falla...

    1. Las resistencia de 49 que tu sumas 39+10, yo la implemente con una de 47 y otra de 1,
    y si... se supone que eso da 48, peero esas no son de 1% de tolerancia, y cuando mido la
    serie de las dos me da 49.3 es decir me lanze una "carambola" es decir, sabiendo que
    tendria un margen de diferencia al valor nominal logre combinar para que me diera 49.3. De las 4 arreglos de la resistencia en serie, 3 me dieron 49.3 y 1 me dio 49.0. No sé si es seria un problema, por eso me gustaría saber tu opinión y sugerencia.

    2. La resistencia que va a RBIAS que debe ser de 2.32K la cual combinaste 2k2 y 120, yo
    repetí el mismo proceso, como me dio 2.30K (nuevamente por que no era 1%) entonces le
    adicione otra de 1 y medio 2.31K, naturalmente trate de ponerle otra mas de 1 a ver si me
    daba el 2.32K pero ... me da 2.31K :cuando la mido :S... en conclusion esa me mide 2.31K.

    3. El Pin 5 del Magjack RCT en tu diagrama no aparece conectado a ningun lado, por eso lo
    deje así, pero en realidad va así? o hay algún error en el diagrama?

    4. Conseguí un datasheet de una controladora ethernet prearmada es decir ya viene el PCB
    con la ENC el Magjack y la circuiteria, cuando la reviso veo que hay ligeros cambios, en especial con los pines 4 y 5 del Magjack y los arreglos de resistencia que va los pines TPOUT+ y TPOUT- de la ENC, incluso si te fijas los pines RESET y CS llevan un pull up a Vcc con resistencia de 10K, supongo que el software que usaste no hace falta eso pero tambien me llamo la atencion.. y ademas dice el valor de la famosa bobina que nunca dicen que valor tiene, segun el datasheet ese es de 1micro H aqui te pongo el link:

    http://www.tecbolivia.com/datasheets/comunicaciones/Ethernet_Schematic.pdf

    El tema es que no estoy seguro del pin 5 y ademas veo esas diferencia, aunque si a ti te sirvio asó entonces seguiré así pero te consulto por si hay algún detalle. Incluso probé haciendo los cambios del datasheet que te te linkie pero nada siguió igual.

    5. Obviamente tuve que hacer un pequeño PCB para el magjack ya que no puedo meter los pines con facilidad en el protoboard de echo creo que es medio imposible salvo una maraña (trampa) que arriesgue el conector y el circuito. Entonces la duda es por que en realidad yo hice el diseño del PCB si usar la tecnica de masa grande es decir que apenas puse las lineas de tierra ligeramente mas grande. Eso lo asumo por que como es pequeño y las distancia son cortas da igual, pero te comento igual a ver por que en verdad no se que hacer!.

    Finalmente, yo se que se pueden comprar cosas por internet con el tema de las resistencias y eso peero aqui en Venezuela existe un control cambiario con las divisas o monedas y es complicado comprar afuera :S por eso que trato de trabajar con lo tengo y pueda adaptar. Y por el momento me olvide del tema de la fuente sin transformador por que primero poner a trabajar el circuito ethernet y al hacerlo pues empiezo con X10, asi que lo estoy alimentando con un fuente externa que da 13V y uso un regulador 78l33 para llevar a 3.3V, que por cierto se que da poco corriente por que ahora mismo voy a probar con el LM317T a ver que tal y no tenga de nuevo un problema de corriente.

    ResponderEliminar
  36. Complemento comentando que ya implemente el LM317T con las resistencias de 220 y 360 (220+100+39) y puse a trabajar el PIC con el PLL y un cristal de 10MHz es decir 40Mhz pero aun nada que arranca :/ así que no es tema de corriente ni frecuencia del micro... :(.... por si acaso el PCB que comente en punto 5 del comentario que publique antes es solo para el conector RJ45 "Magjack" no mide mas de 4cm x 5cm es decir pequeñito.

    ResponderEliminar
    Respuestas
    1. Hola!
      Las diferencias de valores que comentas en las resistencias seguro que son completamente tolerables, yo también tenia errores en los valores mayores al 1% y funcionaba perfectamente. En cuanto a las conexiones de ENC yo me he basado en el datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/39662e.pdf , en la página 7 tienes el esquema que yo he montado, Como ves hay un pin del conector que se queda al aire, que es el que yo dejo. En cuanto a las resistencias de pull-up en CS y RST son prescindibles, aunque aconsejables, yo no las pude y funcionó. Dices que cuando lo conectas no se encienden ni los LEDS del conector... eso es muy raro ya que esos leds los maneja el ENC, y no tiene nada que ver con el PIC, simplemente conectando los leds al ENC y el RJ45, los leds deben funcionar. Lo de las masas no es necesario, por lo menos para que funcionen los leds.
      Luego comentas que el PIC no llega a arrancar? Yo primero haría funcionar el PIC, y por separado montaría el ENC, una vez funcionen los dos por separado (el PIC llegue a arrancar, y el ENC encienda y apague los leds del conector cuando conectas el cable), los uniría y probaría a hacerlos funcionar juntos.
      Un saludo!

      Eliminar
    2. saludos y gracias por la pronta respuesta. al respecto de que el pic arranque... sí arranca, de echo el programa del pic, -al menos en mi caso, creo que en tu proyecto tambien- enciende intermitentemente un led "led_estado" y ademas tiene implementado un pulsador que cuando es pulsado enciende otro led -en mi caso ubicado en el pin RD7-, y eso funciona, incluso tengo una LCD que lo unico que hace es colocar un mensaje al inicio del programa y también muestra el mensaje. El tema es que cuando conecto el cable de red los leds indicadores del magjack no tienen actividad, yo he verificado que estén buenos y funcionen, de echo me paso algo curioso, si le quito el cristal al ENC el led green enciende, obviamente sin cristal no funciona pero te lo comento como una demostración adicional de que los leds estan funcionando. Cunado me refiero a que no arranca es que el hecho de que los leds no se activen me sugiere que la ENC no esta trabajando adecuadamente y de echo cuando chequeo la clients list o el current summary list del router no me sale el dispositivo, es decir, es como si la ENC no terminara de negociar la conexion, Digo que no termina de negociar por que el router si enciende su led y incluso titila, pero no pasa de ahi. Cuando yo hago la simulacion con protheus enseguida se ve en tabla del router que le asigna una IP al ENC del circuito simulado y en mi caso tengo el router con un NAT para que cuando escriba la direccion IP pública de el con el puerto 8080, (Ejemplo: 200.84.243.118:8080 ) redireccione por el puerto 8080 a la direccion privada que el router le esta asignando al ENC del circuito simulado, en consecuencia al colocar la IP publica con el puerto en el navedador de internet veo la pagina que esta sirviendo el PIC en el circuito simulado. Eso no me ocurre con el montaje del protoboard, por que la ENC no termina de establecer conexión. Ahora bien cuatro preguntas te hago:
      1. Montaste tu circuito en protoboard antes del PCB ?
      2. Que tipo de cable usaste para conectar el circuito, cruzado o punto a punto?
      3. Lo conectaste directo a un PC o a un Router? -creo que fue PC xD pero pregunto por si acaso-
      4. La configuración que usaste de IP en el programa de tu proyecto fue desactivando la linea AUTO IP solamente o tambien quitaste las de DHCP? y entonces que pusiste en la direccion IP mascara y dns ?

      Te hago la ultima pregunta por que yo he probado el circuito simulado con las lineas AUTO IP y las de DHCP activadas, es decir sin comentar, no sé si tal vez ocurra algo con el tema de la IP que tengo por programa o algo asi.

      Eliminar
  37. Complementando el comentario anterior, yo creo que la ENC parece estar trabajando por que en mi programa -como creo que tambien esta el tuyo- la subrutina que hacer enceder intermitente el led estado solo se ejecuta luego de que se inicializa el protocolo MPFS, la configuracion de Aplicaciones y la pila TCP/IP(MPFSInit(); InitAppConfig(); StackInit();) y se pone a trabajar la Pila TCP/IP (StackTask(); StackApplications();), por lo tanto como el LED estado me esta enciendo intermitente como es el deber ser, asumo que la ENC esta trabajando, y para tratar de validar esa presuncion probe energizando el circuito sin la ENC y cuando hago eso el programa se estanca y no enciende el led estado. Ademas, revisé el datasheet -ya lo habia hecho, pero fue hace algo de tiempo y lo habia olvidado xD- y bueno efectivamente tenéis razón con la conexión.. al prescindir de la bobina ferrita y del capacitor de 0,1microF en serie con ella para reducir las EMI quedaría el derivador central de la bobina del RJ45 asociada los TPOUT(TDs), es decir PIN 4 del RJ45 a Vcc, y el derivador central de la bobina del RJ45 asociados a los TPIN(RDs), es decir PIN 5 del RJ45 sin conectar. Lo que haré ahora mismo es verificar mas minuciosamente la continuidad de los pines de Magjack y el que el conexionado este bien.

    ResponderEliminar
    Respuestas
    1. Hola!,
      bueno si el PIC si que funciona el problema está claro que está en el ENC. De todas formas ya te digo que los leds si que deberían encenderse simplemente con la conexión del conector al ENC, sin estar conectado el PIC ya que esa capa la maneja el ENC y no el PIC.
      Yo cuando monté el circuito por primera vez no lo hice entero en una proto, no que tenia una placa en la que ya iba montado el ENC y el conector, y de esta salian los conectores del SPI, en concreto esta https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQZw5KOd1wluPvUu5MD16KQV0NBs4djz1z1QwgvK4yao5MLi44p7g .
      Y no tuve mayores problemas, de hecho luego lo pasé a mi placa y funcionó bien. En cuanto al cable utilicé uno que tenia por casa que me venia con el router, creo que lo de ir cuzados o no ahora ya no influye. Luego, en cuanto a si lo coencté al router o al PC, lo hice en los dos, pero tenia que cambiar el código según donde lo conectaba. Si lo conectaba al router habilitaba el DHCP, mientras que si lo conectaba al PC lo deshabilitaba y ponía una dirección IP de la misma sub-red que el PC, si no, no conseguía que se vieran.
      De todas formas ya te digo que sin conectar el PIC, simplemente alimentando el ENC y conectando el cable de red, los leds deben encenderse y parpadear. Uno se quedará fijo, y el otro parpadeará un rato y luego se apaga. verifica las conecxiones del ENC en primer lugar.
      Un saludo!!

      Eliminar
  38. Una pregunta mas Pablo... de donde sacaste el diagrama de pines del MagJack RJ45 por que tal vez puede ser.... que.. mi magjack tenga otra distribucion de pines con respecto a las bobinas internas...

    ResponderEliminar
  39. Escribo de nuevo... logre un avance... me di cuenta que mi Magjack tiene otra distribucion de pines con respecto a los bobinas internas y el conexionado de resistencia ... en mi MagJack (tiene los leds incorporados, no recuerdo el tuyo)... es asi:

    Magjack RJ45 ENC28J60
    --------------------------------
    PIN 1 TD+ -------> PIN 17 TPOUT+
    PIN 2 TD- -------> PIN 16 TPOUT-
    PIN 3 TCT -------> Vcc (3.3V)
    PIN 4 NC
    PIN 5 NC
    PIN 6 NC
    PIN 7 RD+ -------> PIN 13 TPIN+
    PIN 8 RD- -------> PIN 12 TPIN-
    SHIELD --------> GND

    Y los leds tienen sus propias pines aparte

    Entonces bueno... ahora si encienden las luces del conector Magjack

    Pero todavía no lo ve el router... por ahora, cuando energizo el circuito, se enciende el led verde por un breve instante y luego los dos encienden simultaneamente de manera intermitente como cada 5 segundos, en la simulacion de proteus el led verde siempre esta encendido y el amarillo (naranja) enciende muy brevemente cada cierto tiempo (como cada 15 segundos)

    trate de probar cambiando el tipo de cable cruzado punto a punto a ver... seguire escribiendo por aqui... si puedes por favor leer tambien los mensaje de arriba mejor a ver si me puedes dar alguna sugerencias... Gracias :)

    ResponderEliminar
  40. Cuando me comentas de que desabilitas el DHCP cuando de esas lineas desactivas?

    #define STACK_USE_AUTO_IP
    #define STACK_USE_DHCP_CLIENT
    #define STACK_USE_DHCP_SERVER

    y la opcion de AUTOIP creo entender que te dio algun problema en algun momento, esa la dejas siempre, la quitas siempre o la activas segun el DHCP y tal? ....

    Otra cosa el datasheet recomendaba colocar capacitores ceramicos de 0.1mF en los pares de pines Vdd y Vss.. supongo de Tx Rx Pll Osc y Alimentacion, creo que no lo hiciste en tu montaje o si?

    ResponderEliminar
    Respuestas
    1. Cuando quiero deshabilitar el DHCP comento todas las lineas esas, las 3. Pero si lo conectas al router tienes que dejar habilitadas la del cliente DHCP y la de AUTO_IP.
      El conector que utilicé yo es uno de HANRUN, y es la librería que utilicé en el EAGLE. Mi montaje es tal y como se muestra en el esquema, no agregue nada mas externo. Los condensadores de la alimentación, en mi ncaso, a parte de los que hay en el esquema, estaban los de la fuente de alimentación de 5V.
      Un saludo!

      Eliminar
  41. Saludos Pablo.... POR FIN FUNCIONO!!!!! :)

    El problema era que el arreglo de resistencias de 2.32K (que el mio era 2.31K) que va a RBIAS estaba un poco lejos del pin. Leí el Datasheet y asi como sugeria lo de los capacitores, tambien decia que esa resistencia no debia estar muy alejanda del pin, y de echo no estaba muy alejada pero si tenia un cable como de 5 cm de largo entre el pin y arreglo... entonces coloque el arreglo a la par del pin es decir en un hueco al lado de donde estaba conectado el pIn RBIAS en el protoboard y Voilà ... FUNCIONO!

    El router le asigno IP y puede ver la pagina gracias al nat que hice colocando la ip publica y el puerto. Ahora mismo, solo tengo un incoveniente, que es menor, y es que no logro ver la pagina usando la IP privada.... pero creo que el asunto viene por que en realidad tengo dos routers uno que es router/modem que recibe la señal ASDL de mi ISP que solo maneja un puerto Ethernet y Wifi y que es donde tengo mi PC de escritorio conectada por cable ethernet. Pero la necesitar mas puertos ethernet para probar el circuito coloque otro solo router que maneja 4 puertos ethetnet y Wifi... entonces bueno parece ser un problema con los pool de direcciones IP que maneja cada router.. cuando solucione comento por aqui que hice... de todas formas si tienes alguna sugerencia al respecto bienvenida será :)

    Luego, arrancaré con el X10 y por ahi voy contando a ver que tal... asi que por aqui me tendreis un buen rato mas :P

    ResponderEliminar
    Respuestas
    1. Complemento aclarando que el NAT que hice lo hice a nivel de los router, es decir, Router1/Modem apunta por el puerto 8080 a la ip privada asignada por Router1 a el Router2 que su vez apunta por el puerto 8080 a la ip privada que el Router2 asigno al circuito ethernet en protoboard. Entonces, ya que Router1 tiene direccion publica... al escribir IP:PUERTO veo la pagina gracias al doble NAT.

      Lo gracioso es que si trato de acceder por la ip privada que le esta asignando router 2 no puedo entrar :S no la veo....

      Complemento por si acaso alguna sugerencia :)

      Si soluciono antes.. comento por acá... probaré desabilitando el DHCP de router 2 para que solo quede el pool de direcciones IP de router 1 a ver que pasa...


      Eliminar
    2. Listo... ya lo veo por la IP privada... desactive el DHCP del router 2 .. por lo que router2 quedo como bridge o switch quedando solo el pool de direcciones IP de router 1 y bueno ajuste el NAT de router 1 con la nueva ip privada y listo... ya veo el circuito por privada y publica usando el puerto 8080, que ademas es el puerto que habla mi circuito.

      Nota: Por si acaso el router TP-LINK TL WR340G se reseta a fábrica dejando pulsado el boton reset durante 15 segundos, estando encendido y conectado a un PC usando uno de sus puertos LAN (no el Wan). Sale el cuadro de dialogo pidiendo usuario y contraseña, y bueno como ya es sabido admin admin y listo. Lo comento por que tambien fue medio latoso configurarlo y de echo se colgó, tuve que reiniciarlo de fábrica y configurar todo de 0.

      Eliminar
    3. Hola!! Me alegro de que ya te funcione. seguro que funciona también con el X10 conectado. Será un proyecto muy interesante.

      Un saludo.

      Eliminar
    4. Saludos Pablo!...

      Queria preguntarte que software usas para realizar le diagrama para el PCB, creo que te entendí Eagle pero por si acaso queria consultarte.... quiero ponerme a realizar el diseño pero usando la tecnica de la masa grande.... eso lo haré al final pero me gustaria ir viendo que software.... yo por ahora he usado el Ares de Proteus pero en verdad no me dedicado a fondo a hacer circuito PCB... entonces apenas estoy familiarizandome con esto... como veo que el tuyo te quedo perfecto te pregunto para revisar ese tambien

      Eliminar
    5. Hola!, efectivamente utilizo eagle. Deja un acabado bastante profesional y es bastante sencillo encontrar librerias de componentes ya hechas. Y si no las encuentras tambien es sencillo hacerlas tu mismo. Es el que utilizo siempre.

      Un saludo.

      Eliminar
  42. hola estoy implementando un proyecto igual y tengo varias dudas acerca del proyecto te puedo hacer consultas.

    ResponderEliminar
  43. Hola buen día, ¿podrías subir de nuevo los archivos? Te agradecería muchísimo si lo hicieras

    ResponderEliminar
  44. Hola, muchas gracias por subirlos de nuevo aunque haya sido por poco tiempo. Te felicito y te agradezco nuevamente.

    ResponderEliminar
  45. Qué tal amigo, primeramente te felicito por todo tu trabajo y por la explicaciones que das. Me preguntaba si podrías resolverme algunas dudas, lo que ocurre es que yo estoy tratando de simular el circuito con isis de proteus; sin embargo, no he podido hacerlo satisfactoriamente, supongo que debe de ser por los osciladores que según yo son de 10 y 25MHz en el PIC y enc respectivamente o si se configure también el oscilador interno. ¿Si no es mucha molestia, podría subir mi diagrama y que le echaras un ojo?. Desde ya, gracias.

    ResponderEliminar
  46. Hola Pablo, coloco tu .hex en mi pic18f4685 con el enc28j60 con todos sus pines bien y no logro ver la ip del dispositivo en la red. Mi puerta de enlace en 192.169.1.1. Que crees que pase?

    ResponderEliminar
  47. Ante todo gracias por compartir y muy interesante tu bloc.
    Como he visto, yo tambien he intentado configurarlo en el pic18f4550, pero si exito alguno.

    he intentado descargarme los archivos y solo consiguo los graficos pero no los codigos.
    Fuy estudiante en desarrollo de productos electronicos con pic en FP pero mis conocimientos son demasiado basicos para ustedes, si no es inconveniente por favor enviadme la documentación para intentar consegur controlar una web con el pic. jumica2@hotmail.com gracias.

    ResponderEliminar
  48. Hola P.Trujillo, y a cualquiera que pueda contestarme.
    No tengo mucha experiencia con PLL y micros, me inicié en arduinos, y he encontrado este hilo con ayuda de google, cuya búsqueda ha sido basada en "alimentar enc28j60".
    Mis dudas se refieren a ese dispositivo que veo que aquí hay experiencia.
    Ya se que aquí no hablais de arduinos, pero mi problema es con el enc28j60 y mi duda es referente a la electrónica y su alimentación.
    Mi problema con este dispositivo es que se hace inestable y se desconecta (ni escucha ni envía) en un tiempo indeterminado y aleatorio, puede que horas, puede que en 2 días...
    No es problema del software, porque lo tengo todo bien optimizado, y me sucede también con los ejemplos oficiales y usando 2 librerías distintas.
    Cuando el dispositivo deja de funcionar, a veces "despierta" si el arduino llama de nuevo a su inicialización y otras veces no.
    Me estoy empezando a poner nervioso, por el exceso de tiempo que le he dedicado y ahora encontrar este tema de la alimentación, he visto varios comentarios que dicen, que la salida de 3,3voltios del arduino no da la suficiente potencia para el enc28j60, y dicen que lo mejor es un alimentador externo con esta tensión estabilizada y dando más amperaje.
    La gente que habla de eso, tampoco concluye en si hacen tal cosa y se soluciona el problema.
    P.Trujillo, me llama la atención que dices que el enc28j60 puede soportar 5 voltios, ¿pero te refieres a la entrada de tensión?¿a la alimentación del mismo?
    Se me hace raro que esté soportada esa tensión y otros hablen de circuitos adicionales para suministrar más amperaje pero en el umbral de los 3,3 voltios.
    Podría probar con los 5 voltios y ver si mis problemas de desconexión/inestabilidad terminan, pero no se si es un riesgo de quemar el enc28j60.
    Entonces la preguntilla sería, contando con que el arduino (que sería como el micro que usais) da 5 voltios bien estabilizados, ¿es seguro a largo plazo alimentar con 5 voltios el enc28j60?
    Muchas gracias.
    Saludos.
    Pedro.

    ResponderEliminar
  49. Y si lo de alimentar 5 voltios es un riesgo, ¿que diferencia hay entre usar un divisor o regulador de tensión?
    Entiendo lo que es un divisor, poner 2 resistencias en serie entre Vcc y Gnd cuyo punto intermedio es el resultante del voltaje deseado.
    Para pasar de 5v a 3,3v me sale a poner 3 resistencias de 4K7 (lo he calculado con 3 porque las 4K7 es una de las que tengo mucho)
    Es más fiable el regulador? tiene riesgo de caidas de tensión o algo así por usar un divisor?

    ResponderEliminar
  50. Hola Me Interesa llevar a cabo tu proyecto serias tan amable de actualizar tu link de descarga o alguien que tenga los archivos....¡¡¡Gracias¡¡¡

    ResponderEliminar