Autor Tema: librerias asm para el enc28j60.con pic18Fxxxx  (Leído 22235 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #15 en: 03 de Enero de 2011, 11:28:32 »
no he tenido la gran oportunidad de trabajar con este integrado, sin embargo algún día lo utilizare, y no se porque pensé que el integrado se encargaba de las tramas y conexiones con la red, pero veo que no es solo eso...
aunque la trama esta muy fácil de comprender(gracias por tu explicación), ahora viene la pregunta, podrías tener guardado en una memoria una pagina web? y recibir la peticiones cuando dan click sobre un link y desarrollar una especie de servidor de ultrabajo consumo con un 18f?

Los Stack de Microchip permiten elegir configuración y entre esas está utilizar ENC28J60, memoria de programa, memoria EEprom, ect, eso si se necesita un MCU de buena capacidad  :mrgreen:

Saludos!

Claro que el stack de Microchip permite tales cosas, pero la pregunta de Fidodido hacia Groundman se enfoca en la programación en ASM.

Me parece que el trabajo de Groundman ha sido muy bueno hasta ahora. Espero que siga desenmarañando todo esto del ethernet en ASM y que no se doblegue como otros que, por ejemplo, han querido implementar USB sólo usando ASM.

Buen trabajo Groundman.
« Última modificación: 03 de Enero de 2011, 11:38:55 por migsantiago »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #16 en: 03 de Enero de 2011, 14:16:08 »
Claro que el stack de Microchip permite tales cosas, pero la pregunta de Fidodido hacia Groundman se enfoca en la programación en ASM.

Me parece que el trabajo de Groundman ha sido muy bueno hasta ahora. Espero que siga desenmarañando todo esto del ethernet en ASM y que no se doblegue como otros que, por ejemplo, han querido implementar USB sólo usando ASM.

Buen trabajo Groundman.

Aaaaaa.... Gracias por la intervención, no me había dado cuenta!   :mrgreen:

Es cierto, muy buen trabajo Groundman  8)
No contesto mensajes privados, las consultas en el foro

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #17 en: 03 de Enero de 2011, 18:53:09 »
muchas gracias.la verdad es que hasta que no consiga realizar una conversacion entre ordenadores en la intranet e incluso en intenet no voy a parar.
ya llevo bastante tiempo con el estudio del ethernet y seria un atraso ponerme a estudiar otra cosa.aunque no seria la primera vez que me pasa.

ahora que he logrado capturar datos de la red.estoy dandole vueltas a la cabeza de como gestionar estos datos.
al principio se me ocurrio pasar los datos al pic.y luego gestionarlos desde el mismo.pero me he dado cuenta de que seria un desperdicio de recursos.

asi que lo que voy ha hacer es gestionarlos desde el mismo enc28j60.mi intencion es identificar la cabezera de la trama.
para ello buscare las coincidencias de los bytes con valores 1,2,3,4. el unico problema es que la primera trama no tiene esa secuencia de caracteres
y se perderia.
voy a tener que ver bien como se reciven las tramas en el enc28j60.todabia no se que pasa cuando se llega al final del buffer de lectura.
tengo entendido que los datos se vuelben a escribir en el principio del buffer.aunque supongo que no empezara con la cabezera de otro paquete.
si no.que se comportara como un bucle cerrado.

una vez que guarde en la memoria del pic la cabezera.habra que identificar que tipo de trama es.y gestionar los datos segun sus caracteristicas.

aunque me estoy planteando usar el primer dato recibido en el paquete para localizar el principio del siguiente paquete.esto tiene la ventaja de ahorrar tiempo
al pic al no tener que buscar la secuencia 1234.
pero tambien tiene el problema de que si el dato estubiera corrupto,se desencadenaria un tren de fallos que acabaria en desastre.
asi que es posible que use una mezcla de ambos.de todas formas todo es probar que tal va uno y otro sistema.
« Última modificación: 23 de Enero de 2011, 16:56:40 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado akira_ve

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 342
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #18 en: 05 de Enero de 2011, 18:09:25 »
mi pana me puedes pasar la simulacion del proteus.........????? :oops: :oops: :oops:
Si conocemos bien lo que tenemos y lo sabemos usar......se haran hasta cosas que e veces aseguran son imposibles

Venezuela

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #19 en: 06 de Enero de 2011, 08:01:10 »
esta dentro del archivo de una resapuesta de mas arriba. etherner4.rar

