Knowledge Base Article
There are two likely reasons for this problem. First there is the Low Voltage Inhibit Reset which is caused by noise on Vcc. It can be determined if this is the problem by attaching two oscilloscope probes one to Reset and the other to Vcc, and then checking if the occurance of Resets corresponds to a drop in Vcc. This problem is usually seen in boards that don't have all the decoupling capacitors recommended by the design guidelines, and can be corrected by improved decoupling. The second likely cause for the occurance for Resets is a Watchdog Reset event. There are small differences between the startup timing and the Watchdog counter timing between the Toshiba and the Cypress part. So in cases where a "when clause" (Usually the when Reset clause) is too long there is a danger of triggering a Watchdog Reset. You can determine if this is the problem by inserting a watchdog_update() call into you when-Reset clause or any of your other clauses that seem a little lengthy. If the WDT Reset is the problem then inserting the watchdog_update() calls will resolve it.