
disable the general call address, but it will become re-enabled the next time the Motoron is reset.
I²C protocol
There are two types of data transfers that can be initiated by an I²C controller: a
write
transfer writes
some number of bytes to a target, and a
read
transfer reads some number of bytes from the target.
When you write bytes to the Motoron using write transfers, those bytes are interpreted as commands
as described in
. The Motoron does not care how the bytes are grouped into write transfers:
you can send each command in its own transfer for simplicity, or send multiple commands together in a
single transfer for extra efficiency. The Motoron acknowledges every byte written to it using I²C’s built-
in acknowledgment mechanism, regardless of whether those bytes actually form valid commands.
Some Motoron commands generate responses. To read the response to a command, you can start
a read transfer after writing the last byte of a command, before you have written any other bytes. (To
ensure that responses do not get mixed up, the Motoron clears its stored response every time a new
byte is written.) It is OK to skip reading a response if you do not need it, or to just read part of it. It is
also OK to read the response using multiple read transfers.
If you read bytes via I²C at a time when there is no response data available, the Motoron will provide
a value of 0xAA for each byte you read. This can happen if you read at the wrong time, or if you read
too many bytes. Enabling CRC for responses (as described in
) and checking the value of
the CRC byte is a good way to detect if this is happening.
Pololu Motoron Motor Controller User’s Guide
© 2001–2022 Pololu Corporation
7. I²C interface
Page 31 of 67