EmbeddedRelated.com
Forums
Memfault Beyond the Launch

I2C without resistors

Started by mmihai August 22, 2007
Here you'll find a writing about a resistor-less I2C implementation:

        http://www.delajii.net/~mmihai/Articles/I2C_precharged.html

As the name of the link is saying, it's a 'precharged' I2C bus.

Enjoy!
--
mmihai

On Aug 22, 2:24 pm, mmihai <iia...@yahoo.com> wrote:
> Here you'll find a writing about a resistor-less I2C implementation: > > http://www.delajii.net/~mmihai/Articles/I2C_precharged.html > > As the name of the link is saying, it's a 'precharged' I2C bus. > > Enjoy! > -- > mmihai
Cute but nasty! Assuming your SDA line does have enough capacitance to do this, anything else that switches nearby is going to play havoc. I don't think I'd be able to sleep at night if I implemented this. I'd simply add the resistor and gets a good nights sleep! Dave.
On Aug 21, 10:37 pm, "David L. Jones" <altz...@gmail.com> wrote:

> Cute but nasty! > > Assuming your SDA line does have enough capacitance to do this, > anything else that switches nearby is going to play havoc. I don't > think I'd be able to sleep at night if I implemented this. > I'd simply add the resistor and gets a good nights sleep!
As I wrote, /use on your own risk/. The noise margin will be worse than a standard I2C (no secret about that) but it's up to you to decide if it's appropriate for your application. Anyway, should you decide to use it, do some calculations for yourself: - an I/O pin capacitance in is pF range (2-20pF, depends on the package) - input current for a I/O is less than 1u (F123 has 10nA per data sheet) - the level on SDA while in HiZ has to hold long enough for you clock cycle (that's depends on your MCU speed, faster the better). Study the spec of your devices and do the math. -- mmihai
On Tue, 21 Aug 2007 23:06:43 -0700, mmihai <iiahim@yahoo.com> wrote:

>On Aug 21, 10:37 pm, "David L. Jones" <altz...@gmail.com> wrote: > >> Cute but nasty! >> >> Assuming your SDA line does have enough capacitance to do this, >> anything else that switches nearby is going to play havoc. I don't >> think I'd be able to sleep at night if I implemented this. >> I'd simply add the resistor and gets a good nights sleep! > >As I wrote, /use on your own risk/. >The noise margin will be worse than a standard I2C (no secret about >that) but it's up to you to decide if it's appropriate for your >application. > >Anyway, should you decide to use it, do some calculations for >yourself: > - an I/O pin capacitance in is pF range (2-20pF, depends on the >package) > - input current for a I/O is less than 1u (F123 has 10nA per data >sheet) > - the level on SDA while in HiZ has to hold long enough for you clock >cycle (that's depends on your MCU speed, faster the better). > >Study the spec of your devices and do the math.
resistors are cheap.
"mmihai" <iiahim@yahoo.com> schreef in bericht 
news:1187762803.647774.215680@l22g2000prc.googlegroups.com...
> On Aug 21, 10:37 pm, "David L. Jones" <altz...@gmail.com> wrote: > >> Cute but nasty! >> >> Assuming your SDA line does have enough capacitance to do this, >> anything else that switches nearby is going to play havoc. I don't >> think I'd be able to sleep at night if I implemented this. >> I'd simply add the resistor and gets a good nights sleep! > > As I wrote, /use on your own risk/. > The noise margin will be worse than a standard I2C (no secret about > that) but it's up to you to decide if it's appropriate for your > application. > > Anyway, should you decide to use it, do some calculations for > yourself: > - an I/O pin capacitance in is pF range (2-20pF, depends on the > package) > - input current for a I/O is less than 1u (F123 has 10nA per data > sheet) > - the level on SDA while in HiZ has to hold long enough for you clock > cycle (that's depends on your MCU speed, faster the better). > > Study the spec of your devices and do the math. > -- > mmihai >
I can't but consider it bad engineering practice. The I2C is well specified and you'd stick to it as long as possible. This type of "solution" may work in a one of a kind or small series. But even then, the price of the extra resistors outweight the risks by far. Large series will give more problems as you will get unrecognised, intermittend problems in only some of the devices. The costs will easily grow way beyond the cost of correcting the design. petrus bitbyter
mmihai wrote:
> Here you'll find a writing about a resistor-less I2C implementation: > > http://www.delajii.net/~mmihai/Articles/I2C_precharged.html > > As the name of the link is saying, it's a 'precharged' I2C bus. > > Enjoy! > -- > mmihai >
Interesting, but why? The two resistors necessary in I2C are cheap and small and (bonus) let the link work according to spec. I would never do this even on a hobby project. Interesting that it can be done, although it's probably been done inadvertently anyway ;) Cheers PeteS
mmihai wrote:
> Here you'll find a writing about a resistor-less I2C implementation: > > http://www.delajii.net/~mmihai/Articles/I2C_precharged.html > > As the name of the link is saying, it's a 'precharged' I2C bus. > > Enjoy! > -- > mmihai
It is allowed that a station in the I2C bus clamps a signal to ground. If you're attempting to precharge a clamped signal, you'll create a straight short - not a too recommendable practice. The clamping can be done on both the SCK and the SDA line. Read the spec for details. -- Tauno Voipio tauno voipio (at) iki fi
On Aug 22, 11:08 am, Tauno Voipio <tauno.voi...@INVALIDiki.fi> wrote:

> It is allowed that a station in the I2C bus clamps > a signal to ground. If you're attempting to precharge > a clamped signal, you'll create a straight short - not > a too recommendable practice. > > The clamping can be done on both the SCK and the SDA > line.
Yes, I know. Read the "simple bus" description form the article. I never claimed this is better than I2C from the original spec. It is just a way to run I2C in some /special/ cases as stated in the text. -- mmihai
mmihai wrote:
> On Aug 22, 11:08 am, Tauno Voipio <tauno.voi...@INVALIDiki.fi> wrote: > > >>It is allowed that a station in the I2C bus clamps >>a signal to ground. If you're attempting to precharge >>a clamped signal, you'll create a straight short - not >>a too recommendable practice. >> >>The clamping can be done on both the SCK and the SDA >>line. > > > Yes, I know. > > Read the "simple bus" description form the article. > > I never claimed this is better than I2C from the original spec. > It is just a way to run I2C in some /special/ cases as stated in the > text. > > -- > mmihai
Any slave is allowed to clamp the SCK line, so a 'special case bus' is quite useless, or at least it is not I2C anmyore. Call it then something else. -- Tauno Voipio tauno voipio (at) iki fi
On Aug 22, 1:11 pm, Tauno Voipio <tauno.voi...@INVALIDiki.fi> wrote:

> Any slave is allowed to clamp the SCK line, > so a 'special case bus' is quite useless, or > at least it is not I2C anmyore. Call it then > something else.
It's a sub set of I2C. Being allowed does not mean it must to. Doc pointer: http://www.i2c-bus.org/singlemaster/ You'll find plenty of other [software] implementations which don't check if SCL is high after it is released. One can figure out from the datasheet of the devices if handshake (i.e. clock stretching) is needed or not. -- mmihai

Memfault Beyond the Launch