I have decided to use I2C for a project. I am going to use buffers to extend the range to some 10's of meters.
I will be using its multi-master implemtation so that nodes can transmit status updates when they need to, in response to changes in the world.
Now I could have every node keep track of everything that is on the bus and transmit a copy of its data everything that is present but doing that is only slightly better than having a single master poll everything and then update everything else.
What I would like to do is have anything that is talking transmit blind, unacknolligaed, and everything else listen.
Obviously I appriciate that this will probably involve some high level code to craft a responce, in some circumstances when confirming an instruction has been acted on but that is not so hard.
MY understanding, limmited as it is so far, is that I2C has many possible modes, most of which I do not understand yet.
Only a couple of those modes are implemented by the wire library.
In slave mode the hardware is asssigned an address causing it to ignore anything not directly sent to it.
Slaves only get one address.
Is there a way to get everything, but the current master, to listen, IE fill its RX buffer with the bus traffic.
I would be happy to use simple TX messages at all times and never to require a restart which avoids all the multi master issues as far as I am aware.
I am also keen to research this stuff myself but so far I do not know enough to even start looking properly...
If someone could give me a leg up RE I2C in general, its implimentation on ATmega32u4 hardware and the capabilities, or lack therof, of the Wire library I would be very greatful.
Thanks,
Al
I will be using its multi-master implemtation so that nodes can transmit status updates when they need to, in response to changes in the world.
Now I could have every node keep track of everything that is on the bus and transmit a copy of its data everything that is present but doing that is only slightly better than having a single master poll everything and then update everything else.
What I would like to do is have anything that is talking transmit blind, unacknolligaed, and everything else listen.
Obviously I appriciate that this will probably involve some high level code to craft a responce, in some circumstances when confirming an instruction has been acted on but that is not so hard.
MY understanding, limmited as it is so far, is that I2C has many possible modes, most of which I do not understand yet.
Only a couple of those modes are implemented by the wire library.
In slave mode the hardware is asssigned an address causing it to ignore anything not directly sent to it.
Slaves only get one address.
Is there a way to get everything, but the current master, to listen, IE fill its RX buffer with the bus traffic.
I would be happy to use simple TX messages at all times and never to require a restart which avoids all the multi master issues as far as I am aware.
I am also keen to research this stuff myself but so far I do not know enough to even start looking properly...
If someone could give me a leg up RE I2C in general, its implimentation on ATmega32u4 hardware and the capabilities, or lack therof, of the Wire library I would be very greatful.
Thanks,
Al