Autor Tema: PIC18F67J60 ¿Cuál es el mejor camino?  (Leído 4639 veces)

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

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
PIC18F67J60 ¿Cuál es el mejor camino?
« en: 05 de Abril de 2017, 04:16:13 »
Queridos compañeros (y sin embargo amigos):

Por orden de la autoridad competente me ha llegado el momento de sustituir los antiguos, y carísimos, módulos Tibbo EM203 de conexión a Ethernet por una solución más barata, a ser posible mucho más barata, para que nuestro diseños puedan mantener su conectividad a través de Internet y sin tener la necesidad de seguir haciendo ricos o muy ricos a la gente de Tibbo . Y en ello estamos ...

He adquirido una placa de desarrollo OLIMEX PIC-WEB que calza un PIC18F67J60 y tiene algún otro hardware adicional, como un MAX232 serie y dos o tres pijaditas más, pero básicamente es una placa de desarrollo para probar la conexión Ethernet y poco más.

El caso es que ahora tengo que decidir, de inicio, una cuestión que me trae de cabeza porque aunque solo hay que elegir entre dos opciones. Pero que sea cual sea la que tome traerá cola y va a tener un largo recorrido.

No me gustaría tener que tirar la moneda al aire y decidir si sale cara o cruz irme por uno u otro camino, desearía poder tener elementos de juicio suficientes como para elegir con algún conocimiento de causa.

La elección es si:

  • STACK TCP/IP de Microchip para C18 Compiler
  • STACK TCP/IP de CCS para PCWHD PICC Compiler


Como véis son dos caminos realmente distintos y que poco tienen que ver entre ellos.

La placa OLIMEX PIC-WEB viene con todo un ejemplo completo adaptado a su hardware del de Microchip para C18, con el que creo que una o ninguna vez he compilado cosa alguna.

Pero afortunada o desgraciadamente llevo trabajando desde hace quince años con el compilador de CCS, desde el antediluviano 3.223 hasta el actual 5.064 (y los que vienen en camino) y dispongo de su STACK TCP/IP, aunque nunca lo he compilado o probado o ni siquiera se qué hace o qué puede hacer.

Así que me muero en un mar de dudas, me como las uñas, me arranco los pelos de la cabeza a tirones y no se qué hacer.

Ante esto no hay una decisión más clara que tomar que la de encomendarme a los consejos, sugerencias, aportes, ideas, experiencias y sospechas de mis queridos compañeros de fatigas de Todopic.

Me gustaría que todos los que gusten o quieran o puedan me den consejos o ideas o me cuenten experiencias que hayan tenido con este tema. Cualquier sugerencia, positiva o negativa, será bienvenida. A ver si logro tomar la decisión de por donde continúo.

Pues eso  :mrgreen:
« Última modificación: 05 de Abril de 2017, 04:20:18 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #1 en: 05 de Abril de 2017, 23:49:25 »
Que tal RedPic,

Si no me equivoco el Tibbo EM203 es un convertidor serial a ethernet, así que tiene opciones más económicas. Por ejemplo:

1)WIZ550S2E http://www.saelig.com/wiznet-serial-ethernet/M00088002.htm   $19.72 USD
2)USR-TCP232-T2 http://en.usr.cn/serial-to-ethernet-module.html    $11.00

Esto es más fácil y rápido para sustituir el módulo Tibbo.
Ahora que si quieres algo más barato, pero con un poco más de trabajo, podrias usar el famosísimo y popular ESP8266 ($4.00).

Espero esta info te sirva a menos que tu aplicación sea otra y necesites modificar y jugar con un stack para tener la conectividad ethernet.

Saludos,

elreypic.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #2 en: 06 de Abril de 2017, 15:38:05 »
Medio dificil cuando ya te decantaste por un PIC..

Las opciones van desde menor trabajo a mayor, Precio habria que averiguar, por el tema de cantidad y de donde se consigue.

- Cualquier micro + Conversor Serial/Ethernet:
   Esta opcion te la dio elreypic2, la cual va a suponer un minimo cambio desde tu parte y poder seguir usandolo. Minimo esfuerzo pero el mismo problema (aunque un poco menor).
   Rapida salida, ya que solo deberias modificar la interfaz con el nuevo modulo. No te preocupas por el stack TCP/IP
