본문 바로가기

개발/통신

Nuvoton M054 - Wiznet ioLibrary 사용하여 W5200 연결 하기

반응형

본글은 23년 1월 6일 최초 작성, 

그래서 필요 한것들은 얼추 그때 다운 받아 씀.

Wiznet Lan 통신 칩을 사용한 ref code 가 stm, avr 은 있는거 같은데 nuvoton 은 찾지 못해 해매다가,

 

 

https://midnightcow.tistory.com/category

 

'분류 전체보기' 카테고리의 글 목록

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

midnightcow.tistory.com

 

에서 W5500 IOLIBRARY_BSD을 MCU 8051로 포팅하기

 

를 참조 하여 tcp/udp loopback 만들기를 성공 하였다.

 

cpu 는 nuvoton M054, wiznet chip 은 w5200 으로 하였는데,

따라 하다, 포팅하기 6 에서 w5200 정보 가져오기  getVERSIONR()  응답이 계속 0x00 이 나와 몇일 고생함..

MISO 에 10k pull up 을 하니 응답 나왔다. - 회로도 참고

nuvoton spi 에 연결 하였지만, nuvoton 에서 제공하는 spi 함수는 성공 못하고,

별도 spi 만들어(사실가져온거 참조)로 성공

 

 

전체 소스 올림, 

nuvoton-wiznet-230106.zip
6.68MB

 

wiznet ioLibrary  230101 다운 받은거 씀. : https://github.com/Wiznet/ioLibrary_Driver   

 

GitHub - Wiznet/ioLibrary_Driver: ioLibrary_Driver can be used for the application design of WIZnet TCP/IP chips as W5500, W5300

ioLibrary_Driver can be used for the application design of WIZnet TCP/IP chips as W5500, W5300, W5200, W5100 W5100S. - GitHub - Wiznet/ioLibrary_Driver: ioLibrary_Driver can be used for the applica...

github.com

 

spi   :    https://www.rpi.edu/dept/ecse/mps/Coding_SPI_sw.pdf

여기는 spi rx, tx 를 한 함수에서 처리 하네..

=========================================
/* a byte transfer in (0,0) mode */
uchar SPI_transfer(uchar byte)
{
   uchar counter;
   for(counter = 8; counter; counter--)
    {
        if (byte & 0x80)             MOSI = 1;
        else                        MOSI = 0;
        byte <<= 1;
         SCK = 1; /* a slave latches input data bit */
         if (MISO)               byte |= 0x01;
         SCK = 0; /* a slave shifts out next output data bit */
     }
     return(byte);
}

 


=========================================
/* a byte transfer in (1,1) mode */
uchar SPI_transfer(uchar byte)
{
         uchar counter;
      for(counter = 8; counter; counter--)
      {
          if (byte & 0x80) MOSI = 1;
          else                  MOSI = 0;
          SCK = 0; /* a slave shifts out output data bit */
          byte <<= 1;
          if (MISO)  byte |= 0x01;
         SCK = 1; /* a slave latches input data bit */
    }
     return(byte);
}

=========================================

 

사용한 Pc program 툴

serial rs232 통신 툴 :  AccessPort :    http://www.sudt.com/en/ap/index.html   

tcp/udp 통신 툴 :  TCP_UDP_Debugger  (다운 받기 어려울거 같아..  https://bahk33.tistory.com/16   에 있음)

 

게을러서 필요하다 싶은 거만 써 놓았읍니다.

 

좋은 시간 되시기 바랍니다.

 

 

반응형