Reply by Neil August 24, 20072007-08-24
mmihai wrote:
> 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 > >
Very True. I get call from them every so often saying Our Battery is defective. A very common mistake does not make it acceptable. If the manufacture changes the chips it may stop working. One brand of I2C bus monitor holds the clock on occasion.
Reply by August 23, 20072007-08-23
On 23 aug, 14:13, rickman <gnu...@gmail.com> wrote:
> On Aug 23, 12:59 am, Eeyore <rabbitsfriendsandrelati...@hotmail.com> > wrote: > > > Terry Given wrote: > > > absolutely. This is a pretty good example of a *really* terrible idea. > > > It saves $0.002 worth of resistors, brutally violates the I2C spec, and > > > doubtless has some interesting dynamic implications. > > > I couldn't agree more. > > > Why would anyone want to do this ? > > If you have a really low power design, it eliminates the current > through the resistors when the bus is low. Maybe this is not a huge > current, but it can be significant in very low power designs.
Right, It all depends. It depends on what _is_ on that i2c bus. For example if you only drive a PCF8574 IO expander, those are only slaves, and have no clock pull down transistor. In such a case it is OK, and even better, to drive the clock from a normal CMOS output, and leave out the clock line pull up resistor. Gives a better clock waveform, and less power consumption. Same for PCF8591 etc.. I have done so, in the early days the i2c spec did not even have the clock pull down stuff, was only single master, and slave acknowledged by pulling sda low.
Reply by rickman August 23, 20072007-08-23
On Aug 23, 12:59 am, Eeyore <rabbitsfriendsandrelati...@hotmail.com>
wrote:
> Terry Given wrote: > > absolutely. This is a pretty good example of a *really* terrible idea. > > It saves $0.002 worth of resistors, brutally violates the I2C spec, and > > doubtless has some interesting dynamic implications. > > I couldn't agree more. > > Why would anyone want to do this ?
If you have a really low power design, it eliminates the current through the resistors when the bus is low. Maybe this is not a huge current, but it can be significant in very low power designs. However, like DRAM, it will require periodic refreshes just by having some bus activity if your operational activity is not frequent enough.
Reply by rickman August 23, 20072007-08-23
On Aug 23, 1:17 am, Eeyore <rabbitsfriendsandrelati...@hotmail.com>
wrote:
> DJ Delorie wrote: > > Eeyore <rabbitsfriendsandrelati...@hotmail.com> writes: > > > Why would anyone want to do this ? > > > Well, in the original article, he admitted that he just forgot to > > design them in > > That's a bit like forgetting to tie your shoelaces !
Actually, he didn't forget them, he thought the MCU had them built in. A mistake, don't we all make mistakes?
Reply by petrus bitbyter August 23, 20072007-08-23
"mmihai" <iiahim@yahoo.com> schreef in bericht 
news:1187808526.744654.296830@r23g2000prd.googlegroups.com...
> 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 > >
Once had to add a device to such a "special". Nothing documented but "I2C". So, the bitbanging master did not look after ACKs and crashed when the clock pulse was stretched. Also bus resistance was too high as was bus capacitance. Could only survive by by adding too low pullup resistors so violating the specs a little bit more. Then added a 82B715 to isolate my own part of the bus. Which was the easy part. Programming around the other violations took some more time. So I can't but repeate it's bad engineering practice. Stick to the specs as long as you can. Preferable a little bit longer. petrus bitbyter
Reply by David L. Jones August 23, 20072007-08-23
On Aug 23, 2:53 pm, Terry Given <my_n...@ieee.org> wrote:
> Robert Adsett wrote: > > In article <1187829284.987009@ftpsrv1>, Terry Given says... > > >>Robert Adsett wrote: > > >>>In article <1187808526.744654.296...@r23g2000prd.googlegroups.com>, > >>>mmihai says... > > >>>>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. > > >>>I think the problem is people are having trouble envisioning any case in > >>>which it makes sense to leave the resistors out. > > >>If you made, say, 1 billion somethings, you could save about $1,000,000 > > > Of course you won't need very many support calls or warranty claims to > > eat that right back up and more. > > > Robert > > absolutely. This is a pretty good example of a *really* terrible idea. > It saves $0.002 worth of resistors, brutally violates the I2C spec, and > doubtless has some interesting dynamic implications. Why stop there - > why not power the I2C peripheral via SCL, SDA using its internal ESD > diodes, and ensuring that there is enough bus activity to keep the > supply pumped up.....
Works a treat with CMOS logic, just keep at least one input high at all times, don't draw too much current, keep your speeds low, and don't rely on meeting the specs :-> Ick! Dave.
Reply by Eeyore August 23, 20072007-08-23

DJ Delorie wrote:

> Eeyore <rabbitsfriendsandrelations@hotmail.com> writes: > > Why would anyone want to do this ? > > Well, in the original article, he admitted that he just forgot to > design them in
That's a bit like forgetting to tie your shoelaces ! Graham
Reply by August 23, 20072007-08-23
Eeyore <rabbitsfriendsandrelations@hotmail.com> writes:
> Why would anyone want to do this ?
Well, in the original article, he admitted that he just forgot to design them in, and didn't want to uglify the board with a couple of afterthought resistors. I agree it's a bad idea, but he did go through all the math and engineering to see if it would work reliably enough for his purposes. Me, I'm following a friend's advice and putting a grid of solder pads on the back of my boards to add 0603 or SOIC parts later if needed. At least they're less visible that way.
Reply by Eeyore August 23, 20072007-08-23

Terry Given wrote:

> absolutely. This is a pretty good example of a *really* terrible idea. > It saves $0.002 worth of resistors, brutally violates the I2C spec, and > doubtless has some interesting dynamic implications.
I couldn't agree more. Why would anyone want to do this ? Graham
Reply by Terry Given August 23, 20072007-08-23
Robert Adsett wrote:
> In article <1187829284.987009@ftpsrv1>, Terry Given says... > >>Robert Adsett wrote: >> >>>In article <1187808526.744654.296830@r23g2000prd.googlegroups.com>, >>>mmihai says... >>> >>> >>>>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. >>> >>> >>>I think the problem is people are having trouble envisioning any case in >>>which it makes sense to leave the resistors out. >>> >> >>If you made, say, 1 billion somethings, you could save about $1,000,000 > > > Of course you won't need very many support calls or warranty claims to > eat that right back up and more. > > Robert
absolutely. This is a pretty good example of a *really* terrible idea. It saves $0.002 worth of resistors, brutally violates the I2C spec, and doubtless has some interesting dynamic implications. Why stop there - why not power the I2C peripheral via SCL, SDA using its internal ESD diodes, and ensuring that there is enough bus activity to keep the supply pumped up..... Cheers Terry