[W5300] WR/RD 신호 변경 적정시간 문의

안녕하세요? W5300을 이용해 제품 개발중 문의사항이 있어 질문드립니다.

CPU 측에서 WR/RD 핀에 LOW 신호를 인가해 각 기능을 사용하고 있는데,

HIGH에서 LOW로 입력 변경할 때 FALLING TIME을 8.4ns로 정의했을 때는 데이터의 왜곡이 발생하지 않는데, 4ns나 12ns로 정의했을 때는 데이터의 왜곡이 발생합니다.

예를 들어 CPU에서 0x2710을 송신했을 때 수신단에서는 0x2700을 받거나,
0x1518을 송신했을 때 수신단에서는 0x1718의 데이터를 받는 현상이 발생합니다.

위즈넷 칩 내부적으로 적합한 FALLING TIME이 정의되어 있는지 궁금해서 문의드립니다.

저희가 구성한 회로입니다. WR/RD 핀 측에 30pF의 CAP을 달았음을 보여드리기 위해 첨부합니다.

감사합니다.

안녕하세요.
별도로 정의된 적합한 falling time은 없습니다.
falling time보다는 address와 data setup time이 중요합니다.
image
image

위는 데이티 시트의 read time에 관한 것인데요.
tADDRs-h, 그리고 tDATAs-h 등 data와 address가 셋업/홀드되는 타이밍이 잘 지켜지면 됩니다.
증상을 보면 데이터 셋업 타이밍이 너무 짧거나 데이터 홀드 타이밍이 너무 길어진 상태에서 데이터가 읽히는게 아닌가 합니다.

감사합니다.

안녕하세요? 답변 감사합니다.

Write부분에 대해 추가 질문 드리겠습니다.
Write timing 도를 보았을 때 ,

tDATAs는 min 7ns로 MCU address setup time을 208ns 정도로 설정했기 때문에 이 부분 때문에 문제가 발생하지는 않았을 것이라고 생각합니다.
tDATAh도 min 7ns인데 /WR, /CS 철수할 때 간격이 HCLK1-clock(13ns)여서 문제가 되지 않을 것으로 생각합니다.
그리고 tADDRs(max 7ns)가 /CS,Address와 연관있는 timing이니 /WR falling&rising time을 조정하는 부분과는 연관이 없다고 판단됩니다.

이런 상황에서 falling time에 따라 데이터 전송에 문제가 생길 수 있는 요인에 어떤것이 있는지 궁금합니다.

안녕하세요!!
falling이나 rising timing은 크게 IC 동작과 크게 연관이 없습니다.
정확한 내용은 오실로스코프로 찍어봐야 답변을 드릴 수 있을 것 같습니다.

그리고 솔직하게 말씀드리면 저도 보드에 맞춰 여러 타이밍을 수정해가면서 오실로스코프로 찍어보며 작업합니다. 하하… :sweat_smile:
IC 스팩으로는 정확하게 클럭을 카운트하여 ns 단위로 데이터 시트에 기재하지만 Host 종류 등 여러 환경에 따라 달라지는 요소들을 전부 데이터시트에 적용할 수 없는 점은 이해해 주시기 바랍니다.

감사합니다.

답변 감사합니다.

추가적으로 궁금한게 있어 질문드립니다.

/WR 신호의 rising/falling 신호의 요구사항이 따로 있는지 궁금합니다, 그리고 혹시 신호 인가 시overshoot/undershoot 부분의 요구사항이 따로 있는지 궁금합니다. 만약 존재한다면 overshoot/undershoot 의 허용범위를 알려주시면 저희가 스코프로 찍어보고 문제를 개선하는데 도움이 될 것 같습니다.

감사합니다.

W5300 I/O 는 기본적으로 5V tolerant 이기 때문에 overshoog & undershoot는 크게 문제되지 않습니다.

상기 타임도에서 가장 중요한 것은 tCSn 입니다. 다음 CS가 Assert되기 전에 최소 28ns 이상 유지해주셔야 합니다.