- PIC18F67J60:
  Posee MAC/PHY interno, lo cual te facilita en parte de hardware externa a no tener que poner un micro que actue como PHY. Es mejor que el caso con el ENC28J60, ya que ahora todo esta en el micro lo cual es mas rapido que estar comunicandose por SPI. Lo malo es que la velocidad y el espacio estas limitado a lo que ofrece el micro. Y por lo visto no posee grandes cantidades 128KB Flash / 3.8KB RAM.
- TM4C1294 de TI
  Este micro posee 1MB de Flash / 256KB Ram, y posee incorporado MAC/PHY, 32-bit , ARM, con punto flotante . Es un micro mucho mas potente que el PIC18, la placa de evaluacion que sale U$S 20 dolares aproximadante supuestamente trae el programador incorporado y te da acceso libre al compilador de ellos, tenes ejemplos con uIP y lwIP, este ultimo con DHCP, ICMP, etc)
- Cualquier micro + ENC28J60 ( o simil ):
  Lo bueno de esto es que es un MAC/PHY en el ENC28J60. Lo cual la parte de MAC/PHY la tenes fuera y no ocupa del micro, pero en el micro tenes que poner el stack TCP/IP, sea de Microchip/CCS o otros como lwIP, uIP, etc. Esto es excelente porque podes poner cualquier micro, si necesitas mas memoria/velocidad, cambias el micro y listo. La contra seria la velocidad, ya que todo se transmite por SPI. Y los componentes externos. Ya que le ENC28J60 necesita su cristal y sus componentes
- Micros con MAC, pero  PHY externos:
  Aca entra casi todos (la mayoria) los micros que hay de 32bits, son muy pocos los micros que poseen MAC/PHY integrados, la "desventaja" es poner ese PHY externo y alli se termina. La ventaja es que hay mucha mas variedad, de los cuales tenes PIC32 / ST / etc, Aca las conexiones con MII/RMII dependiendo de la velocidad. Lo malo nuevamente esta en los componentes externos y sus conexciones que ahora son mas. Pero una gran flexibilidad de poner lo que te guste.

Pienso que deberias considerar el tamaño que estas manejando, la velocidad mas que nada, porque en el caso del tamaño cualquier cosa pones una flash externa para almacenar todas las paginas. Respecto a los stack TCP/IP, Las empresas que vi, que son TI / ST / Microchip, todas poseen ejemplos, y mas que nada TI/ST o cualquier otra siempre se basan en stacks no propietarios, como es uIP y lwIP. Es mas si queres ponerle al PIC uIP podes, nadie te lo niega.

Finalmente como dijo elreypic2 tenes el caso del ESP8266 que es para Wi-Fi y no Ethernet.

De ponerme yo no me pondria con C18, lo haria con XC8, una ves que tenga lista la version si procederia a comprar la licencia y optimizarlo. A no ser que estes muy jugado con el tema del espacio. Y sino como te dijo Planeta999, es hora de dejar los PIC de lado. ST ofrece muy buenos micros a buen precio y sus placas de evaluacion que no salen nada traen programador para los mismos. Y hay otras familias que tambien. Para los micros de ST vi ejemplos de Ethernet y por internet esta lleno, ya que la mayoria prueba con estos mismos.
« Última modificación: 06 de Abril de 2017, 15:51:35 por KILLERJC »

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #3 en: 06 de Abril de 2017, 15:48:10 »
Si el volumen de ventas no justifica un cambio radical yo me iría por la opción que comenta elreypic2 (la de 11$): más que nada porque será mucho más sencillo de modificar el SW y el HW actual.

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado delirio

  • PIC12
  • **
  • Mensajes: 64
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #4 en: 09 de Abril de 2017, 20:54:12 »
No sé que piensan ustedes... Yo por mi parte estoy un tanto desencantado con los pic... Los programo desde que era niño, por trabajo, por hobbie, pero pienso que se han quedado un poco en el tiempo.
Con otras plataformas conectarse a Internet es mucho más fácil... Es más, ya que la mencionaron, la esp8266 se flashea como un Arduino, tiene digitales, analógicos, pwm, y las librerías ni se comparan con las del pic...

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #5 en: 10 de Abril de 2017, 07:03:06 »
Bien, bien, voy tomando nota de vuestras sugerencias y consejos. Creo, ahora, que os debo una explicación un poco más en profundidad sobre lo que tengo planteado y las distintas soluciones que estoy barajando.

