Tutorial sobre cómo añadir compatibilidad PoE al MCU TCP/IP Serial-to-Ethernet W7500 de WIZnet
En este tutorial, veremos cómo podemos añadir compatibilidad PoE (IEEE802.3af) al MCU con core TCP/IP del modelo W7500 de WIZnet, todo ello mediante mediante el módulo WIZPoE. Aplicando la solución al kit de desarrollo que WIZnet ha desarrollado para el W7500, veremos cómo se puede añadir la compatibilidad con PoE y así alimentar la placa con la tensión necesaria a través del puerto Ethernet.
Tabla de Contenidos
1. Introducción
El IOP (Internet Offload Processor) W7500 es la solución de un solo chip que integra un ARM Cortex-M0, 128 KB de Flash y un núcleo TCP/IP cableado para diversas plataformas de aplicaciones integradas que requieren especialmente en IoT.
El núcleo TCP/IP es una pila TCP/IP cableada probada en el mercado con una MAC Ethernet integrada. La pila TCP/IP cableada admite TCP, UDP, IPv4, ICMP, ARP, IGMP y PPPoE, que se han utilizado en diversas aplicaciones durante años. El W7500 se adapta mejor a los usuarios que necesitan conectividad a Internet para sus aplicaciones.
El W7500 de WIZnet, perteneciente a la familia de módulos ‘Serial to Ethernet’, es un conversor de protocolo que transmite los datos enviados por el equipo serie como datos TCP/IP y convierte los datos TCP/IP recibidos a través de la red de nuevo en datos serie al equipo serie. Con este módulo, es posible añadir fácilmente una función de red Ethernet a un dispositivo que soporte interfaz UART, de forma que los dispositivos pueden ser controlados a través de una red Ethernet – Internet.
2. Tecnología Power over Ethernet (POE)
«Power over Ethernet», o también conocido como PoE, es una tecnología que permite transmitir energía eléctrica junto con datos a través de cables Ethernet estándar. Esto elimina la necesidad de cables de alimentación separados para dispositivos de red, como cámaras IP, teléfonos VoIP, puntos de acceso Wi-Fi y otros dispositivos de red.
En un sistema PoE, un dispositivo que suministra energía, como un switch PoE o un inyector PoE, envía energía eléctrica a través del cable Ethernet al dispositivo de red que lo necesita. El dispositivo de red compatible con PoE puede entonces recibir energía y datos a través del mismo cable Ethernet, simplificando la instalación y reduciendo la necesidad de fuentes de alimentación adicionales.
El estándar IEEE 802.3af es uno de los primeros estándares PoE, que proporciona hasta 15.4 vatios de potencia. Luego, el estándar IEEE 802.3at, también conocido como PoE+ o PoE Plus, aumentó este límite a 25.5 vatios. Además, hay estándares más recientes, como IEEE 802.3bt, que pueden suministrar aún más energía a través de PoE.
Gracias a esta tecnología podemos simplificar las instalaciones en múltiples aplicaciones, como por ejemplo a la hora de diseñar y desarrollar:
- Cámaras IP
- Puntos de acceso
- Teléfonos IP
- Sistemas de vigilancias
- Sistemas de seguridad
- NAS
- Sistemas de publicidad
3. MCU TCP/IP W7500 de WIZnet
Figura 1. MCU TCP/IP W7500
El chip W7500 es una solución de un solo chip que integra un procesador ARM Cortex-M0, una memoria Flash de 128 KB y un núcleo TCP/IP cableado para diversas plataformas de aplicaciones embebidas. El núcleo TCP/IP es una pila TCP/IP cableada probada en el mercado con una MAC Ethernet integrada. La pila TCP/IP cableada admite TCP, UDP, IPv4, ICMP, ARP, IGMP y PPPoE, que se ha utilizado en diversas aplicaciones durante más de 15 años. El W7500 se adapta mejor a los usuarios que necesitan conectividad a Internet.
Entre sus características destacan:
- ARM Cortex-M0
- Frecuencia máxima de 48 MHz
- Núcleo TCP/IP cableado
- 8 sockets
- SRAM por socket: Máx. 32 KB
- MII (interfaz independiente del medio)
- Memorias
- Flash: 128 KB
- SRAM: de 16 KB a 48 KB ( Mínimo 16 KB disponibles si se utiliza un búfer de zócalo de 32 KB, Máximo 48 KB disponibles si no se utiliza un búfer de zócalo)
- ROM para código de arranque 6 KB
- Gestión de reloj, reset y alimentación
- POR (reinicio de encendido)
- Regulador de tensión interno : 3,3V a 1,5V
- Oscilador de cristal externo de 8 a 24 MHz
- Oscilador RC interno de 8 MHz
- PLL para reloj de CPU
- ADC
- 12bit, 8ch, 1Msps
- DMA
- Controlador DMA de 6 canales
- Periféricos soportados: UARTs, SPIs
- GPIO
- 53 E/S (16 E/S x 3, 5 E/S x 1)
- Modo de depuración
- Depuración por cable serie (SWD)
- Temporizador/PWM
- 1 Watchdog (contador descendente de 32 bits)
- 4 temporizadores (contador descendente de 32 ó 16 bits)
- 8 PWM (contadores/temporizadores de 32 bits con preescalador programable de 6 bits)
- Interfaces de comunicación
- 3 UART (2 UART con FIFO y control de flujo, 1 UART simple)
- 2 SPI
- 2 I2C (maestro/esclavo, modo rápido (400 kbps))
- Criptografía
- 1 RNG (generador de números aleatorios): Número aleatorio de 32 bits
- Encapsulado: 64 TQFP (7×7 mm)
El sistema principal consta de:
- Dos Maestros
- Núcleo Cortex-M0
- uDMAC(PL230, 6 canales)
- Diez Esclavos
- BOOT ROM interna
- SRAM interna
- Memoria Flash interna
- Dos puentes AHB2APB que conectan todos los periféricos APB
- Cuatro AHB dedicados a GPIOs de 16 bits
- Núcleo de hardware TCP/IP
Figura 2. Diagrama de bloques del W7500
Puede consultar el datasheet del W7500 en el siguiente enlace.
3.1 Placa de Evaluación con el W7500 de WIZnet
Con el fin de testear las distintas funcionalidades que aporta el MCU TCP/IP W7500 de WIZnet para tareas Serial-to-Ethernet, se ha desarrollado un kit de evaluación, el modelo Surf 5.
Figura 3. Kit de desarrollo Surf 5 para el MCU TCP/IP W7500
Además de las especificaciones antes nombradas del propio W7500, este pequeño kit incluye un conector RJ45, un regulador de baja caída o LDO, y un conversor UART a USB con el puerto microUSB.
Figura 4. Diagrama de Pines de la placa Surf 5
Como vemos en el diagrama con el pinout, tenemos disponibles todas las interfaces y GPIOs disponibles para poder empezar a desarrollar aplicaciones sobre la plataforma W7500.
En la siguiente imagen se muestra el esquemático de este kit de evaluación desarrollado.
Figura 5. Esquemático de la placa Surf 5
Como podemos ver en el esquemático, la placa Surf5 incluye un par de conectores rectos de 4 pines, lugar donde podremos añadir el nuevo módulo desarrollado por WIZnet para añadir compatibilidad PoE a la placa Surf5, y por tanto al módulo W7500.
3.2 Módulo PoE WIZPoE-S1
Figura 6. Módulo PoE WIZPoE-S1
Mediante el uso del módulo WIZPoE-S1, que soporta tanto el Modo A como el Modo B, puede alimentar eficientemente aplicaciones externas dentro del rango de 8W sin necesidad de un cable de alimentación, no sólo para Ethernet sino también para diversas aplicaciones externas.
Entre sus características tenemos:
- Compatible con IEEE802.3af
- Modo A(Endspan), Modo B(Midspan)
- Amplio rango de tensión de entrada 40Vdc ~ 60Vdc
- Potencia PoE:8W (5V/1.6A)
- Transmisión PoE:1,2+/3,6- y 4,5+/7,8- adaptable, la distancia de transmisión puede alcanzar hasta 100 metros.
- Alta eficiencia de conversión CC/CC
- Sin aislamiento
- Puente rectificador interno de 2 canales
- Configuración de los Pines
- Características eléctricas DC
- Parámetros técnicos del estándar
Mediante el uso de este módulo, podremos conectarlo fácilmente a la placa de evaluación Surf5 o a nuestro propio diseño, y podremos obtener la alimentación necesaria para poder alimentar la placa y ser compatible con el estándar PoE.
Figura 7. Conexión del módulo WIZPoE-S1 a la placa Surf 5
4. Empezando a trabajar con el kit de desarrollo
Para empezar a trabajar con el kit de desarrollo Surf 5, deberemos elegir la fuente de alimentación deseada, bien sea a través del conector MicroUSB de la propia placa, o bien haciendo uso del módulo WIZPoE para poder conseguir los necesarios 5 V que requiere la placa.
Una vez seleccionada la fuente de alimentación, deberemos realizar una serie de pasos previos para empezar a trabajar directamente en la placa:
- Instalar los drivers del conversor UART a USB. En este caso son los drivers necesarios para el conversor CH340N. (Link de descarga desde el repositorio de Github de WIZnet)
- Instalar la herramienta ISP para cargar el firmware en la memoria Flash. Para instalar la herramienta para el W7500, puede descargarla desde el siguiente enlace.
- Preparar el entorno de desarrollo. Se puede elegir e instalar el entorno de desarrollo de su preferencia entre las dos opciones, VS Code y KEIL, que se ofrecen a continuación (VS Code y KEIL)
- Empezar a desarrollar proyectos para Surf 5 en VS Code y Keil 5. En el siguiente enlace se puede acceder al repositorio de GitHub de WIZnet con el proyecto de ejemplo para la Surf 5.