Question about Pullup Resistors

Post Reply
User avatar
jevermeister
Posts: 708
Joined: Wed Jul 20, 2011 8:56 am
Contact:

Question about Pullup Resistors

Post by jevermeister »

Hi,
I use a quadX powered by Flyduino Mega and MultiWii1.9
Sensors:
- Genuine WM+
- BMA020 ACC
- HMC5883L MAG
- BMP085 BARO
additionall I use the flydusense 2.0 with installed 5V Pullups connected to baro and mag

I have the internal Pullups enabled.

I am wondering if this is the best solution. I have a Spakfun LLC ling somewhere ready to install.
After I read an article: http://www.dsscircuits.com/articles/eff ... stors.html

What do you suggest? Is my config okay, can I disable internal pullups since BMA020 and WMP have internal LLC?

Thank you ans sorry for the stupid question.

Nils

ps.: I want to publish a guide about that in my blog.

mr.rc-cam
Posts: 457
Joined: Wed Jul 27, 2011 11:36 pm

Re: Question about Pullup Resistors

Post by mr.rc-cam »

Is my config okay, can I disable internal pullups since BMA020 and WMP have internal LLC?

The CPU's internal pullups are very weak values that range from 30K - 50K ohms. On a typical MWC the ideal I2C pullup value is 2K - 3K ohms (2.2K ohms seems to be the sweet spot).

I suggest you review all the pullups installed on your hardware (Flyduino || flydusense || LLC) and calculate their net parallel resistances. Then make any changes to them to achieve the desired target I2C pullup value.

- Thomas

User avatar
jevermeister
Posts: 708
Joined: Wed Jul 20, 2011 8:56 am
Contact:

Re: Question about Pullup Resistors

Post by jevermeister »

I only installed the pullups on the flydusense those are 6.8k resistors...

mr.rc-cam
Posts: 457
Joined: Wed Jul 27, 2011 11:36 pm

Re: Question about Pullup Resistors

Post by mr.rc-cam »

Are you absolutely sure there aren't any other I2C pullups lurking in your installation? For example, LLC's and external sensor boards often have some already installed. So carefully review everything to determine what's there before making any changes. If all that's installed are your 6.8K's, and they are sourced by 5V (not 3.3V), then I would suggest you change to 2.2K's.

Useful information about pullups is in the section "I2C Hardware Fix List": viewtopic.php?f=8&t=986

- Thomas

User avatar
jevermeister
Posts: 708
Joined: Wed Jul 20, 2011 8:56 am
Contact:

Re: Question about Pullup Resistors

Post by jevermeister »

Hi Thomas,
as stated before:
-Fylduino v2.1
-Bosch BMA020
-Genuine Nintendo WMP
-Bosch BMO085
-Honeywell HM5883L

The I²C bus is running on 5V
i installed the sensors onto a Flydusense V2.0 on this board I installed 5V Pullups 6.8k

I think the BMA has onboard LLC.
Can I measure the NET resistance??

oh I feel really stupid right now...

mr.rc-cam
Posts: 457
Joined: Wed Jul 27, 2011 11:36 pm

Re: Question about Pullup Resistors

Post by mr.rc-cam »

i installed the sensors onto a Flydusense V2.0 on this board I installed 5V Pullups 6.8k

I don't have any personal experience with the Flyduino and Flydusense. I searched for schematics to them and could not locate any. So without such details I am not able to confirm anything I recommend.

The I²C bus is running on 5V

Good. I read the Flydusense catalog page and it says there is an LLC on it, so that is good news.

I think the BMA has onboard LLC.

Which BMA board do you have? Please post a link to it.

For example, if it is the ELV BMA020 then it will have factory installed 10K pullups on it.
http://www.elv.de/output/controller.asp ... ail2=28515
So if you are using the ELV board, the strategy would be to retain its 10K pullups and then replace your 6.8K's with 3.3K's. A little math will show that 3.3K || 10K = 2.4K ohms, which is a reasonable choice for the typical MWC. However, if there are other pullups lurking in your installation then you need to account for them too. Schematics are always the best place to start.

Can I measure the NET resistance??

It would be grand if it was as easy as using an ohmmeter, but that won't provide accurate readings (the connected IC's will tarnish the readings). However, if you have an o-scope you can use it to validate the I2C signal levels and rise times.

- Thomas

User avatar
jevermeister
Posts: 708
Joined: Wed Jul 20, 2011 8:56 am
Contact:

Re: Question about Pullup Resistors

Post by jevermeister »

I have the BMA020 from ELV.
I think the flyduino does noit have pullups installed, only the internals, the arduino uses. The flydusense only have the 6.8k resistors I installed.
Do you know a resource about pullups?
I will try to meausre somethin over the weekend,
Hopefully my son can wait and will choose monday as his birthday. ;-)

I own a really good fluke scope meter.

nils

mr.rc-cam
Posts: 457
Joined: Wed Jul 27, 2011 11:36 pm

Re: Question about Pullup Resistors

Post by mr.rc-cam »

Do you know a resource about pullups?

The link you mentioned in the first post has practical information about I2C rise times and levels.

The Flyduino board developer will be able to advise if there are any pre-installed pullups on his designs that you are not aware of. If he says there are none then change your 6.8K's to 3.3K's, confirm that there are no I2C errors in debug2, then test fly.

- Thomas

Post Reply