Bueno, el caso es, como os dije, que ahora tenemos una serie de equipos que sólo tienen interface serie, unos RS232 y otros RS232 y/o RS485. A éstos se les van a sumar más diseños que tienen que "hablar" entre ellos e imagino que también lo harán por algún tipo de estos serie a niveles RSxxx, nunca a TTL ya que es posible que entre ellos haya unos cuantos metros, tampoco mucho pero si lo suficiente como para que el TTL a 5V les pille demasiado lejos.

Uno de los servicios que damos a nuestros clientes es el de configurar y/o ajustar nuestros equipos de forma remota vía Internet y deseamos seguir haciéndolo, aunque cada día se nos va complicando más la cosa ya que cada vez tenemos más equipos distintos en una misma instalación y cada uno de ellos debe ser configurado/ajustado o accedido para descargar información de ellos y almacenarla en bases de datos remotas.

Hasta ahora hemos estado usando un módulo que nos hacía de puente entre dichos equipos RSxxx e Internet. Dicho módulo está construido alrededor de un Tibbo RJ203A que nos proporciona la parte Ethernet y un ATMega128A con su MAX232/SN75176B que nos proporciona la parte Serial del asunto. Al principio, muy al principio, el ATMega128A sólo se dedicaba a hacer de puente entre ambas interfaces, iba holgado y sobrado y la mayoría del tiempo tan sólo se dedicaba a tener dos interrupciones de tipo RDA y lo que recibía por una USART lo enviaba por la otra y viceversa.

Esta simplicidad lleva aparejada un complicación externa insoslayable: Conforme va aumentando el número de equipos que deben ser accedidos va aumentando el número de puentes Ethernet-Serie que hay que montar, ocupando "bocas" de su red y conexiones con su Router, una por cada Ethernet-Serie, y lo que es peor cobrarle al cliente por cada modulito de marras, al que además hay que enrutar para que acepte conexiones entrantes, ocupando puertos y entradas en la tabla NAT de su router de Internet.

Pero las cosas se van complicando aún más. El original módulo que sólo hacía de puente ahora ya va asumiendo funciones más complejas. Por ejemplo, ahora el ATMega "emula" a un navegador de Internet y envía, a un Servidor nuestro, cada cierto tiempo una petición POST en HTML con su identificador único para que las reciba un script PHP y con esto conseguimos registrar qué modulo habla desde qué IP pública.

Y ahora le hemos dado una nueva vuelta de tuerca al puñetero módulo. Ya no solo acepta conexiones externas para hacer de puente y hace actualizaciones hacia afuera para "registrarse" sino que de forma autónoma "habla" con distintos dispositivos por el canal serie y si tiene datos que "subir" abre una conexión con nuestro servidor y manda los datos ...

Como veis poco a poco el trabajo al ATMega128A se le va complicando y ya le está viniendo más largo y ancho de lo que le conviene.

Y si esto fuese todo pues bueno, ya está hecho, funciona y no se le podría pedir más nada pero el caso es que seguimos creciendo, en equipos a conectar, en funciones a realizar y en prestaciones más complejas que atender y contemplar.

Así que tanto el ATMega128, por prestaciones, y el Tibbo RJ203A, por precio, están dejando de ser una opción válida. Y tengo la necesidad de imaginar otra solución más elegante, potente y barata. Es por ello por lo que estoy explorando otras vías. De alguna forma debo dar servicio con un único módulo escalable a varios problemas simultáneos y superpuestos: Brindar conexionado entrante y saliente vía Internet, a ser posible de forma centralizada, desde una única conexión UDP/TCP/IP, y debo dar conexionado y servicio a tantos equipos serie RS232/RS485 como sea posible, haciendo puente tanto entre la parte Ethernet y cualquiera de ellos como entre ellos mismos haciendo posible que unos hablen con los otros sin salir a la red exterior. Y para rematar la faena debo hacer que el dichoso módulo sea capaz de "hablar" de forma autónoma con algunos de los equipos conectados a él y configurarlos o descargarle información de forma automática o semi-automática.

