Specifications
Data sheet
BMA220
Page 47
BST-BMA220-DS003-08 | Revision 1.15 | August 2011 Bosch Sensortec
© Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to
third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany.
Note: Specifications within this document are subject to change without notice.
I²C read command
I²C read command supports multiple bytes reading. A read command consists of a 1-byte I²C
write phase followed by I²C read phase. The two I²C transmissions must be separated by a
repeated start condition (Sr). The I²C write phase addresses the slave and sends the register
address to be read. After slave acknowledges the transmission, master generates again a start
condition and sends the slave address together with a read bit (R/W = 1). Then master releases
the bus and waits for the data bytes to be read out from slave. After each data byte the master
has to generate an acknowledge bit (ACK = 0) to enable further data transfer.
A NACK (ACK = 1) from master stops the data transferring from slave. Slave releases the bus
so that master can generate a STOP condition and terminate the transmission.
Register address is automatically incremented and more than one byte can be sequentially read
out. Once a new data read transmission starts, the start address will be set to the register
address specified in the latest I²C write command. By default the start address is set at 0x00.
In this way repetitive multi-bytes reads from the same starting address are possible.
Data transferred by Master
Data transferred by Slave
Start R/W ACK ACK
0001011 0 0000010X
Repeat
Start
R/W A CK A CK A CK
0001011 1 XXXXXXXX XXXXXXXX …
ACK ACK
… XXXXXXXX XXXXXXXX …
ACK ACK Stop
… XXXXXXXX XXXXXXXX
Sr 000
Slave Address Register data - address 06hRegister data - address 04h
Data byte Data byte
Register address (04h)
S 00
Slave Address
P
Data byte Data byte
Register data - address 12h Register data - address 14h
00
01
Data byte Data byte
Register data - address 08h Register data - address 10h
Figure 23: I²C multiple bytes read protocol