aunque en ese codigo todabia no esta integrado el codigo que localiza las secuencias 1234 que preceden a las tramas para localizar las cabezeras en
el buffer ethernet.cosa que tengo casi terminada.
de todas formas con lo que contiene hay de sobras para empezar a estudiar el sistema.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado akira_ve

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 342
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #20 en: 06 de Enero de 2011, 10:41:56 »
amigo si es el archivo que dice ds1305.DSN, no abre y me dice algo sobre la version del proteus, el mio es 7.4 SP3
Si conocemos bien lo que tenemos y lo sabemos usar......se haran hasta cosas que e veces aseguran son imposibles

Venezuela

Desconectado martes78

  • PIC10
  • *
  • Mensajes: 9
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #21 en: 06 de Enero de 2011, 14:33:54 »
Hola felicitaciones groundman, voy a ver si puedo seguirte y así aprender sobre este interesante modulo. Tengo todos los componentes para hacer un sistema que se conecte via web pero lo tengo arrinconado juntando polvo por falta de tiempo y ganas!!!

Nuevamente mis felicitaciones

Saludos Matias
Explica las cosas como si se las contaras a tu madre, recuerda que ella no entiende lo que haces!!!

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #22 en: 06 de Enero de 2011, 15:07:42 »
tendras que actualizar tu version a una superior.o crealo tu mismo.no es dificil.
te paso una imagen para que crees las conexiones.no hace falta que integres el osciloscopio, los displays,ni la memoria.


By groundman at 2011-01-06

martes78.te animo a que te apuntes.al principio creia que esto de ethernet era imposible.pero a medida que avanzo cada vez me parece mas sencillo.

ya tengo una porcion de codigo casi terminada.la que gestiona el protocolo eth.pronto la subire.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado akira_ve

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 342
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #23 en: 06 de Enero de 2011, 15:47:42 »
amigo martes78, como sabes que algo no es posible si no lo as intentado.............cosas asi e intentado siempre, Si conocemos bien lo que tenemos y lo sabemos usar......se haran hasta cosas que e veces aseguran son imposibles.

Amigo Groundman ese componente esta en el Proteus??
Si conocemos bien lo que tenemos y lo sabemos usar......se haran hasta cosas que e veces aseguran son imposibles

Venezuela

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #24 en: 06 de Enero de 2011, 22:14:02 »
estan todos los componentes.si te refieres al enc28j60 solo tienes que ponerlo en el buscador de componentes.en algunas versiones de proteus viene con mas o menos pins.
pero funciona igualmente.hay muchos componentes que no hace falta que los pongas por el momento.yo los puse porque no me funcionaba el circuito.y
no sabia porque.y ya que los puse para que quitarlos.
y hay pins que no se usan para la simulacion.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #25 en: 07 de Enero de 2011, 11:30:19 »
hay una cosa que no sabia y que he descubierto por casualidad.resulta que para capturar los paquetes.utilizo la targeta de red del portatil.
pero en el curro no puedo hacer pruevas porque alli uso la wi-fi.
asi que experimentando me he dado cuenta de que si hacemos  clic en el enc28j60 del proteus.

nos sale una opcion Network card no:
donde podemos seleccionar la targeta de red por donde nos entrara el trafico de datos.en mi caso la nº1 es la LAN y la nº2 es la wi-fi.

tened en cuenta esto si no recivis datos.puede que no tengas bien puesto esto.  ;-)
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #26 en: 21 de Enero de 2011, 07:57:49 »
hay una cosa que no sabia y que he descubierto por casualidad.resulta que para capturar los paquetes.utilizo la targeta de red del portatil.
pero en el curro no puedo hacer pruevas porque alli uso la wi-fi.
asi que experimentando me he dado cuenta de que si hacemos  clic en el enc28j60 del proteus.

nos sale una opcion Network card no:
donde podemos seleccionar la targeta de red por donde nos entrara el trafico de datos.en mi caso la nº1 es la LAN y la nº2 es la wi-fi.

tened en cuenta esto si no recivis datos.puede que no tengas bien puesto esto.  ;-)
Hola groundman, que tipo de datos estas mandando? Y mediante queprotocolo? Udp, tcp?

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #27 en: 22 de Enero de 2011, 12:47:49 »
de momento solo estoy en la gestion de los datos recividos.lo que estoy haciendo es diferenciar el TYPE del paquete y segun que valor contenga,salto a otro subprograma para gestionar ese paquete.
los valores de TYPE que recibo son 0x0800 (IP) , 0x0806 (ARP) y 0x0000 que no estoy seguro porque sale.ya lo estudiare.

