Trouble holding MCLR line low for PIC ICSP, ICD3 works, hardware defect


I have an ARM Cortex-M3 that talks to a dsPic33F. I am attempting to do ICSP programming of the attached PIC. I have an analyzer and can see that I cannot control the MCLR line the same way the ICD3 does. I am a software guy and am thinking it might be due to the way the MCLR pin is setup and the ARM just can't pull it low like the ICD3 can.

Here is a the schematic of the MCLR setup, Vpp is a ARM gpio line:


Is the ARM just unable to sink enough current compared to the ICD3?


The ARM is an stm32f103vf and the pic is a dsPIC33FJ128GP804.

Best Answer

Really we need more detailed information, as I've noted in comments on the question.

From what you've described so far, I would guess that no, it is not a fundamental limitation of the current sink ability of the ARM, because the !MCLR input should be a fairly high impedance and the 22k pull-up will only require sinking a few tens of microamps. More likely it's a configuration issue in the ARM; sometimes quite a few registers have to be set up correctly before you can use GPIO. Can you set up a spare pin as a general-purpose output (either push-pull or open-drain) and check that you can control it correctly without worrying about the PIC?

You might even have burnt the pin out from bus contention, e.g. if you tried to drive it high from the ARM while the PIC was pulling it low - the 10 ohm series resistor may not offer sufficient protection here. I would class that as relatively unlikely, though.