Texas Instruments bq27500 Marine Instruments User Manual


 
www.ti.com
4.2DATAFLASHINTERFACE
4.2.1ACCESSINGTHEDATAFLASH
bq27500
bq27501
System-SideImpedanceTrack™FuelGauge
SLUS785SEPTEMBER2007
4.1.2.7DeviceNameLength():0x62
UNSEALEDandSEALEDAccess:ThisbytecontainsthelengthoftheDeviceName.
4.1.2.8DeviceName():0x630x69
UNSEALEDandSEALEDAccess:ThisblockcontainsthedevicenamethatisprogrammedinDevice
Name.
4.1.2.9ApplicationStatus():0x6a
ThisbytefunctionallowsthesystemtoreadtheApplicationStatusregisterofthebq27500/01.See
Section6.1.3forspecificbitdefinitions.
4.1.2.10Reserved0x6b0x7f
Thebq27500/1dataflashisanon-volatilememorythatcontainsbq27500/1initialization,default,cell
status,calibration,configuration,anduserinformation.Thedataflashcanbeaccessedinseveraldifferent
ways,dependingonwhatmodethebq27500/1isoperatinginandwhatdataisbeingaccessed.
Commonlyaccesseddataflashmemorylocations,frequentlyreadbyasystem,areconveniently
accessedthroughspecificinstructions,alreadydescribedinSection4.1DATACOMMANDS.These
commandsareavailablewhenthebq27500/1iseitherinUNSEALEDorSEALEDmodes.
Mostdataflashlocations,however,areonlyaccessibleinUNSEALEDmodebyuseofthebq27500/1
evaluationsoftwareorbydataflashblocktransfers.Theselocationsshouldbeoptimizedand/orfixed
duringthedevelopmentandmanufactureprocesses.Theybecomepartofagoldenimagefileandcan
thenbewrittentomultiplebatterypacks.Onceestablished,thevaluesgenerallyremainunchangedduring
end-equipmentoperation.
Toaccessdataflashlocationsindividually,theblockcontainingthedesireddataflashlocation(s)mustbe
transferredtothecommandregisterlocations,wheretheycanbereadtothesystemorchangeddirectly.
Thisisaccomplishedbysendingtheset-upcommandBlockDataControl()(0x61)withdata0x00.Upto32
bytesofdatacanbereaddirectlyfromtheBlockData()(0x400x5f),externallyaltered,thenre-writtento
theBlockData()commandspace.Alternatively,specificlocationscanberead,altered,andre-writtenif
theircorrespondingoffsetsareusedtoindexintotheBlockData()commandspace.Finally,thedata
residinginthecommandspaceistransferredtodataflash,oncethecorrectchecksumforthewholeblock
iswrittentoBlockDataChecksum()(0x60).
Occasionally,adataflashCLASSwillbelargerthanthe32-byteblocksize.Inthiscase,the
DataFlashBlock()commandisusedtodesignateinwhich32-byteblockthedesiredlocationsresides.
Thecorrectcommandaddressisthengivenby0x40+offsetmodulo32.Forexample,toaccess
TerminateVoltageintheGasGaugingclass,DataFlashClass()isissued80(0x50)tosettheclass.
Becausetheoffsetis48,itmustresideinthesecond32-byteblock.Hence,DataFlashBlock()isissued
0x01tosettheblockoffset,andtheoffsetusedtoindexintotheBlockData()memoryareais0x40+48
modulo32=0x40+16=0x40+0x10=0x50.
Readingandwritingsubclassdataareblockoperationsupto32bytesinlength.Ifduringawritethedata
lengthexceedsthemaximumblocksize,thenthedataisignored.
Noneofthedatawrittentomemoryareboundedbythebq27500/1–thevaluesarenotrejectedbythe
fuelgauge.Writinganincorrectvaluemayresultinhardwarefailureduetofirmwareprogram
interpretationoftheinvaliddata.Thewrittendataispersistent,soaPower-On-Resetdoesresolvethe
fault.
GENERALDESCRIPTION 16SubmitDocumentationFeedback