Submitted by: TechToolsOf course, defective hardware or a bad serial cable could cause this. However, there are other less obvious causes.
A communication error can occur if the bondout is being held in RESET or if your code is 'SLEEP'ing or if the target is shorting us out.
- The target can be holding it in reset (MCLR < 5V)
- The member module could be plugged in incorrectly (off by a pin or row).
- Using a bad/incorrect target interface cable.
- Using an incorrect adaptor between the target cable and his target socket.
- The target is not powered up or is running at less than 5V.
- The POWER JUMPER on the module is in the ext/shorted position AND you are powering the ICE AND the target with their own power supplies. If the ICE and the TARGET are each being self powered (the usual case) then you should remove the jumper or move it to the 'isolated' position.
To determine if it is an ICE issue vs. a TARGET or cable issue, unplug the target cable from the MODULE and see if the problem goes/stays.
If the problem remains, it is in the ICE OR the firmware (running a SLEEP instruction - more below).
If it goes away, determine if it is the cable or the target: Plug the cable into the module but NOT the target. If the problem returns, it is a BAD/incorrect target cable.
If not, then the target is either holding us in reset (powered off, low voltage, defective reset circuit...) or is shorting us out (bad wiring, wrong adaptor, defective board...)
The SLEEP instruction will do this, but ONLY if we try to halt while it is SLEEPing or if we try to step or animate through it. Of course, this is not the problem if you loose communications BEFORE actually RUNNING.
We talk about WHY this happens at: