W7100A watchdog 오동작 문의 드립니다

안녕하세요.

W7100A로 개발한 제품을 시험하는 중입니다.
사용한지는 몇 년 되었습니다.
그동안은 watchdog 기능을 사용해도 실제로 watchdog이 발생하는 경우는 없었는데요…
이번에 네트웍 통신 중에 스마트폰 APP 버그로 인하여 네트웍 프로토콜 상에 가 계속 발생하는 상황이었습니다.
이렇게 2분 정도 지나자 프로그램이 네트웍 관련한 어느 부분에서 빠져나오지 못하는 현상이 발생하여 watchdog 리셋이 발생하였습니다.
그런데, 정상적으로 부팅되면 괜찮은데… 모든 출력 포트를 HIGH 상태로 한 후 뻗어 버렸습니다.
출력 포트에 릴레이 구동회로가 연결되어 있어서 연결된 모든 릴레이가 동작하였습니다.
이 상태에서 리셋 버튼을 누르자 정상 부팅되고 정상 동작하네요.

이런 현상이 보고된 적이 있는지요???
그리고 해결 방법은 무엇인지 문의 드립니다.

회신 기다리겠습니다.

감사합니다.

안녕하세요.

아시겠지만 원래 와치독 리셋이 걸리면 전부 리셋이 되는건데 모든 포트가 HIGH가 되었다는건 무언가 문제가 있네요.

여러가지 확인절차가 필요하겠습니다만,

하드웨어 리셋을 걸었을 때, 리셋이 되었다는 것은 하드웨어 부분은 문제가 되지 않는 것으로 판단되는데

현재 와치독 리셋이 정상 동작하지 않는 것 같습니다.

혹시 W7100A칩만 구매해서 코드는 어떻게 하신건가요??

W7100A-S2E 칩만 구매해서 모듈을 제작하신건지, 아니면 W7100A 칩만 구매해서 따로 binary 파일을 받아서 구현하신것인지,

따로 코드를 수정하신건지, 정확한 정보가 필요합니다.

감사합니다.

코드는 직접 작성하였습니다.
정확히 기억은 나지 않습니다만, 2-3년 전에 프로젝트 샘플 소스 코드를 받아서
기능을 수정/추가하여 사용하고 있습니다.

추가 정보를 드리면, watchdog 리셋이 발생할 때마다 위 증상이 나타나는 것은 아닙니다.
횟수를 정확히 세어보지는 않았는데요, 대략 20회 정도 watchdog 리셋이 발생한다면
그 중에서 오동작하는 사례가 발생하는 것입니다.

구현된 기능 중에 TCP 접속을 통한 펌웨어 업그레이드 기능이 있습니다.
따라서 code_write_byte(), code_sector_erase()… 등의 함수들을 사용하고 있습니다.
watchdog 리셋에 의해 오동작하는 경우 간혹 리셋 버튼을 눌러도 부팅되지 않는 경우가 있습니다.
이 때, WizISP 프로그램을 이용하여 Code Memory를 읽어보면, 임의의 섹터가 지워져 있는 것을 확인하였습니다.

리셋회로와 CPU 주변 회로는 W7100A 레퍼런스 회로를 그대로 사용하고 있습니다.

감사합니다.