직접 Maker가 만들고 공유하는 다양하고 유용한 WIZnet TCP/IP Ethernet Controller Driver

Written by MC


Overview

WIZnet는 W3100(단종)을 시작으로 W3150A+, W5100, W5200, W5300, W5500 등 개선되고 안정화된 TCP/IP Chip을 선보이고 있으며, 전세계의 많은 개발자와 Maker에게 지속적인 관심을 받고 있다.

위즈네트는 큰 사랑을 받은 W5100의 성능을 개선하고 가격을 낮춘 W5100S를 최근 출시하였고, 곧 다가올 IPv6 IoT 시장에 대응할 수 있는 Dual TCP/IP Stack(IPv4 & IPv6) 지원하는 W6100을 곧 출시할 예정이다.

위즈네트는 공식적으로 W5xxx Series을 통합 운영할 수 있는 ioLibrary를 제공하고 있으며, 이는 사용자 Application의 수정을 최소화하고, 손쉽게 새로운 칩으로 변경할 수 있도록 한다.

그리고, W6100에 대한 io6Library 또한 Github를 통해 제공될 예정이다.
ioLibrary에 익숙한 사용자라면 io6Library 역시 손쉽게 사용할 수 있을 거라 기대한다.

이 글에서 소개하고자 하는 것은 위즈네트의 공식 ioLibrary가 아닌, 위즈네트 뮤지엄에서 소개하고 있는 전세계 Maker나 개발자가 개발한 유용하고 다양한 Library를 소개하고자 한다.

소개할 Library는 다음과 같다.

Arduino Library

Official Arduino Library

Aurdino Library는 전세계 Maker에게 가장 사랑받고 활용되고 있는 Library이다. 누구나 손쉽고 빠르게 개발할 수 있는 장점은 있지만, 단순한 Library 구조로 위즈네트 Chip이 제공하는 세부적인 기능을 제어하기에는 한계가 있다.

이러한 단점에도 불구하고, 전세계 Maker들에게 지속적으로 사랑받고 활용되는 이유는, 손쉽게 동작할 수 있는 다양한 Example을 제공하고, 전세계 Maker들이 함께 만들어가는 Library로 github에 공유되어 W5100, W5200, W5500, W5100S, W6100 등을 Runtime에 지원하는 Library를 제공한다.

Multicasting Arduino Library

이 Library는 Arduino Library가 지원하지 않는 UDP Mutilcasting 구현을 위한 Library를 제공한다. 저자는 udp.h 와 udp.c에서 UdpClass::begin() 함수와 같은 UdpClass::beginMulti() 추가하여 구현하였다.

필자 생각에는 UdpMultiClass를 원본 Library를 수정하지 않고, UdpClass 상속 받아 beginMulti()를 추가하는 것이 활용도 면에서 좋을 것으로 판단된다.

 
   class UdpMultiClass : UdpClass {
      public:
      void beginMutli(uint16_t portMulti, uint8_t * addrMulti);
   }

   void UdpMutiClass::beginMulti(uint16_t portMulti, uint8_t * addrMulti) 
   {
      _port = portMulti;
      _sock = 0; //TODO: should not be hardcoded
      // set destination IP
      W5100.writeSnDIPR(_sock, addrMulti);
      W5100.writeSnDPORT(_sock, portMulti);

      socket(_sock, SnMR::UDP, _port, 0x80);
   }
 

[Refer to WIznet Museum]
[Download Library]
[How to Use]

Non-blocking Arduino Library

Non-Blocking Arduino Library는 Arduino Board가 DHCP Server로 부터 IP address는 할당받거나, DNS 요청이 Blocking 되어 수초 동안 아무런 동작도 하지 않는 Standard Library를 Blocking 되지 않도록 일부 코드를 수정한 것입니다. 저자와 같은 고민을 해본 분들에게 도움이 될 만한 Library입니다.

[Refer to WIznet Museum]
[Download Library]
[How to Use]

FreeRTOS Library

FreeRTOS 기반에 동작하는 ATmega MCU의 WIZnet Library로 WIZnet가 제공하는 초기 ioLibrary로 구현되었습니다.

