English
Language : 

BQ26100_15 Datasheet, PDF (11/29 Pages) Texas Instruments – Based Security and Authentication IC
www.ti.com
bq26100
SLUS696B – JUNE 2006 – REVISED AUGUST 2015
Memory
Function
Flow
NO
M/F = 0xF0?
NO
YES
Read
Memory
Flow
M/F = 0x0F?
NO
M/F = 0xC3?
YES
YES
Read
Page
Flow
Write
Memory
Flow
NO
M/F = 0xDD?
NO
M/F = 0x22?
NO
M/F = 0xAA?
NO
M/F = 0x55?
NO
M/F = 0x88?
NO
M/F = 0x77?
NO
M/F = 0xE0?
NO
M/F = 0x0E?
NO
YES
Read
Digest
Flow
YES
YES
Read
Status
Flow
YES
YES
Read
Control
Flow
YES
YES
Read
EEPROM
Flow
YES
Write
Message
Flow
Write
Status
Flow
Write
Control
Flow
Write
EEPROM
Flow
M/F = 0x99?
NO
YES
M/F = 0xFA?
NO
YES
M/F = 0xAF?
NO
YES
Read
Page 4
Flow
Profile
Flow
Write
Page 4
Flow
ROM
Function
Flow
Figure 9. Memory Function Flow Chart
The SDQ protocol requires a CRC calculation as part of the communication flow. The CRC, based on a
polynomial of x8+x5+x4+1, is computed to determine data integrity and its use varies in the protocol. The Memory
Function flows show what data are shifted through the CRC and when the value is transmitted from the slave.
Each data byte used in the CRC calculation is pushed through the CRC shift register from LSB to MSB. The byte
wide CRC computation is:
for (i = 0; i < 8; i++) {
if (crc[0] ^ input[i])
crc = (crc >> 1) ^ 0x8C;
else
crc = crc >> 1;
}
Where did the magic number 0x8C come from? CRC polynomials are defined such that the highest order simply
shows the number of bits, so x8+x5+x4+1 defines an 8-bit value with a binary value of 00110001 (bits 0, 4, and 5
are 1 and all others are 0). Since the SDQ CRC is computed by shifting in the LSB, the polynomial must be used
in reverse bit order – binary 10001100 or hexadecimal 0x8C.
The CRC value is reset to 0 prior to the first byte being shifted through. The CRC is also reset when the CRC is
shifted out as part of the SDQ protocol.
Copyright © 2006–2015, Texas Instruments Incorporated
Product Folder Links: bq26100
Submit Documentation Feedback
11