Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

Taking input by expansion header

Hello

I am working with a project using DE1 board. In my project I have to take input from a external circuit of 3.5 v . I use seven segment display to see my output in DE1 board . My verilog coding works well when i use toggle switches as input value. It gives me the output what i desired. But it creates problem when i assign gpio pin as input pin . When i just touch the gpio pin with my hand or connect by a wire with one side open, it gives me the output of logic high value. I set I/O standard as 3.3v LVTTL(default).

Thanks in advance

Biswajit

9 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You should not touch the pin with your hand, nor leave the wire unconnected! ;-)

    Anyway, that's happens because you need to use a pull-up (and possibly a capacitor) or any other method to set the input to a well defined level when it's not driven.

    I don't have the DE1 board schematics here, but I guess it directly exposes fpga pins. Then you can initially try to enable the pull up resistor internal to the fpga.

    However, consider that this is a weak pull up, usually equivalent to a >100k resistor, so it's possible it will not solve your problem completely.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hello Cris

    Thanks for your replay. I think your idea is right. But i don't have any idea to pull up the internal resistor of fpga. Can you help me?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Open the Pin Planner window in Quartus. Here you can enable the weak pull-up for individual pins

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I have the same problem, that I get no input from the GPIO pins of the de1. Output is no problem and I can measure the voltage. But when I want to use a gpio pin as input, it is always tied to ground. I tried an external pull-up resistor as well as the internal pull-up resistor, but it doesn't change anything. For testing I use one of the leds for signalling. When I use on of the switches as input everything works fine. Has anyone some idea or had the same problem and solved it?

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Hello

    I am working with a project using DE1 board. In my project I have to take input from a external circuit of 3.5 v . I use seven segment display to see my output in DE1 board . My verilog coding works well when i use toggle switches as input value. It gives me the output what i desired. But it creates problem when i assign gpio pin as input pin . When i just touch the gpio pin with my hand or connect by a wire with one side open, it gives me the output of logic high value. I set I/O standard as 3.3v LVTTL(default).

    Thanks in advance

    Biswajit

    --- Quote End ---

    --- Quote Start ---

    I have the same problem, that I get no input from the GPIO pins of the de1. Output is no problem and I can measure the voltage. But when I want to use a gpio pin as input, it is always tied to ground. I tried an external pull-up resistor as well as the internal pull-up resistor, but it doesn't change anything. For testing I use one of the leds for signalling. When I use on of the switches as input everything works fine. Has anyone some idea or had the same problem and solved it?

    --- Quote End ---

    When you input a signal from an external circuit, you have to make sure that you unify the ground pins in order to band the logic levels together, so you need to tie the ground of your external circuit with the ground of the DE1 board (you can take it from the GPIO header, I think it's pin number 12... check out the schematics).
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    When you input a signal from an external circuit, you have to make sure that you unify the ground pins in order to band the logic levels together, so you need to tie the ground of your external circuit with the ground of the DE1 board (you can take it from the GPIO header, I think it's pin number 12... check out the schematics).

    --- Quote End ---

    I've already done this. I only use the gpio pins for supply. The ground pin as well as the 5V output. For input I used different voltages between 1,5 V and 2,5 V (generated by using the 5 V) and another time a direct connection between an output pin and an input pin. I've also tried out different pins to check if perhaps one pin is defect, but it makes no difference.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    When i use gpio pin as input direction it gives me the output voltage 3.5 volts . I use i/o standard default lvttl 3.5(default) . How can i unify the ground pin. How can i tell i am going to use a pin as ground in my program?

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    When i use gpio pin as input direction it gives me the output voltage 3.5 volts . I use i/o standard default lvttl 3.5(default) . How can i unify the ground pin. How can i tell i am going to use a pin as ground in my program?

    --- Quote End ---

    You do NOT specify a pin as a ground or a vcc, but rather they are fixed pins of the GPIO port. On my DE1-SoC, ground pins are the 12th and the 30th, the 3.5v pin is the 29th pin and the 5v pin is the 11th pin.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Siraj Muhammad

    I used gpio-1 pin of expansion header JP1 as input pin of 3.5 volt and also connect the ground pin of jp1 with the ground pin of power supply. But it didn't work as it work when i used switches.Do i have to make any change in I/O Bank , VERF group or I have to anything more?Can you give me the full guideline of "Taking input by expansion header'.

    Thanks