본글은 23년 1월 6일 최초 작성,
그래서 필요 한것들은 얼추 그때 다운 받아 씀.
Wiznet Lan 통신 칩을 사용한 ref code 가 stm, avr 은 있는거 같은데 nuvoton 은 찾지 못해 해매다가,
https://midnightcow.tistory.com/category
에서 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 만들어(사실가져온거 참조)로 성공
전체 소스 올림,
wiznet ioLibrary 230101 다운 받은거 씀. : https://github.com/Wiznet/ioLibrary_Driver
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 에 있음)
게을러서 필요하다 싶은 거만 써 놓았읍니다.
좋은 시간 되시기 바랍니다.
'개발 > 통신' 카테고리의 다른 글
com(serial rs232) port data plot chart 화면에 그림 그리기 (0) | 2023.04.04 |
---|---|
serial(rs232, rs485), LAN(tcp, udp)통신 Terminal 모음 (0) | 2023.01.09 |
Win TCP (UDP) Client ,Server , example Source code (0) | 2023.01.09 |
TCP_UDP_Debugger : tcp udp test program 1 (0) | 2022.12.30 |
CANable USB to CAN, CAN 통신 analyzer, nuvoton 사용보기 (0) | 2022.12.28 |