이 Library는 RTOS 기반의 Application에서 WIZnet Library가 어떻게 활용될 수 있는지 잘 보여줍니다.
저자는 그외에도 FreeRTOS 기반의 uIP Stack도 지원하고 있으며, 이는 WIZnet의 Hardware TCP/IP stack과 Software Stack를 손쉽게 비교할 수 있습니다.

또한, 이 Site는 WIZnet Chip의 MACRAW SOCKET 기능을 활용하여 uIP Stack을 구현하는 Library도 제공하고 있습니다. 여기를 참조하세요.

[Refer to WIznet Museum]
[Download Library]
[How to Use]

ATmega Library

ATmega Library는 W5100을 기반으로 하는 간단한 Library 입니다.
ermicor의 Library를 수정하여 만들었습니다.
이 Library는 ioLibrary를 필요한 기능만을 구현하여 아주 작게 만들었습니다.
아래 코드는 WIZnet Chip을 Access하기 위한 기본 IO library입니다.


void  W51_register(W5100_CALLBACKS  *pcallbacks)
{
    select = pcallbacks->_select;
    xchg = pcallbacks->_xchg;
    deselect = pcallbacks->_deselect;
    reset = pcallbacks->_reset;
    inited = FALSE;
    if ((select) && (xchg) && (deselect))  inited = TRUE;    // these functions must be valid
}
void  W51_write(unsigned int  addr, unsigned char  data)
{
    if (!inited)  return;                        // not set up, ignore request

    select();                                    // enable the W5100 chip
    xchg(W5100_WRITE_OPCODE);                    // need to write a byte
    xchg((addr & 0xff00) >> 8);                  // send MSB of addr
    xchg(addr & 0xff);                           // send LSB
    xchg(data);                                  // send the data
    deselect();                                  // done with the chip
}
unsigned char  W51_read(unsigned int  addr)
{
    unsigned char                val;

    if (!inited)  return  0;                     // not set up, ignore request

    select();                                    // enable the W5100 chip
    xchg(W5100_READ_OPCODE);                     // need to read a byte
    xchg((addr & 0xff00) >> 8);                  // send MSB of addr
    xchg(addr & 0xff);                           // send LSB
    val = xchg(0x00);                            // need to send a dummy char to get response
    deselect();                                  // done with the chip
    return  val;                                 // tell her what she's won
}

[Refer to WIznet Museum]
[How to Use]

PSoC Library

PSoC Library는 Cypress사의 PSoC4 & PSoC4에 동작하며, W5100, W5200, W5500을 통합한 Library이다. PSoC 사용자에게는 아주 유용한 Library가 될 것이다.

[Refer to WIznet Museum]
[Download Library]

Library for BASIC Language Users

이 Library는 특이하게 일반적인 C library가 아닌 Basic 언어로 작성된 Library이다.

PIC 과 ATmega MCU를 지원한다.

PIC Library

[Refer to WIznet Museum]
[Download Library]
[How to Use]

ATmega Library

[Refer to WIznet Museum]
[Download Library]
[How to Use]

BSD SOCKET

다음 표는 ioLibrary와 BSD Socket Library와의 지원 함수를 비교한 것이다.

ioLibrary BSD Sccket
socket() O O
bind() X O
listen() O O
accept() X O
send() & recv() O O
sendto() & recvfrom() O O
select() & poll() X O

WIZnet의 ioLibrary는 BSD Socket과 달리 bind()accept() 함수를 지원하지 않는다.

BSD Socket Library인 경우, 다음 그림처럼 bind()에 의해 source port가 할당되고 socket resource와 바인딩된다. 또한, client의 접속을 accept()를 통해 대기하며, client 접속 요구가 있을 경우, 새로운 socket을 생성하고 임의의 source port로 바인딩하여 이를 data communication socket으로 사용한다.

ioLibrary인 경우, BSD Socket의 socket()와 bind() 함수를 ioLibrary의 socket() 함수 하나로 통합되어 있다.

또한, 아래 그림처럼 Socket resource는 BSD와 달리 동적으로 할당받는 것이 아니라, 이미 Chip에 존재하는 Hardwired socket을 그대로 사용함ㅇ로 accept() 함수가 필요없다. 즉, ioLibrary의 listen socket은 client의 접속 요구를 항상 대기하고 있으며, client의 요구가 받아질 경우 곧바로 Data communication socket으로 역할을 변경한다. 여러 client의 접속 요구를 받아들이기 위해서는 client 수 만큼 listen socket을 생성하여야 한다.

