2
\$\begingroup\$

In my application I use PIC16F676 microcontroler with the LM282 (https://www.onsemi.com/pub/Collateral/LM285-D.PDF) external voltage reference (for A/D converter) connected to the RA1 pin. This pin is also used during ICSP (Internal Circuit Serial Programming) as a ICSPCLK clock signal. How can I isolate this voltage reference from ICSPCLK programmer output and succesfully programing the chip? PIC16F676 with external voltage reference and connected ICSPCLK

\$\endgroup\$
  • \$\begingroup\$ jog my memory: What's the reference voltage that the LM282 offers, and what are the voltages that ICSPCLK takes? \$\endgroup\$ – Marcus Müller Apr 2 '17 at 10:03
  • \$\begingroup\$ The reference voltage of LM282 is 1.235V and voltage range for ICSPCLK is probably 0.2 VDD for low level and 0.8 VDD for high level. @anrieff answer solved my problem. \$\endgroup\$ – user123 Apr 3 '17 at 16:40
  • \$\begingroup\$ well, then, remove R1 when in programming mode (e.g. by turning on a transistor that is in series with R1 only when you need the reference voltage). For voltages << ref voltage, the LM282 will simply be a relatively good isolator, I guess \$\endgroup\$ – Marcus Müller Apr 3 '17 at 17:19
0
\$\begingroup\$

I don't think there's a good way to do it. My first suggestion would be to just add a jumper in front of the LM282:

schematic

simulate this circuit – Schematic created using CircuitLab

The jumper (or DIP-switch) should be closed during normal operations and open when programming.

If you absolutely cannot live with this requirement for manual intervention, you may throw in an op amp to avoid that node altogether:

schematic

simulate this circuit

This way your programmer will "fight" against the op-amp, but if the resistance (R2) is high enough, the programmer would "win". During normal operations, the op-amp just buffers the voltage reference. If you go that way, pick an op-amp that accepts inputs and outputs close to the rails - Rail-to-rail I/O.

\$\endgroup\$
  • \$\begingroup\$ Thank you very much for the answer. Solution using jumper will be probably good for my application. \$\endgroup\$ – user123 Apr 3 '17 at 16:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.