This topic is similar to a very old post I found in the forum here:
http://forum.arduino.cc/index.php?topic=200951.0
I am attempting to simulate the slave communication that a Smart Battery communicates to the master host.
I am very familiar with the SMBus/Smart Battery protocol, but very unfamiliar with Arduino. From reading multiple sources it appears as though the Wire library is unable to perform the required message protocol. Perhaps this was just with an older implementation of the library? or perhaps there is a new library that can perform these functions.
Anyway, standard communication protocol uses the SMBus Read Word and SMBus Block Read.
Read Word (Slave response in bold)
Start
Address (7-bit address 0x000B)
Write bit (0)
Ack
Command Code
Ack
Start
Address (7-bit address 0x000B)
Read bit (1)
Ack
Data byte low
Ack
Data byte high
Nack
Stop
Read Block (slave response in bold)
Start
Address (7-bit address 0x000B)
Write bit (0)
Ack
Command Code
Ack
Start
Address (7-bit address 0x000B)
Read bit (1)
Ack
Byte Count = N
Ack
Data byte 1
Ack
Data byte 2
Ack
...
Data byte N
Nack
Stop
So, is there a way of performing this with prebuilt libraries?