이러한 차이에도 불구하고, WIZnet chip은 아래와 같이 BSD socket Library를 지원한다.

BSD Socket by using ioLibrary

이 Library를 위즈네트의 ioLibrary에 bind()와 accept() 함수를 추가 구현한 Library이다.
여기서 이 함수는 아래와 같이 empty function으로 구현하여 BSD와의 호환성만을 유지한 것 같다.


int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{
   return 0;
}
int bind(int s, const struct sockaddr *name, socklen_t namelen)
{
   return 0;
}

이것보다는 아래와 같이 구현하는 것이 좀 더 정확한 구현이 될 것이다.


int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{
   struct sockaddr_in * destaddr = (struct sockaddr_in *)addr;
   while(getSn_SR(s) != SOCK_ESTABLISHED)
   {
      if(getSn_IR(s) & Sn_IR_TIMEOUT) return -1;
   }
   destaddr->sin_family = AF_INET;
   destaddr->sin_port = getSn_DPORTR(s);
   destaddr.sin_addr.s_addr = ntohl(getSn_DIPR(s));
   return 0;
}
int bind(int s, const struct sockaddr *name, socklen_t namelen)
{
   setSn_PORTR(((struct sockaddr_in *)name)->sin_port);
   return 0;
}

[Refer to WIZnet Musuem]
[Download Library]

POSIX BSD Socket

POSIX BSD Library와 가장 유사하게 구현된 Library로 BSD Socket Library로 구현된 다양한 Application을 손쉽게 Porting 할 수 있다.
select()와 poll(), 그리고 getsockoptH()와 setsockopt() 함수도 구현되어 있다.


int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
{
    int ret;
    struct w5100_socket *s;

    s = get_socket_from_fd(sockfd);
    if (s == NULL)
    {
        ret = -1;
    }
    else if ( addr->sa_family != AF_INET )
    {
        errno = EAFNOSUPPORT;
        ret = -1;
    }
    else if (s->state != W5100_SOCK_STATE_CREATED)
    {
        errno = EINVAL;
        ret = 1;
    }
    else if (s->type == SOCK_STREAM)
    {
        struct sockaddr_in *server;
        uint8_t sr;
        uint8_t sr_end;

        (void)addrlen;
        server = (struct sockaddr_in *)addr;

        /* TODO: check if already in use EADDRINUSE */
        w5100_write_sock_regx(W5100_Sn_PORT, s->isocket, &server->sin_port);
        w5100_command(s->isocket, W5100_CMD_OPEN);
        sr_end = W5100_SOCK_INIT;
        do {
            sr = w5100_read_sock_reg(W5100_Sn_SR, s->isocket);
        } while (sr != sr_end);
        s->sockname = *server;
        s->state = W5100_SOCK_STATE_BOUND;
        ret = 0;
    }
    else if (s->type == SOCK_DGRAM)
    {
        struct sockaddr_in *server;
        (void)addrlen;

        server = (struct sockaddr_in *)addr;
        bind_udp(s, server->sin_port);
        ret = 0;
    }
    else
    {
        /* TODO: RAW */
        errno = EBADF;
        ret = -1;
    }
    return ret;
}

[Refer to WIZnet Musuem]
[Download Library]
[How to Use]


블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Wiring Wiz820io Ethernet Module to Teensy 3.1 (or 3.2)

by BigDan



Overview

He have a Teensy 3.1 and Wiz820io Ethernet Module He want to connect together. PJRC does sell a little shield for the Wiz820io, but He plan to mount the Teensy to a PCB and want to do the same with the Wiz820io rather than use this shield.

He immediately had issues which he incorrectly blamed on drivers. Had this been any MCU other than the Teensy, drivers would have been a good guess. He was puzzled as to why he would have driver issues given PJRC was selling the shield. It should work, yet didn’t.

To make a very long (as in 8 hours) story short, the root of the problem lies in the Wiz820io’s RESET pin. He finally discovered that you MUST properly provide power to this pin to get the Wiz820io up and running. When you do, the two lights on the Wiz820io will come on.

