Autor Tema: Comunicación por ethernet.  (Leído 6131 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mangel2271

  • PIC10
  • *
  • Mensajes: 4
Comunicación por ethernet.
« en: 17 de Febrero de 2009, 00:52:39 »
Buenas noches, es la primera vez que escribo, espero estar en el foro correcto. Quiero armar un circuito con un PIC y conectarlo a una red ethernet para poder manejar las entradas y salidas, encender y apagar dispositivos y leer las entradas analógicas y digitales.

El tema es que lo quiero hacer con componentes que se consigan en Argentina y con integrados y micros DIP. No dispongo de la tecnología como para armar placas y soldar micros SMD como los PIC18F97J60 ni los controladores ethernet como los CP220. Tampoco quiero usar nada armado como el CP2201EK porque no se consiguen y si se consiguieran se me complica con el programador. Mi idea es usar un PIC "común" como el 16F877 o el 18F2550 pero les tengo que agregar el módulo de ethernet. Y aquí vienen las preguntas a ver que opinan.

Lo primero que pensé fue en usar el ENC28J60, es DIP, se consigue, pero lo que no se consigue es el conector RJ45 con las bobinas (o las bobinas solas). Buscando, encontré que en McElectronics los venden, pero con lo que pasó aquí me da un poco de miedito comprar ahí. Entonces, a una placa PCI con el chip RTL8139 le saqué el chip y conecté la salida y entrada del trafo de la placa (la parte que iba al Tx y Rx del RTL8139) al ENC28J60 y funcionó. Lo único que tuve que cambiar fue el resistor de RBIAS a 1K8, y es lógico porque el trafo del RTL8139 no está diseñado para el ENC28J60. El problema se puede dar cuando haya un cable largo, hay mas ruido eléctrico y va a ser mas sensible a las interferencias. ¿Alguien sabe si hay alguna placa que se consiga que tenga el trafo mas o menos compatible?.

Después me dije, si el trafo que viene con las placas PCI es para el RTL8139, ¿porqué no manejar a ese integrado?. El problema es que el bus PCI es de 32 bits multiplexado, y el RTL8139 maneja las transferencias de datos con DMA. Pero en la hoja de datos del RTL dice que el clock del bus PCI puede ser de 0 a 33MHz. Mi idea era armar un pseudo bus PCI con 4 74HC595 como salida y 4 74LS244 como entrada, y darle los pulsos de clock desde el mismo micro. Según la especificación PCI, las transferencias se hacen en el pulso ascendente del reloj. Entonces el PIC iba a escribir la dirección en los latchs de salida, manda el pulso y así emular las señales del bus PCI. Bueno... no se porqué no funcionó.... quizá sea porque el clock es demasiado lento o porque no estaba mandando las señales en el orden correcto o porque no generaba la señal de paridad... Igualmente no lo seguí mucho porque hubiera sido una placa demasiado grande, con 8 integrados mas la placa PCI mas el PIC... (antes que digan algo, tengan en cuenta que no necesito velocidad, no me importa si la luz se enciende 1 segundo después).

Otra opción que tuve en cuenta es manejar una placa de red ISA, pero no se consiguen mas. Sólo se consiguen usadas y con suerte con un chip que tenga la hoja de datos. Encima son muy grandes, ocupan mucho espacio.

La última que se me ocurrió es usar un PIC18F2550 con USB para controlar un conversor de USB a ethernet como este. Tienen el chip DM9601 de Davicom, está la hoja de datos, no parece complicado, es de tamaño reducido, pero leyendo en los foros aquí y aquí aclaran que no se puede porque se necesita que el PIC haga de host USB. Y aquí viene la pregunta del millón. ¿No se puede de ninguna manera con un PIC18F2550?. Estuve buscando info de USB y todos los ejemplos son para dispositivos con una PC como host y el PIC usando las librerías del compilador. ¿El que no pueda ser un host es un tema del hardware del PIC?. ¿No se pueden enviar los mensajes y "engañar" al DM9601?. O sea, tengan en cuenta que en este caso (quizá) no se necesite implementar todo el estandard de un host USB, lo único que va a estar conectado es el DM9601, va a estar conectado siempre, no se necesita ahorro de energía ni nada de eso. ¿O es que el hardware del PIC preprocesa los mensajes y en los buffers viene todo procesado con los datos en limpio?. Si es así, desde el programa no se tiene control de los mensajes de bajo nivel (setup, handshakes, etc). ¿Es así?.

Gracias y disculpen el largo del post.

  Miguel.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Comunicación por ethernet.
« Respuesta #1 en: 17 de Febrero de 2009, 09:03:43 »
Podes encontrar el ENC28J60 y el conector con filtros en ELEMON.
Por el resto conseguite un micro importante, tipo 18f4620 o superior, el stack de Microchip o de CCS ocupan bastantes recursos, asi no te quedas corto a mitad de camino. :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado mangel2271

  • PIC10
  • *
  • Mensajes: 4
Re: Comunicación por ethernet.
« Respuesta #2 en: 17 de Febrero de 2009, 16:26:28 »
OK, gracias por responder. Si, voy a hacerlo con el ENC28J60. Me fijé en el sitio de Elemon y venden estos dos modelos: C0072-88AYQB03R y C0072-88AYQB06R pero no encuentro la hoja de datos para saber cual de los dos tiene que ser y que conexionado usar. ¿Ese es algún código interno?. ¿Se consiguen las hojas de datos?. Porque llamé a Elemon y me dijeron que las busque en internet.

Gracias.

  Miguel.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Comunicación por ethernet.
« Respuesta #3 en: 17 de Febrero de 2009, 16:36:13 »
Tenes razon, no encuentro ni las marcas (yo compre uno de cada uno de esos conectores), asi que les voy a pedir la hoja de datos... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado mangel2271

  • PIC10
  • *
  • Mensajes: 4
Re: Comunicación por ethernet.
« Respuesta #4 en: 19 de Febrero de 2009, 11:04:29 »
Ayer fui a comprar los conectores C0072-88AYQB03R y C0072-88AYQB06R y me pasaron las hojas de datos, las posteo con este mensaje (me las pasaron en papel, yo las escaneé). Lo raro es que estuve buscando en el sitio del fabricante y no aparecen. La diferencia entre la entre las dos es que la C0072-88AYQB03R es para armar un switch o un hub (equipo de capa 2), y la C0072-88AYQB06R es para armar una placa de red (equipo de capa 3). Para usarlas con el PIC, normalmente habría que usar la C0072-88AYQB06R para conectarlo a un switch o hub con un cable derecho. En cuanto pueda probarlas les aviso como me fue.

Desconectado gabimelgar

  • PIC10
  • *
  • Mensajes: 11
Re: Comunicación por ethernet.
« Respuesta #5 en: 15 de Julio de 2009, 18:20:06 »
Hola a todos, como va? como simpre excelente los temas del foro..
Respecto al ultimo comentario de Mangel, alguien pudo probar cual de las fichas q se consiguen en Elemon (C0072-88AYQB03R o C0072-88AYQB06R) es la que corresponde?
Yo voy a utilizar el 18F97J60, este no necesita el ENC, pero imagino q igualmente lleva la misma ficha, no?
En Elemon tambien hay una ficha con el codigo 1605423-6, tinenen idea si esta sirve? mi idea es conectar el pic a un switch.
Gracias a todos!
Saludos!

Desconectado Judas_MzA

  • PIC10
  • *
  • Mensajes: 44
Re: Comunicación por ethernet.
« Respuesta #6 en: 20 de Diciembre de 2009, 22:41:42 »
Buenas, como va todo? Estoy en un proyecto con un PIC18F67J60 y estoy en el dilema de que RJ45 comprar, si alguien compro alguno de los de ELEMON y es tan amable de comentarme su experiencia se lo voy a agradecer...
Muchas gracias.


 

anything