Wiz820io spi 문의

#1

DSP로 센서로 측정된 신호를 이용하여 물성을 찾는걸 만들고 있는 학생입니다.

TI TMS320F28335 dsp 와 wiz820io 를 사용하고 있습니다.

우선 제공되는 소스가 dsp 에 사용할 수 없어 코드를 작성하여 테스트 하려고합니다.

어플리케이션 노트와 메뉴얼을 본 결과 네트워크 설정및 소켓설정 시

spi 통신으로 해당 레지스터 주소 를 전송하고 설정값을 전송 하는것 까진 알겠는데

TCP로 데이터를 송수신 하는 부분에 문의 드립니다.

데이터 전송시 spi로 전송할 데이터를 모듈에 보내면 TCP로 전송 하는것인지요.

TCP 전송데이터도 위 설정값 전송 경우처럼 데이터 주소와 데이터를 함께 보내야하는지. 그렇다면 데이터의 주소는 어떻게 되는지. 또 spi로 1바이트 받으면 tcp로 1바이트 바로 전송하는지 패킷 크기설정이 가능한지.

데이터 수신시 TCP로 데이터가 수신되면 모듈에서 spi로 수신데이터를 바로 전송해주는지. 아니면 데이터가 필요한시기에 spi로 수신데이터 주소를 보내면 수신된 데이터가 들어오는지. 그렇다면 데이터가 들어오는 시기는 어떻게 알수 있는지 문의드립니다.

기존에는 시리얼 to tcp 모듈을 사용하여 데이터수신시 시리얼로 바로 들어와 시리얼 수신인터럽트로 tcp데이터가 수신되면 수신데이터 저장하도록 하여 사용했는데, wiz820 은 어떻게 사용해야될지 모르겠네요. 답변 부탁드립니다.

#2

WIZ820io를 비롯한 위즈네트 Hardwired TCP/IP 칩 제품은 모두 다음과 같이 동작합니다.

  1. MCU와의 SPI 등 MCU 인터페이스 연결 및 연결 확인
  2. 레지스터 설정을 통한 칩 초기화 과정 및 사용하고자 하는 H/W Socket Open
  3. (TCP의 경우) TCP 연결 과정: (Server 및 Client 동작 상태에 따라) Connection established 확인 후 데이터 송/수신 준비
  4. 데이터 송/수신
    4-1 데이터 송신 : 데이터 송신을 위한 SPI 프레임(명령어 및 보내고자 하는 데이터)을 생성하여 위즈네트 칩으로 전송
    4-2 데이터 수신 : 사용하고자 하는 Socket의 수신 레지스터(e.g. Sn_RX_RSR, 코드 별 상이할 수 있음, W5200 datasheet 및 예제 코드 참조)를 검사하여 수신 데이터가 있는 경우 수신을 위한 SPI 프레임을 전송하고 수신된 값을 MCU 측 사용자 버퍼에 저장

더 자세한 설명 보다는 실제로 어떻게 동작하는지 예제 코드를 통해 확인 하는 것이 더 좋을 것 같습니다.
WIZ820io에는 W5200 칩이 탑재 되어 있습니다. C로 구현된 W5200 예제코드의 TCP Loopback test 동작을 보시면 어렵지 않게 이해하실 수 있을 것이라 생각됩니다.

다음 제품 설명 페이지의 Download 탭에서 예제 firmware를 다운로드 하실 수 있습니다.
wiznet.co.kr/sub_modules/kr/ … 6&pid=1143

#3

wiz820io 핀의 nINT 는 어떤경우에 동작하는지 문의드립니다.
하드웨어 설계시 위 핀을 dsp 외부 인터럽트핀에 연결하여 인터럽트 방식으로
TCP 데이터 수신되면 인터럽트 발생하여spi로 데이터 수신하도록 하려고 합니다.

#4

W5200E01-M3_Firmware_polling_v1.5 예제 펌웨어를 참고하여 설계중입니다.

SPI_I2S_GetFlagStatus, SPI_I2S_SendData, SPI_I2S_ReceiveData 이 함수는 예제 의 c파일과 h파일 전체를 찾아도 정의된 부분이 없어 헤매고잇습니다.

spi로 데이터 일고 쓰는 동작에서 결국 SPI_I2S_GetFlagStatus로 통신가능상태를 확인하고, SPI_I2S_SendData 로 데이터 보내고, SPI_I2S_ReceiveData로 수신데이터를 받는데 이 함수의 내용을 보고싶은데 찾을수 없습니다. 함수 정의된 위치나 파일을 부탁드립니다.