por ahora los paquetes que recibo son broadcast.ya que son paquetes que se envian a todos los PCs de la red.y aunque tengo activados los filtros,
para recivir paquetes destinados a la mac que he programado en el enc28j60.no he realizado ningun programa para conversar por la red.

quiero realizar una conexion udp.porque es directo y no se piden permisos entre PCs.pero todabia no entiendo muy bien los de las asignaciones de IP
entre PCs de una misma red.asi que tengo que estudiarlo.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #28 en: 23 de Enero de 2011, 15:32:32 »
bueno he estado estudiando lo de los filtros de recepcion.y me he dado cuenta de que es algo muy importante.y que han de ser modificados continuamente
segun las necesisades de la aplicacion que queramos realizar con el pic.

aqui pongo una explicacion de su funcionamiento:

Código: [Seleccionar]
ERXFCON

el registro ERXFCON configura el filtrado de los paquetes recibidos.

hay 6 tipos de filtros:

• Unicast
• Pattern Match
• Magic Packet™
• Hash Table
• Multicast
• Broadcast

bit 7: UCEN.filtra los paquetes de tipo UNICAST (un destinatario)

1 = Los paquetes que no tengan una dirección de destino coincida con el local de la dirección MAC se descarta
0 = filtro desactivado

bit 6: AND/OR.es un bit que determina la forma de decidir como actuaran los bits del registro ERXFCON.este bit realiza un AND/OR con los bits
     PMEN,MPEN,HTEN,MCEN,BCEN de esta forma tenemos las combinaciones para decidir si se aceptaran los paquetes

1 = AND: Los paquetes serán rechazados a menos que todos los filtros permitieron aceptar el paquete
  0 = OR: Los paquetes serán aceptados a menos que todos los filtros permitieron rechazar el paquete

bit 5: CRCEN.

1= todos lo paquetes con un CRC invalido sera descartados
0= el filtardo por CRC invalido es ignorado

bit 4: PMEN. filtra los paquetes segun mentengan un patron con el estandar especificado de paquetes.

1= filtrar los paquetes que no mantengan el patron
0= filtro desactivado

bit 3: MPEN. activacion del filtro Pattern Match

1= los paquetes deben mantener el criterio de paquete Patern Match para la MAC programada.o seran descartados
0= filtro desactivado

bit 2: HTEN. filtro de tabla hash.

1= los paquetes que no mantengan el criterio de paquete de tabla hash seran descartados.
0= filtro desactivado

bit 1: MCEN.filtro de paquetes multicast (multidifusion)

1= Los paquetes deben tener el bit menos significativo puesto en la dirección de destino o se descartará
0= filtro desactivado

bit 0: BCEN.filtro de paquetes broadcast (varios destinatarios)

1= Los paquetes deben tener una dirección de destino de FF-FF-FF-FF-FF-FF o serán descartados
0= filtro desactivado

adjunto los ultimos avances.

en este programa he habilitado las interrupciones por desbordamiento del buffer ethernet de recepcion.asi que en el proteus hay que unir el pin INT
del enc28j60 con el pin RB2/INT2 del pic18f4550.pero entremedias hay que intercalar una puerta NOT (inversora)

queria haber configurado la interrupcion por recepcion de un paquete.pero la recepcion de los paquetes es muy rapida y la gestion entre paquete y paquete por
el pic.no creo que sea tan rapida.almenos en el simulador.
por eso hasta que no realize las pruevas fisicamente,gestionare los paquetes almacenados en el buffer ethernet.
« Última modificación: 23 de Enero de 2011, 18:53:50 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: librerias asm para el enc28j60.con pic18Fxxxx
« Respuesta #29 en: 30 de Enero de 2011, 17:56:19 »
pues ya que he podido recibir datos.aunque todabia no tengo implementado todos los protocolos.he decidido provar a enviar datos.
ya que si no practico con las dos cosas,no puedo seguir avanzando.

debido a un error que cometi.no ponia el bit TXRTS a 1 para empezar a enviar paquetes.pero ahora que he logrado arreglar esto,me sale un mensage de error
del proteus.

[NIC PACKET]>Sending packet when the link is not established: dst=FF:FF:FF:FF:FF:FF, src=00:04:A3:00:00:00

lo que entiendo del mensage es que se ha enviado el paquete cuando el enlace no ha sido establecido.
pero no se a que se refiere.
es que hay que esperar algun evento para poder transmitir? hay que activar algo? no se que sera.habra que hecharle mas tiempo.
Montando mi primera impresora 3D (Raprep Prusa i3)