This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Serial communication

Hi, I use AT89S52 in a project. I send and receive data through TXD, RXD pins to a GSM module for sending SMS to another mobile equipment. I use watchdog facility and the watchdog counter is reset at every 256 counts. My crystal frequency is 11.0592 MHz. It happens once in a while that the uC doesn't respond and remains as if it hangs. Then it has to be RESET again. I doubt whether it happens while serial data reception and sending happens simultaneously. I wrote the program in C using KEIL IDE.
My questions are
1) What are the special precautions to be taken in this case?(sending and receiving simultaneously)
2)why this happens even when the watchdog is active? It will be highly appreciated if anybody can give some guidance.

Parents
  • Not necessarily "square", but that's (probably) not important.

    "In such case running an infinite loop without updating the internal watchdog timer will not cause a reset"

    Incorrect: if the internal watchdog is properly enabled, it will cause a reset when it is not updated for any reason.

    So, as noted previously, if your program is in a loop, and the wathdog is not causing a reset, there are two possible reasons:

    1. The watchdog is not properly enabled;

    2. Your software is updating the Watchdog - despite being stuck in a loop.

    The benefit of an external watchdog is that No 1 cannot happen.

    But updating an external watchdog from ALE most certanily will cause No 2!

Reply
  • Not necessarily "square", but that's (probably) not important.

    "In such case running an infinite loop without updating the internal watchdog timer will not cause a reset"

    Incorrect: if the internal watchdog is properly enabled, it will cause a reset when it is not updated for any reason.

    So, as noted previously, if your program is in a loop, and the wathdog is not causing a reset, there are two possible reasons:

    1. The watchdog is not properly enabled;

    2. Your software is updating the Watchdog - despite being stuck in a loop.

    The benefit of an external watchdog is that No 1 cannot happen.

    But updating an external watchdog from ALE most certanily will cause No 2!

Children