Community
cancel
Showing results for 
Search instead for 
Did you mean: 
jnich3
New Contributor I
965 Views

Using Edison internal pull up/down resistors

Hi,

I just need to clarify a few points about using these resistors.

I am using Sparkfun blocks, and taking the picture below from relevant Sparkfun tutorial.

https://learn.sparkfun.com/tutorials/sparkfun-inventors-kit-for-edison-experiment-guide/experiment-2... SparkFun Inventor's Kit for Edison Experiment Guide - learn.sparkfun.com

Here is what i understand to be a standard pull up circuit (graphic lifted from the above tutorial):

Am I right in assuming that an external R1 is not necessary, because i can use the Edison's internal resistor?

And further, that this internal resistor will be active if the following are true (say for gpio49):

in directory /sys/kernel/debug/gpio_debug/gpio49

file current_pullstrength contains one of the values 2k, 20k, 50k or 910ohms

file current_pullmode contains the value pullup

The sparkfun tutorial suggest a value of 1k for the external resistor, so the most appropriate equivalent would be the 910ohm setting?

I intend to connect a number of buttons to a number of gpio (possibly as many as 10), will this 920ohm value remain appropriate in those circumstances?

Also, if I am using an external resistor, as per the above diagram then the value of current_pullmode should be set to nopull?

Also, I note that these values are set in a gpio_debug directory. Do they need to be set anywhere else in, say, a production environment?

Finall, If I write values to these files can they be overridden from elsewhere?

I note from another thread that there is a current_debounce file, but that no functionality currently exists for this. Is this likely to change?

Thank you

0 Kudos
6 Replies
idata
Community Manager
36 Views

Hi Jayls,

 

 

Yes, you can use the Edison's internal resistors of the GPIOs, the values can be 2, 20 or 50 kohm. The value of 910 ohm only applies for the I2C pins. (Check the http://www.intel.com/content/www/us/en/support/boards-and-kits/000005808.html Hardware Guide, Section 4.7). In your case the value of 910 ohm is not available, so you have two options.

 

 

You can implement the external resistor of 1 kohm and set the pullmode to nopull, or you can use the internal resistor of 2 kohm. Take a look at this thread to learn how to program them: https://communities.intel.com/message/275326# 275326 https://communities.intel.com/message/275326# 275326 and you can do the same with pullmode.

 

 

These values can be set only in the gpio_debug directory and I didn't find another way to do this. So don't worry about it if the values can be change from somewhere else because it is not possible. And the debounce applies only if you want to enable it (normally in buttons) but I think this is not necessary in this case.

 

 

I hope you find this information useful.

 

 

Regards,

 

-Leonardo
idata
Community Manager
36 Views

Hi Jayls,

 

 

Did the information help you? Do you still have doubts about the internal pull up/down resistors of the Edison?

 

 

Remember that we are here to help you.

 

 

Regards,

 

-Leonardo
jnich3
New Contributor I
36 Views

Hi,

Sorry for long delay in replying, I've been involved with another project. I have some queries from your response:

Firstly can you confirm that the pullup/down resistors are a component of the edison itself and not a component of the breakout board (whether arduino, mini or sparkfun)?

Secondly, my project does involve buttons, so, yes, debounce issues do apply. Can you confirm that the edison does contain debounce code/hardware and that this is fully functional. This thread would suggest not?

If not and given that the files available_debounce and current_debounce exist are there plans to include it at a future date?

Also, if I set the i2c to be gpio would the 910 ohm resistor be available?

idata
Community Manager
36 Views

Hi Jayls,

 

 

I will try to answer your questions in order, so my answers are the following:

 

 

1. Yes, the pullup/down resistors are part of the Edison itself, you can check it in the http://www.intel.com/content/www/us/en/support/boards-and-kits/000005808.html Edison Compute Module Hardware Guide.

 

 

2. Regarding the debounce issues I personally recommend you to use an external circuit ( https://www.ikalogic.com/de-bouncing-circuits), because you are right, the Edison doesn't support debouncing, in the thread that you brought there are some workarounds using debouncing switches, circuits or via software like the Arduino example https://www.arduino.cc/en/Tutorial/Debounce.

 

 

3. I can't say that it will be implemented in a future date, because we are not sure if it does. Like I said to you in the second answer my recommendation is to use an external debouncing circuit.

 

 

4. The I2C pins have 910 ohm value too, so yes I think you can set it as a GPIO and use the 910 ohm resistor.

 

 

I hope this information helps you.

 

 

Regards,

 

-Leonardo
jnich3
New Contributor I
36 Views

Thank you. Very helpful

idata
Community Manager
36 Views

Hi Jayls,

 

 

It is nice to see that the information was helpful.

 

 

Remember that we are here to help you with your issues.

 

 

Have a nice day.

 

 

Regards,

 

-Leonardo
Reply