Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Internal pull up vs internal pulldown

Status
Not open for further replies.
The pull up/down resistors are weak and can only set the state of a high resistance I/O.
In your code you define a circuit that sets the output to either high or low so there is no tristate mode.
As my understanding you can either turn the output drive on and have an output of 1 or 0 or you can disable the output drive and get the z state, there are no other alternatives.

Alex

This is a diagram of the spartn3 output

Spartan3_output_stage.gif
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
1. First : define in code -- some_output <= '1' when some_condition = '1' else '0' ;
2. Second : set a pullup resistor on the "some_output" pin using the GUI tool.
3. compiling
I agree with Alex. Enabling a pull-up resistor doesn't change the output function itself. Setting output states '0' and '1' implements a regular push-pull output. An output is tristated by setting a 'z' state. Or you can use a tri-state library function, but it doesn't anything different.
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
So, adding a pull-up / pull-down resistor on a push-pull driver will be "electrically overridden" to have no effect at all.
The actual output level will totally dependent upon the push or pull condition. correct ?
 

The pull up/down resistances have a high impedance and they can be easily overridden by an input source in case of input operation or the output driver in case of output mode.
The z state is a high impedance state where the pin is like floating so the weak pull up/down resistors can easily force a high or low state but not when the strong pull up/down come in (the push pull driver).

Refer to the diagram in post #17 with the weak pull up/down which are the pull up/down resistors and the strong pull up/down which is the output push/pull driver

Alex
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
Understood.
Now,
Alex, FvM do you agree with this ?

open_drain_io <= '1' when active = '1' else 'Z' ; -- will use PMOS
open_drain_io <= '0' when active = '1' else 'Z' ; -- will use NMOS
 

Yes, when the output is not z it will use the mosfets you specify.
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
BTW:

if I reckon, SPARTAN 3 uses strong internal pullups
 

I'm not using Xilinx, but I noticed that the pull-ups are stronger than usual (low kohm range), e.g. similar to an I2C pull-up. You have to determine if the resistance range is suitable for your application. If not, use external resistors instead.
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top