But even after discovering the necessity of the RESET pin, He could not get the drivers to work. In his research he found one person telling another to toss their Arduino Due and use a Teensy because the Teensyduino had all the necessary drivers. OK, He must be using the proper drivers, and now he know the trick of the RESET pin, what else is he missing?

PJRC shield wiring diagram

Teensy3 SD Card WIZ820io MCP1825 JUMPER PADS
4 2:CS
8 Left Side
9 RESET
10:CS SS
11:DOUT 3:DI MOSI
12:DIN 7:DO MISO
13:SCK 5:CLK SCLK
VIN 1:IN
4:VDD VIN33,VIN33 3:OUT
GND 6:VSS GND,GND,GND 2:GND+TAB Right Side
PWDN Center

How to be wired a standalone Wiz820io module to a Teensy 3.1

Learn More

Goto Original


블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

How to use WIZnet Chip set such as W5100, W5200, W5300, and W5500 with Basic source code

by MCS electronics



Overview

This post introduces how to use WIZnet chip solution such like as W3100A, W5100, W5200, W5300, and W5500 with BASIC source code on BASCOM-AVR & BASCOM-8051.
BASCOM-AVR & BASCOM-8051 are BASIC complier & IDE development tools. These can implement with BASIC source code on WIZnet chip solutions.

CONFIG TCPIP

  • Syntax W3100A

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, TX= tx, RX= rx , NOINIT= 0|1 [, TWI=address] [, Clock = speed] [, baseaddress = address] [,TimeOut=tmOut] [,CHIP=W3100A] 
    
  • Syntax W5100

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, TX= tx, RX= rx , NOINIT= 0|1 [, baseaddress = address] [,TimeOut=tmOut] [,CHIP=5100] [,SPI=spi] [,INT=imsg] [,CS=cs] [,NOUDP=noudp] 
    
  • Syntax W5200

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, NOINIT= 0|1 [,TimeOut=tmOut] [,CHIP=W5200] [,SPI=spi] [,INT=imsg] [,CS=cs] [,NOUDP=noudp] [TXn= tx] [, RXn= rx] 
    
  • Syntax W5300

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, NOINIT= 0|1 [, baseaddress = address] [,TimeOut=tmOut] [,CHIP=W5300] [,INT=imsg] [,NOUDP=noudp] [align=align] [TXn= tx] [, RXn= rx] [SOCKMEM=sockmem] 
    
  • Syntax W5500

    CONFIG TCPIP = NOINT , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, NOINIT= 0|1 [,TimeOut=tmOut] [,CHIP=W5500] [,SPI=spi] [,INT=imsg] [,CS=cs] [,NOUDP=noudp] [TXn= tx] [, RXn= rx] 
    

Learn More

Goto Original

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

AVR ATxmega - Development Board (Model: AL-XAVRB_EXT)

by ALVIDI



Overview

This product supports a large 8MBytes SDRAM memory and Hardwired TCP/IP chip W5200. So, It is very easy to develope the applicatioin to be needed large memory such like IP-camera, Web-service, and SSL secuity communication.

Construction:

  • Controller: Atmel AVR ATxmega128A1U-AU up to 32 MHz
  • Equipment:

    • internal voltage regulator 3.3V
    • external SDRAM 64Mbit
    • USB to USART CP2102 controller
    • Ethernet to SPI W5200 controller
    • Reset and SWQ2 keys
    • quartz sockez and 32.768kHz quartz
    • 50 I/O
    • Power LED
    • optional equipment: on request
    • MicroSD card slot
    • site pin connectors
    • JTAG and PDI connectors
    • Voltage Supply:
      • USB 5V or external 3.3V or external 5.0-12V
  • Module size: W x H x D 49 mm x 100 mm x 19 mm

  • Operating temperature:
    • -25°C bis +70°C with microSD card slot
    • -40°C bis +70°C without microSD card slot

Links:


Learn More

Goto Original


블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

freeRTOS and libraries for AVR ATmega with Eclipse IDE

by feilipu



Overview

This is a library for AVR ATmega platform such as Arduino, AVRDUDE, and etc. This libraray support uIP Library operated by WIZnet chip such as W5100, W5200, and W5500. This library also support OS environment as FreeRTOS.

This library is very useful for AVR developers who have an experience about uIP stack.

