Truncated match.
PICList
Thread
'Multi-master I2C'
1998\01\09@054202
by
sajjad.akhter
1998\01\09@084939
by
Keith Howell
Being a master is done by bit-banging on all PICs.
Multi-master I2C is much more complex.
It is a bus, not simple point-to-point.
Think of it as a tiny local area network.
You have similar issues.
As well as collision detection, arbitration, you must think
carefully about how your application deals with it.
Do you back off and retry endlessly?
When should you retry? Immediately? After random interval?
How often? Once? Endlessly?
If masters retry at the same time,
What is the volume of traffic?
This affects how likely these problems occur.
A vital question: Will any of your PICs be I2C slaves?
If so, the lack of I2C hardware will make this very difficult.
Even with the hardware, it's hard work.
What's your application & level of expertise?
1998\01\09@120410
by
Laszlo Kohegyi
Hello,
>Being a master is done by bit-banging on all PICs.
>
>Multi-master I2C is much more complex. It is a bus, not simple
>point-to-point.
>Think of it as a tiny local area network. You have similar issues.
>As well as collision detection, arbitration, you must think carefully about
>how your application deals with it.
It isn't so hard. If you follow the I2C spec, there won't be any collision
and it has a built in arbitration scheme.
Regards
Les
1998\01\13@085324
by
Keith Howell
|
Laszlo Kohegyi wrote:
>
> >Multi-master I2C is much more complex. It is a bus, not simple
> >point-to-point.
> >Think of it as a tiny local area network. You have similar issues.
> >As well as collision detection, arbitration, you must think carefully about
> >how your application deals with it.
>
> It isn't so hard. If you follow the I2C spec, there won't be any collision
> and it has a built in arbitration scheme.
>
> Regards
> Les
By collisions, I mean two masters trying to grab the bus at the same time.
These DO happen.
Yes, the I2C arbitration scheme allows two masters to decide
who gets the bus and who backs off.
What I mean is that if your app has to back off,
you have to define what it does then.
The I2C spec can't tell you that.
In my app, I just retry sending the messages again from the START condition.
IMHO, it is bloody hard (and I'm not a newbie either)
Not so much the I2C spec itself,
but wrestling with Microchip's hardware and example software.
Both of which have nasties in them. Honest!
More... (looser matching)
- Last day of these posts
- In 1998
, 1999 only
- Today
- New search...