Lo primero que pensé fué en lo que puse en este hilo, un PIC18F67J60 que me de la parte Ethernet de forma barata y ¿eficiente? y ya por el otro lado vería como ponerle puertos COM a mansalva, o USART´s apilables y o ya vería como. Es una opción y como tal la estoy estudiando, es la más directa y la más accesible para mis conocimientos, herramientas y ejemplos. De ahí lo de el STACK TCP/IP de Microchip, que tengo, y el CCS que también tengo, a ver si alguno de los dos me puede servir de base para trabajar en este tema ...  :? :shock: :oops:

P.D.: Por otro lado, estoy trabajando en hacer un "Core" (para otro diseño, para otro cliente) que tiene una problemática distinta pero para el que también me hacen falta conectividades Ethernet/Internet y varios COM RS232 entre otras cosas más suculentas ... pero ahí estoy metiendo una Raspberry-Pi-3 programada en PHP y Python, y la verdad es que estoy encantado ... y cuesta menos que un puñetero Tibbo RJ203A que él sólo no sabe hacer ni la O con un canuto mientras que la Pi-3 tiene hasta MySQL montada dentro  :shock: :D  :mrgreen:

Continuamos para bingo.

« Última modificación: 10 de Abril de 2017, 07:09:36 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #6 en: 10 de Abril de 2017, 11:06:37 »
Mi única experiencia con un stack TCP/IP fue con el de CCS. Y conste que primero lo intenté con el de C18 pero la compleja estructura de esas librerías me abrumó tanto que nunca fui capaz de hacerlo funcionar.
Sin embargo, tu capacidad programando supera con creces a la de este humilde servidor, y seguro que coges la de C18 y en una tarde la haces comer de tu mano, así que mi único argumento para decantar la balanza por CCS, contigo es lo de menos.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #7 en: 10 de Abril de 2017, 12:56:19 »
Mi única experiencia con un stack TCP/IP fue con el de CCS. Y conste que primero lo intenté con el de C18 pero la compleja estructura de esas librerías me abrumó tanto que nunca fui capaz de hacerlo funcionar.
Sin embargo, tu capacidad programando supera con creces a la de este humilde servidor, y seguro que coges la de C18 y en una tarde la haces comer de tu mano, así que mi único argumento para decantar la balanza por CCS, contigo es lo de menos.

Ja, ja, ja  :D :D :D

Gracias por la inmerecida confianza ... pero el caso es que ya he toqueteado y compilado el de Microchip con C18 ... y ¡funciona! ¡incredibile pero cierto! pero, siempre hay un pero, es una puta maraña de librerías, includes, defines y redefines que se caga la perra  :5]

Ahora voy a ver si el CCS es más amigable y puedo sólo extraer y compilar las dos o tres cosillas que me hacen falta (TCP, UDP, ICMP  y poco más y si no pues tendré que liarme la manta a la cabeza y bailar con la más fea (a este lado del Guadalquivir)  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #8 en: 10 de Abril de 2017, 13:06:59 »
ya he toqueteado y compilado el de Microchip con C18 ... y ¡funciona! ¡incredibile pero cierto!

si ya lo decía yo...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #9 en: 10 de Abril de 2017, 14:39:51 »
Gracias por la inmerecida confianza ... pero el caso es que ya he toqueteado y compilado el de Microchip con C18 ... y ¡funciona! ¡incredibile pero cierto! pero, siempre hay un pero, es una puta maraña de librerías, includes, defines y redefines que se caga la perra  :5]

Es el amor proveniente de C jeje. No es lo mismo que se te presente la libreria y tener que armar todo uno mismo que te den las funciones pre-armadas, yo me quise cortar una y otra ves las manos con lwIP, donde el config tiene miles de DEFINES para configurarlo. Y no hay ningun tutorial "rapido" de como implementarlo, lo cual se vuelve una pesadilla comenzar a usarlo, la verdad que yo ya me olvide complemtamente por dejarlo un "tiempito". Por mas ejemplos que tengas, lo unico que logras es modificar el ejemplo y no hacer de 0 lo que queres.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #10 en: 10 de Abril de 2017, 15:53:40 »
Bueno, bueno, bueno  8)

