I'm driving 2x TC4427A (dual mosfet drivers used as an h-bridge) with a 12F675, ports GP0/5 and GP1/2. With no motors, or small motors on the outputs my test program works fine. It runs the motors forward until it sees input on GP4 and then stops briefly, reverses, and then runs them forward again. With slightly larger motors on the output (~120mA) it starts both motors going forward, and it works for 0..3 reverse cycles, after which GP5 quits working. There is never a problem with GP0/1/2. It never works again until after a reset. It appears to be driven low. It doesn't go low uncommanded -- it runs fine in reverse as long as I want, but after I set it low again it won't go back. It only stops working if it is connected to the 4427 during the test. It doesn't matter which port of which 4427 it is connected to. It doesn't matter if it is paired with GP0 or GP1/2. It happens on another 12F675 exactly the same way. Finally in desperation I put in code to reset TRISIO inside the loop. With some experimentation I found that if I reset it after the stop delay, everything works fine indefinitely. I took that out briefly and put in a test which compares TRISIO to the expected value and locks up if it finds a mismatch, and the mismatch corresponds with the failure of GP5. I only have RP0 set briefly during initialization, so I don't think I could be accidentally setting TRISIO<5> by accident. And there is a definite correlation between motor load and the problem, so I don't think I have a software problem. I've tried adding more power decoupling in a variety of ways with no improvement. Am I crazy? What's going on? -- Ben Jackson http://www.ben.com/ -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body