PDA

View Full Version : Using weak pull-up



Sharky
- 5th May 2006, 10:34
Hi,

I have and application using a 12F629 using 4x10Kohm pull-up resistors,
but should there be any reason not to use the internal weak pull-resistors instead?

That would save me some space on my PCB :)

Kind regards
Sharky

paul borgmeier
- 5th May 2006, 13:39
Sharky,

If you just need “weak pull-ups,” the internal ones are and work great. I use them almost all of the time when I need weak pull-ups. If you need your weak pull-ups to exactly control current (rare for most PIC applications), then stick with your 10k resistors (5V/10K = 500uA)

Why? If you notice in the data sheet, there is no resistance given for the weak pull-ups. That is because they are not “weak pull-resistors” they are “weak pull-ups,” consisting of what appear to be high-resistance channel pFETs. Their channel resistance will vary with temperature and between parts; not easy to characterize. The data sheet gives a current range for the internals as 50-400uA (at 5V). My opinion - use the internals!

Paul Borgmeier
Salt Lake City, Utah
USA

dhouston
- 5th May 2006, 14:40
What characterizes "weak" vs. "strong" in pull-ups?

mister_e
- 5th May 2006, 15:25
Just my own opinion here, Weak pull-up are great for developpement, but i always use external real-resistors for final project. As the internal are just something virtual (kind of) and may react weird in some noisy environement. Well that's what i'd experimented in some car application. SMD resistor and/or smd resistor network are quite small and still cheap..

SURE, when the unit is always working hard, the internal may be enough, but once you remove the power OR use the Sleep mode, your pins are just floating in the air waiting for the next static spike tu burn your PIC. Oh that assume the worst case where you don't added sufficient static protection like some 1N5817 diode, transorb, blah blah blah....

Sharky
- 5th May 2006, 19:33
I think that I will stick to my pull up resistors, because I will not take any chances.

I have about 300 pcs. of my application with pull-up resistors in the field and they work just great, but now I have to make some changes on the PCB, and I could use a little more space for an extra molex connector.

Thanks for your inputs :)

Sharky

dougsego
- 11th September 2007, 05:10
I'm attempting to configure portb.0 and portb.1 on a 16F883 as inputs with weak pull-ups. The register set-up code I'm using is:

ANSELH=%00000000 'portb are all digital
trisb=%00000011 ' portb.0 and portb.1 are inputs
option_reg=%10010111 'Global Pull-up disabled and internal clk
WPUB=%00000011 'Weak pull-up portb.0 and portb.1
portb=%00000011 ' Outputs off, inputs don't care

However, when I measure these nodes with a DVM (input impedance ~ or > 500K), I get 0v instead of the 5v I'm expecting.

Any ideas?

Thanks

Archangel
- 11th September 2007, 06:44
I'm attempting to configure portb.0 and portb.1 on a 16F883 as inputs with weak pull-ups. The register set-up code I'm using is:

ANSELH=%00000000 'portb are all digital
trisb=%00000011 ' portb.0 and portb.1 are inputs
option_reg=%10010111 'Global Pull-up disabled and internal clk
WPUB=%00000011 'Weak pull-up portb.0 and portb.1
portb=%00000011 ' Outputs off, inputs don't care

However, when I measure these nodes with a DVM (input impedance ~ or > 500K), I get 0v instead of the 5v I'm expecting.

Any ideas?

Thanks
Hi Dougsego,
Global pull up cleared means bit 7 should be set to zero: option_reg=%00010111 , see page 77 of the Data sheet:
" 0 = PortB pullups are enabled by individual port LATCH values " .