English
Language : 

BQ26150 Datasheet, PDF (10/16 Pages) Texas Instruments – BATTERY PACK SECURITY AND AUTHENTICATION IC FOR PORTABLE APPLICATIONS (bqSECURE)
bq26150
SLUS641A – JANUARY 2005 – REVISED JULY 2005
www.ti.com
Figure 4 provides a pseudo-code example of calculating the CRC in software and Figure 5 shows an example of
the CRC calculations inputs and associated output.
poly = P [15 : 0] ;
strcpy (input, key [ 63 : 0 ] ) ;
strcat (input, challenge [ 31 : 0 ] ) ;
for ( i = o ; i < 96 ; i + + )
{
if (crc [ 0 ] ^ input [ i ] )
crc = ( crc >> 1 ) ^ poly;
else
crc = crc >> 1 ;
}
Figure 4. Pseudo-C Code for CRC Calculation
2 5 11 16
Polynomial = 1 + x + x + x + x
P [ 15 : 0 ] = 1010010000010000
= A410
(binary)
(hex)
Seed [15:0] = 6a9f
(hex)
Decrypted Device ID = 65a9b4f38dcc217d (hex)
Random Challenge = a0071d8e
(hex)
CRC input = a0071d8e65a9b4f38dcc217d (hex)
CRC output = 7ef8
Figure 5. Example Inputs and Output of CRC Calculation
Writing and Reading Nonvolatile Memory
The bq26150 has sixteen bytes of nonvolatile one time programmable memory for general use and 32 bytes for
authentication information that can be programmed by the HDQ engine. All OTP registers are cleared at final
test, allowing for programming at pack manufacturing.
Programming a nonvolatile memory location requires sending the HDQ write command to that location and then
pulling the HDQ line up to 7 V for 300 µs. If the programming pulse is not provided, the data transmitted by the
host will not programmed into the OTP. Figure 6 shows an example of writing and programming address 0x71
with data 0x55 (timings are not drawn to scale). Figure 6, Figure 7 and Table 2 provide more information on the
programming pulse specifications.
VPROG
VPullœup
GND
tPON
Figure 6. Writing and Programming OTP Example
10