Features

  • Arduino Uno family ATmega328p, Freetronics EtherMega (Arduino Mega2560), and Goldilocks ATmega1284p, scheduling and IO works.
  • Being able to use any Timer on the AVR as the system Tick. In practice this means Timer0 on 328p (Arduino Uno), Timer3 on 2560 (Arduino Mega) and 1284p (Pololu SVP) and Timer2 on 1284p with 32.768kHz watch crystal (Freetronics Goldilocks).
  • Converting all of the relevant libraries to be friendly to a RTOS system. No delay busy-wait loops etc. Everything defers to (is interruptible by) the scheduler when waiting, or is driven from interrupts.
  • Having many finished projects, that are good demonstrations of lots of AVR and freeRTOS capabilities.
  • Having the Sparkfun LCD Shield working properly, with printf string formatting.
  • Having the Rugged Circuits QuadRAM 512kByte and MegaRAM 128kByte RAM extensions working on ATmega2560.
  • Porting ChaN FatF microSD card support for a variety of uSD shield cages.
  • Porting Wiznet W5100 and W5200 drivers for Arduino Ethernet shields.
  • Porting Wiznet and uIP DHCP and HTTP applications, creating options for implementing a basic web server.
  • Properly implementing semaphores for access to resources (ports, interfaces, ADC, LCD).
  • Properly implementing queues for transferring data between tasks (threads).

Learn More

Goto Orignal : http://feilipu.me/2011/09/22/freertos-and-libraries-for-avr-atmega/

Download

http://sourceforge.net/projects/avrfreertos/

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

ioLibrary 100% 활용하기 (1)


ioLibray ?

ioLibrary는 WIZnet의 W5XXX(W5100,W5200,W5300,W5500) 기반의 통합 BSD socket Library를 제공한다.
칩별로 차이가 있는 Hardware dependent code들을 Driver로 분리하여 각각 구현되었고, 이를 이용하여 BSD Socket API를 구현함으로써, Webserver, FTP와 같은 Application Protocol을 구현함에 있어 Hardware적 제약 조건으로부터 자유로워질 수 있으며, Application의 최소한의 수정으로 쉽게 원하는 WIZnet Chip들로 Porting이 가능하다.

ioLibrary 특징

  • DRIVER 분리
    • Basic IO function
      1. WIZCHIP_READ and WIZCHIP_WRITE
      2. 모든 Register & Memory Access를 WIZCHIP_READ & WIZCHIP_WRITE로 통일
      3. Hardware dependent I/F code는 Callback Function으로 분리
      4. Driver 수정없이 callback function 등록만으로 바로 사용
    • Extra Function
      1. Optional : Omissble for code optimization
      2. User-freindly name : 같은 기능 다른 이름의 Register 들을 통일
  • SOCKET API
    • Berkeley Socket API와 유사
    • 네트워크 응용 개발 경험자들은 쉽게 ioLibrary 활용 가능
    • 모든 함수의 상황별 Error Code 지원
    • Blocked or Non-Blocked function 지원
    • Datagram Data 처리의 유연성 : 한 Packet을 원하는 크기로 나누어 수신 가능
  • APPLICATIION PROTOCOL
    • 더욱 풍부해지는 Standard application protocol
    • WIZnet Chip별로 각각 제공되는 Application protocol을 Chip에 관계없이 재사용 가능
  • User Application
    • Easy to migration
    • Easy to upgrade
    • Easy to Maintainment
  • The smallest resouces usage for TCP/IP stack
  • The highest performance at the same board

ioLibrary Version 3.0 Directory 구조

  • [ioLibrary]
    • [Ethernet]
      • wizchip_conf.h & wizchip_conf.c
      • socket.h & socket.c
      • [W5100]
        • w5100.h & w5100.c
      • [W5200]
        • W5200.h & W5200.c
      • [W5300]
        • w5300.h & w5300.c
      • [W5500]
        • w5500.h & w5500.c
    • [Internet]
      • [DHCP]
        • DHCP.h & DHCP.c
      • [DNS]
        • dns.h & dns.c
      • [FTPClient]
        • ftpc.h & ftpc.c
        • stdio_private.h
      • [FTPServer]
        • ftpd.h & ftpd.c
        • stdio_private.h
      • [httpServer]
        • httpParser.h & httpParser.c
        • httpServer.h & httpServer.c
        • httpUtil.h & httpUtil.c
      • [SNMP]
        • snmp.h & snmap.c
        • snmap_custom.h & smtp_custom.c
      • [SNTP]
        • sntp.h & sntp.c
      • [TFTP]
        • tftp.h & tftp.c
      • [Others Will be Added]

Download

[Download on GitHub]

How to Porting into your application

  • TODO
  • How to Register your call-back functions

Refer to My post - W5500 ioLibrary_BSD를 MCU 8051에 포팅하기(1)~(8)

목차

  1. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(1)
  2. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(2)
  3. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(3)
  4. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(4)
  5. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(5)
  6. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(6)
  7. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(7)
  8. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(8)

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

The SNARC: Concept to Prototype to Product

by Lawrence Lemming Dixon

SNARCSimple NetworkAble RFID Controller의 약자로 Maker Lemming에 의해 만들어졌다.


SNARC은 RFID를 이용한 출입통제 시스템으로 출입통제에 대한 Data Logging 기능을 위해 WIZ820io를 사용한 것이 특징이다.
Lemming은 호주의 브리지번에 위치한 Hackerspace HSBNE에서 활동하는 Maker로
SNARC을 Tindie에서 기부모금(Fundraiser)을 위해 제작하였으며 개발 과정의 History와 Materials을 http://www.lemelec.com/snarc-pth 에 공유하였다.
Tidie에서 실제 SNARC 제품에 대한 모금페이지는 현재 찾아 볼 수 없어, Fund 모금에 성공했는지는 알 수 없다.


Lemming은 처음에는 Arduino Board와 EM4100 125KHz RFID tags를 이용하여 단순한 출입통제 시스템을 개발하였고, 이를 아래의 4가지 목적을 달성하기 위해 여러 번의 시행 착오를 거쳐 SNARC_PTH V1.3을 완성하게 되었다.

4 Goals for SNARC

  • Small
  • As self contained as possible
  • Cheap
  • Easy to implement

PCB : SNARC_PTH V1.3

Lemming은 누구나 싶게 만들 수 있도록 하기 위해 SMT part를 사용하지 않고 PTH Part만을 사용하여 DIY 제품을 만들어 4번째 Goal(Easy to implement)를 달성하였다.

Tip for WIZ820io

Lemming이 ATmega328-pu와 WIZ820io의 Reset을 같은 Signal로 처리하였으나, 둘 간의 Reset Time이 서로 맞지 않는 문제(WIZ820io Reset Time이 훨씬 길다 - 150ms 이상)를 해결하기 위해 ATmega328pu의 GPIO를 이용하여 WIZ820io의 Reset Signal을 제어하여 해결하였다.


Learn more

Lemming’s site : http://www.lemelec.com/snarc-pth
Source open : https://github.com/LemElec/SNARC_PTH_V1.3, https://github.com/LemElec/SNARC_Demo_Code

The related article : http://www.embedds.com/simple-networkable-rfid-controller/

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

ARM Cortex M3 Dev Board

by Nathan Zimmerman


Alt Text

Nathan Zimmermanl has been aiding in developing an Embedded 2 class of North Dakota State University(NDSU) . For the class he attempted to develop a flexible and cheap dev board that could host numerous advance applications such as Ethernet and USB.
He selected the WIZnet W5200 for cheaper & easiser Ethernet solution.


Dev Board Features:

  • LPC1768 ARM Cortex M3 MCU
  • W5200 SPI based Ethernet Controller
  • 160×128 Color LCD Display
  • FTDI FT232 VCP USB
  • 2nd USB port hooked directly to the LPC1768 for more advance USB applications
  • 6 LEDs, 4 push buttons, 1 potentiometer
  • NRF24L01 SPI Wireless Module
  • Can be powered via USB or wall-wart plugin
  • Micro is modular and thus can be easily replaced
  • Raw part costs for these boards at quantity x10 is roughly 70 usd.

The board is compatible with the following IDE’s / JTAG Programers:
LPC Xpresso Board & Code Red IDE (+ FreeRTOS)
Ulink2 Programer & Keil IDE


Learn More…
He made DIY Walking Desk using WIZnet Wifi solution WizFi210.


블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자