-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Wire.endTransmission(false) #451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I do apologise for not closing this issue earlier. |
Hey awesome that you got it working for your project. Now with that out of the way, i am still not convinced that the described behavior is within or outside of the standard. But what if you want to have one transaction where you address multiple different slave devices and read or write data to them? Another thing i find weird is that i don't think there should be a difference in your observed behavior between having STOP conditions and having none. Weirdness for sure. |
I got a bit lost on the way to which is right and which wrong. This is how I saw it at the start, My brain crashed towards the end, so I just modified a soft library so that if the option to not send a stop was used, it never sent a stop until I wanted it to. I was not able to modify the Hard Wired I2C library because you only have access to the address of registers that have set tasks, I was not able to work out how to individually change the state of the two wires. |
I believe the I2C terminology for this is "general call address". It is not my intention to express any opinion on this issue. I only wish to offer this phrase which may help you better search for relevant I2C info. |
I noticed that but i made similar mistakes so that is not an issue i think.
Yes, i see how that might have been the case.
Exactly, because there is no difference between a normal START and a REPEATED-START other then state the bus is in.
Again congratulations on getting your project to work.
Hence your switch to the soft-lib, i remember that from the thread and agree. The question i am left with is if the intention of your original issue is a valid one that should actually be pursued.
Thank you for the attempt but i mean something different then the general call on address 0. One reason i can come up with why someone might want to do it like this, is to have everything bundled into a tight time-frame But just because i have seen that somewhere, even if its on a motherboard, that does not mean that it is a spec compliant way of doing things. |
After getting things to work, I have come up with a theory why this protocol on this robot has been modified this way. Hope I have explained that OK. The thing is at the start I assumed it was I2C. It was so close. |
New at using GitHub so apologies if I am doing this wrong.
Using the Wire Library.
Wire.endTransmission(false);
As I understand it this command should not send a STOP "P" after sending/attempting_to_send data in the current transition.
I have visited Arduino Forums to try and find an answer with no joy.
Please take a look, it will explain what my issue is. Wire Library [repeated start]
What I would also like to achieve is what is written in the i2c_bus_specification_1995.pdf
Section 9.1.2 START byte.
I don't think the Wire.endTransmission(false); is working correctly, or perhaps needs another overload.
May be we need: Wire.endTransmission(Boolean, Boolean); first Boolean = Stop bit, second Boolean = Dummy ACK.
The text was updated successfully, but these errors were encountered: