[W5300] 송신데이터 변형이 발생해서 문의드립니다.(추가)

수정이 안돼서 글을 다시올립니다.

안녕하세요? W5300 관련 문의드립니다.

현재 2초 간격으로 UDP 12 byte request data 수신 시 1ms 의 지연시간을 갖고
150 byte의 데이터를 송신하는 통신을 구현하였습니다.

통신시작 후 5~10분 정도의 시간이 지나면 송신 데이터 중 1 bit의 데이터가 변형되는 현상이 발생해서 문의드립니다.

10000(0x2710) 송신 시 9984(0x2700)로 변형
5400(0x1518) 송신 시 5912(0x1718)이나 1816(0x0718)로 변형
되는 현상이 발생합니다.

저희는 현재 UDP PORT 8 소켓 중 0,1,4,5,6,7,8번 소켓을 열어놓고 동일 번호의 포트를 사용하고 있습니다.
소켓 각각 8K byte의 메모리를 할당하여 사용중인데, 증상 완화를 위해
4개 소켓에 각각 16K byte의 메모리를 할당하고 0,1,3->UDP, 2->TCP 로 사용하면서 증상이 완화되긴 했는데 완전히 해결되진 않았습니다.

근본적인 해결방안이 없는지 궁금하고, 소켓수를 줄이고 메모리를 늘려서 증상이 완화됐는데 왜 그렇게 됐는지 궁금해서 문의드립니다.

내용 추가입니다.

  1. Tx packet 중 payload data 가 1-bit 만 깨져서 Tx 될 수 있는 경우가 어떤 경우인지 궁금합니다.
    (CRC 가 정상으로 봐서는 대국과 연결된 cable 이나 phy 등에서 문제가 발생하지 않았다고 판단됩니다.)
  2. W5300 socket 의 memory size 를 8kByte 에서 16kByte 로 변경(socket 사용 개수도 8개에서 4개로 변경)하면 현상이 개선되는 이유가 무엇인지 궁금합니다. 현상이 개선되는 것으로 추정해보면 tx buffer size 가 늘어나면서 buffer full 시 개선되는 것인가요?
  3. W5300 socket 의 memory 중에 tx/rx buffer 용도로 별도 할당되는 구조인지 궁금합니다.
    tx/rx buffer 용도로 별도 할당되는 구조라면 8kByte 기준으로 몇 byte 인? 16kbyte 기준으로 몇 byte 인지 알려주시기 바랍니다.

감사합니다.

하드웨어적으로 불안정하거나, FSMC 타이밍등에 의해서도 문제가 생길 수 있습니다.

각각 TX Buffer 64KB, RX Buffer 64KB 씩 할당되어있습니다. 소켓에 0~64KB 로 할당가능하며 총 메모리 사이즈가 64KB를 넘지 않아야합니다.