
Brian Hutchinson wrote:
Hi all,
I'm a little stumped as to how to write to a EEPot with the imw command.
The EEPot is a Maxim 5434 and has an address of 0x28. To write to its volatile or non-volatile register ... a command byte is given.
Writing 5 bits of data (it is a 32 tap pot so that is where the 5 bits come from) to move the wiper goes something like this:
Start, 0x28, Ack, Cmd byte, Ack, Data byte, Ack, Stop
Cmd byte is 0x11 to write to volatile reg. 0x21 to write to non-volatile reg.
Looks pretty standard if you map "cmd byte" to "register".
The EEPROM really doesn't have addresses/offsets so I tried:
imw 28 11 80 1
What is the trailing '1' here? Or is the '80' bogus?
I would expect this to work. The i2c command defaults to a one byte register offset. To write a 0x80 byte to register (aka command) 0x11, you want to do this: imw 28 11.1 80 which should be the same as this: imw 28 11 80
imw.w 28 0.0 1180
That seems like it should work also, although the '11' is more logically a register offset.
... but it doesn't appear to play well with my device.
Trivia: the old imw (imr, etc) commands are deprecated, you should use the new "i2c <cmd>" versions.
[snip]
Regards,
Brian
Good luck, gvb