I'll preempt this by saying that I'm a software person whose education (unfortunately) didn't even touch on the most basics of hardware or circuits.
I'm attempting to program a PIC16f1709 microchip with a PICkit3 via MPLab X v2.3. The PIC is part of a larger board, but is currently blank. The board in question is a manufactured product, not a dev board, but it does have exposed pins into which I've wired the PICKit, and I'm sure that the pins match up. I'm powering the board with its own power supply. The board doesn't have a pull-up resistor from Vpp/MCLR to Vdd. According to the PICkit User Guide, that resistor is "recommended" (see paragraph 2.4.2).
When I try to program the controller, MPLab warns me first that the target ID is being read as
0x00 rather than the expected value, and then after programming it reports that the instruction at address
0x00 rather than the expected first instruction. My understanding is that this means that the PICkit is not able to communicate with the controller, because it is reading everything as
0x00. I've read that a freshly-erased PIC sets all bytes to one, so even if my code didn't get programmed, it shouldn't be reading zeroes.
Target voltage detected Target Device ID (0x0) does not match expected Device ID (0x3054). The following memory area(s) will be programmed: program memory: start address = 0x0, end address = 0x3f Device Erased... Programming... program memory Address: 0 Expected Value: 3180 Received Value: 0 Failed to program device
So my question is this: is the pull-up resistor required (as I've read from less "official" sources)? Is the fact that it is missing causing the programmer to be unable to communicate with the controller?