Host 입장에서 RD dessert되는 구간에서 Data를 Fetch 하는 경우 MR Register 10th bit , RDH( Read Data Hold Time)를 설정하여 Data fetch time을 더 확보할 수 있습니다.

가능하시면 스코프 캡처를 보내주시면 분석에 좀더 도움이 될 것 같습니다.
감사합니다.

회로상에 /CS, /RD, /WR에 30pf cap을 다셨는데, 특별한 이유가 있습니까?
이러한 신호을 강제로 늘어지게 하는 이유가 궁금하네요.

답변 감사합니다. 회로에 30pF cap을 단 이유는 노이즈를 제거하기 위함입니다.
보통 15~30pF의 cap을 달아서 노이즈를 방지하는 것으로 알고 있습니다.

그리고 cap을 단 것과 뺀 것 모두 테스트 해 보았는데, Cap이 없을 때
undershoot 0.88V, falling time 5ns일 때 깨짐이 발생했고,
undershoot 0.58V, falling time 7.5ns일때 잘 되는 것을 확인했습니다.

저희가 사용하는 mcu의 1 출력이 3.3V이기 때문에 overshoot은 상관없을 것 같고, 잘 되는 상황입니다.
그런데 Cap을 단 경우와 안 단 경우 모두 undershoot 허용범위인 -0.5V 기준으로 벗어나도 되는 경우가 있고, 허용범위 이내인 경우 안되는 경우도 있습니다.(1.1.2V 4.5ns의 falling time을 가지는 경우와 data 깨짐 발생, 0.72V, 6.5ns의 falling time을 갖는경우는 잘 됨, 0.42V 9.5ns 안 됨)

Mode Register WDF 0,1,2의 값을 모두 1로 인가하여 Data Fetch Time을 46ns로 갖고가서 문제가 없을 것으로 추측하는데, 왜 이렇게 되는지가 궁금합니다.

현재 양산을 앞두고 정확한 기준점을 알고 싶어 지속적으로 질문 드립니다.

감사합니다.

안녕하세요.
RDH 설정을 추천드렸는데, WDH를 설정하신다고 하셨는데,
Read 문제가 아닌 Write 문제인 것인지 확인 필요합니다.

System Bus Interface는 Async Interface입니다.
칩 내부적으로 host 신호를 샘플링하는 과정을 거치게 됩니다.
최소 2 clock 이상을 사용합니다. 샘플링된 cs와 wr/rd 가 동시에 0이 되는 순간 data 처리를 위한 스테이트로 이동하고, WDH나 RDH 설정시간동안 data를 샘플링하거나 data 출력을 유지합니다.
물론 Host의 cs 나 wr가 1이 되는 순간은 WDH와 무관하게 그 시점의 Data를 write합니다.
cs나 rd가 1이 되는 순간 이후 RDH 동안 Data 출력을 유지합니다. (이 방법은 버스 충돌을 야기할 수도 있습니다.)

파형을 보내주시면 분석하는데 더 도움이 될 것 같습니다. 감사합니다.

안녕하세요?
답변 감사합니다.

Read가 아닌 Write에 대한 문의가 맞습니다.
그리고 타이밍은 맞춰서 잘 사용중인데 궁금한것은 데이터시트상 전압 허용범위가 -0.5V<Vin<5.5V인데
이전 질문에서의 언급처럼 Undershoot이 허용 범위 밖이어도 사용해도 이상없는지가 궁금해서 질문드립니다.

Undershooting과 Overshooting이 걱정되신다면,
Damping 저항 (일반적으로 33옴을 많이 사용함)을 signal과 직렬연결하시면 됩니다.
물론 Damping 저항은 signal transition에 영향을 주므로, Access Timing을 좀더 느슨하게 가져가셔야 합니다.

순간적인 전압변화 이므로 , 일반적으로 damping 저항없이 사용하셔도 무리는 없을 것 같습니다.
내부로직은 2KV ESD 내압을 가지고 있습니다.