Ya he empezado a probar el STACK TCP/IP de CCS ... tan sólo he abierto un proyecto y le he añadido el ejemplo ex7a.c Lo he compilado y programado en el 18F67J60 sin tocar absolutamente nada de nada de nada ... y ¡voilá! funcionando a la primera, escuchando toda la paquetería IP y ARP que se mueve por la red de mi empresa y volcándola sobre el puerto serie  :shock: Así da gusto :D :D :D

Ahora imagino que seguiré con el resto de ejemplos para ir montando algo que medio se parezca a lo que necesito. Muchas gracias a todos por vuestros comentarios, os mantendré informados  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #11 en: 11 de Abril de 2017, 02:07:04 »
Por cierto, muchas gracias a Marcos, MGLSOFT, por proporcionarme los condimentos para elaborar ciertos guisos (en red) muy suculentos  :D :D :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Abner_emanuel

  • PIC16
  • ***
  • Mensajes: 160
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #12 en: 16 de Abril de 2017, 18:59:27 »
 RedPic para los que no somos buenos programadores como tu, podrías mostrarnos algo de información o algún proyecto Ethernet ccs?. Es bueno escuchar que logran las cosas pero de la vista nace el amor, por favor un vídeo para ver el funcionamiento.  :-/ Motiven a este principiante del ccs, la verdad me interesa mucho saber de la colectividad Ethernet con Pic.
El señor es mi pastor,  nada me faltará.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #13 en: 16 de Abril de 2017, 20:05:26 »
Planeta9999 tiene experiencia con pequeños micros ARM de 32 bits. Pregúntale.
Creo que en tu caso sería la mejor opción. Va a costar lo mismo que el PIC y vas a tener librerías y compiladores abiertos y un micro mucho mejor adaptado a esas tareas. El PIC seguro que pronto se volverá a quedar corto. Con un ARM, podrás escalar la aplicación hasta donde quieras.

Un saludo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re:PIC18F67J60 ¿Cuál es el mejor camino?
« Respuesta #14 en: 17 de Abril de 2017, 05:34:25 »
Probablemente el amigo Picuino tenga razón, de hecho sé que la tiene (más abajo argumento el por qué lo sé) :mrgreen:

Pero como comentaba en el primer post de este hilo, las condiciones del proyecto que me traigo entre manos me vienen impuestas desde fuera, la política de mi empresa me deja poco margen de maniobra y bastante es que puedo hacer uso de un PIC (con su capa hardware de Ethernet, modelo 18F67J60 ó 18F87J60 (por aquello de las dos USART)) en vez de tener que utilizar un ATMega128A que en mi empresa compran por miles. Así que como veis poco más puedo decidir que elegir entre C18 y CCS para montar una solución para esto.

Decía que creo que Picuino tiene razón porque, en paralelo y para otra empresa, también estoy desarrollando una solución que sin ser igual a ésta tiene muchos puntos en común, pero en la que tengo libertad para decidir qué hardware/software/firmware/tools/compilers elegir, sea lo que sea. Y la estoy desarrollando con 900MHz quad-core ARM Cortex-A7 de una Raspberry Pi 2 y/o el 1.2GHz 64-bit quad-core ARMv8 de una Raspberry Pi 3

Y la verdad es que es otro mundo, infinitamente mayor en prestaciones, brutalmente mejor en capacidad, escalabilidad, adaptabilidad y todas las xxx-lidad que queráis. Programando a alto nivel (C++, Python, PHP, MySQL y tal y tal), con gigas de memoria hard y mas de un giga de RAM, con todo un Debian debajo ... en fin, qué queréis que os cuente.

Y en esa estamos, andando en un McLaren-Honda para unos y en un Mercedes AMG Petronas para otros.

Sin embargo iré publicando por aquí los avances que vaya obteniendo, siempre habrá alguien que pueda aprovecharlos  :mrgreen:


« Última modificación: 17 de Abril de 2017, 06:07:25 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania


 

anything