特点
•1536位一次性可编程(OTP)EPROM,用于存储用户可编程配置数据
•工厂编程的唯一64位标识号
•总线接口架构,允许多个bq2024连接到单个主机
•单线接口,减少
电路板布线
•同步
通信减少主机中断开销
•无需备用
电源
•地址空间向后兼容bq2022A
•8字节RAM缓冲区,写入速度更快
•页面地址重定向
•SDQ上的15KV IEC 61000-4-2充气
•提供3针SOT23封装和TO-92封装
应用
•安全编码
•库存跟踪
•产品修订维护
•电池组标识
说明
bq2024是一个1.5K位串行EPROM,包含工厂编程的唯一48位标识号、8位CRC生成和8位系列代码(09h)。64位状态寄存器控制写保护和页重定向。
bq2024 SDQ™ 接口只需要一个连接和一个接地回路。数据引脚也是bq2024的唯一电源。总线体系结构允许多个SDQ设备连接到单个主机。
小表面贴装封装选项节省了印刷电路板空间,而低成本使其成为电池组配置参数、记录维护、资产跟踪、产品修订状态和访问代码安全性等应用的理想选择。
订购信息
(1)、有关最新的软件包和订购信息
(2)、指定在-40°C至85°C下通信的设备。
(3)、该设备仅提供磁带和卷盘,bq2024DBZR的基本数量为3000台,bq2024LPR的基本数量为2000台。
方块图
功能描述
一般操作
第1页的方框图显示了bq2024的主要控制和存储部分之间的关系。bq2024有三个主要的数据组件:1536位工厂编程ROM,包括8位系列代码、48位标识号和8位CRC值、EPROM和EPROM状态字节。读写操作的电源来自数据引脚。内部电容器在信号线处于高位时存储能量,并在数据引脚的低时间释放能量,直到引脚返回高电平以补充电容器上的电荷。可以读取特殊制造商的程序配置文件字节,以确定编程部件所需的编程配置文件。
1536位EPROM
表1是bq2024的1536位EPROM段的内存映射,配置为6页,每页32字节。8字节RAM缓冲区是编程存储器时使用的附加寄存器。数据首先写入RAM缓冲区,然后通过从bq2024读取8位CRC进行验证,该CRC确认正确接收到数据。如果缓冲区内容正确,则发出编程命令,并将8字节的数据段写入存储器中选定的地址。这一过程确保了对存储器编程时的数据完整性。有关读取和编程bq2024的1536位EPROM部分的详细信息,请参阅本数据表的存储器功能命令部分。
EPROM状态存储器
除了可编程的1536位内存外,还有64位的状态信息包含在EPROM状态存储器。状态存储器可通过单独的命令访问。状态位是EPROM,被读取或编程以向询问bq2024的软件指示各种情况。状态存储器的第一个字节包含写保护页位,如果适当的写保护位被编程,则禁止1536位主存储器区域中相应页的编程。一旦在写保护页字节中编程了一个位,则对应于该位的整个32字节页将不再被改变,但仍可被读取。可使用写保护命令清除写保护位。
EPROM状态内存的下六个字节包含页地址重定向字节。EPROM状态字节中的位可以向主机指示哪个页面被相应的重定向字节取代。bq2024的硬件不会根据页面地址重定向字节的内容做出决定。此功能允许用户的软件通过指示应该用页面地址重定向字节中指示的页面来替换特定页面,从而对EPROM进行数据修补。新页面地址的1补码被写入与原始(替换)页面相对应的页面地址重定向字节。如果页地址重定向字节具有FFh值,则主内存中与该页相对应的数据有效。如果页面地址重定向字节具有其他十六进制值,则与该重定向字节相对应的页面中的数据无效,现在可以在存储在相关页地址重定向字节中的十六进制值指示的页地址的1补码处找到有效数据。例如,第1页的重定向字节中的FDh值表示更新的数据现在位于第2页中。有关读取和编程bq2024的EPROM状态存储器部分的详细信息在存储器功能命令部分给出。
错误检查
为了验证从bq2024发送的数据,主机在接收到数据时根据数据生成CRC值。将生成的值与bq2024发送的CRC值进行比较。如果两个CRC值匹配,则传输无错误。这个多项式等于这个多项式。详情见本数据表的CRC生成部分。
定制bq2024
64位ID标识每个bq2024。48位序列号是唯一的,由德州仪器公司编程。
默认的8位系列代码是09h;但是,可以根据单个客户保留不同的值。有关更多信息,请联系您的德州仪器销售代表。
总线终端
由于bq2024的驱动输出是一个开漏、N沟道MOSFET,主机必须提供源电流或5-kΩ的外部上拉,如图1中的典型应用电路所示。
串行通信
主机通过SDQ接口的分层命令结构读取、编程或检查bq2024的状态。图2显示主机必须首先发出一个ROM命令,然后才能读取或修改EPROM内存或状态。当SDQ总线上有多个设备时,ROM命令要么选择一个特定的设备,要么跳过单个SDQ设备应用程序中的选择过程。
初始化
初始化包括两个脉冲,复位脉冲和存在脉冲。主机产生复位脉冲,bq2024则以存在脉冲响应。主机通过驱动数据总线低电平至少480μs来重置bq2024。有关更多详细信息,请参阅SDQ信令下的重置部分。
ROM命令
读取ROM
READ ROM命令序列是允许主机读取8位系列代码和48位标识号的最快序列。如果总线上只连接了一个SDQ从设备,则使用此选项。从主机产生至少480μs的复位脉冲开始读取ROM序列。bq2024用存在脉冲响应。接下来,主机继续发出READ ROM命令33h,然后在数据帧期间使用读取信令(参见读写信号部分)读取ROM和CRC字节。
匹配ROM
当已知系列代码和标识号时,主机使用MATCH ROM命令55h来选择特定的SDQ设备。主机发出MATCH ROM命令,后跟系列代码、ROM编号和CRC字节。只选择与64位ROM序列匹配的设备,并可用于执行后续的存储器/状态功能命令。
搜索ROM
搜索ROM命令F0h用于在未知的情况下获取任何SDQ设备的8位族代码、48位标识号和8位CRC。总线上的所有设备在searchrom命令下使用碰撞检测和设备解码方法读取。图5显示主机启动的搜索ROM序列,产生至少480μs的复位脉冲。bq2024用存在脉冲响应。主机通过写入F0h在命令帧中发出命令。在读取搜索ROM序列的数据期间,每一位被传输三次。bq2024发送比特,然后发送比特的补码。主机依次重新传输刚刚读取的位。碰撞检测是通过比较位和位补码时隙来执行的。如果两者都为零,则表示发生了碰撞,表示总线上有多个设备。在从主机到bq2024的比特的第三次传输中实现设备解码。如果主机发送的比特与bq2024发送的比特不匹配,则不匹配的设备停止发送。匹配的设备继续传输。这个过程一直持续到单个设备的所有位都被读取。重新发出SEARCH ROM命令,并重复该过程以读取其他设备。
注意:如果总线上的设备数量未知,则应使用SEARCH ROM命令。
跳过ROM
这个SKIP ROM命令CCh允许主机在不发出64位的情况下访问内存/状态功能ROM代码序列。SKIP ROM命令后面是存储器/状态功能命令。由于当多个SDQ设备位于同一总线上时,此命令可能会导致总线冲突,因此应该在单个设备应用程序中发出此命令。
记忆/状态功能命令
六个存储器/状态功能命令允许读取和修改1536位EPROM数据存储器或64位EPROM状态存储器。有两种类型的读存储器命令,加上写存储器、读状态和写状态命令。此外,部件响应程序配置文件字节命令。bq2024仅在通过ROM命令选择部件后才响应存储器/状态功能命令。
读取数据存储器命令
bq2024上有两个读存储器命令。这两个命令都用于从1536位EPROM数据字段读取数据。它们是读存储器/页CRC和读存储器/字段CRC命令。读存储器/页CRC在任何32字节页边界的末尾生成CRC,而读存储器/字段CRC在到达1536位数据存储器的末尾时生成CRC。
读存储器/页CRC
为了在bq2024的32字节页边界读取内存并生成CRC,ROM命令后面是读存储器/生成CRC命令C3h,然后是地址低字节,然后是地址高字节。
命令字节和地址字节的8位CRC由bq2024计算并由主机读回,以确认接收到正确的命令字和起始地址。如果主机读取的CRC不正确,则必须发出复位脉冲,并且必须重复整个序列。如果主机接收到的CRC是正确的,则主机发出读取时隙,并从bq2024接收数据,从初始地址开始一直持续到32字节页的末尾。此时,主机发送八个额外的读时隙,并接收到一个8位的CRC,这是将所有数据字节从初始开始字节转移到当前页的最后一个字节的结果。一旦接收到8位CRC,从下一页开始再次从1536位EPROM数据字段读取数据。这个序列一直持续到主机读取最后一页及其附带的CRC。因此,每一页的数据可以被认为是33字节长,32字节的用户编程的EPROM数据和一个8位的CRC,它在每页末尾自动生成。
读存储器/字段CRC
为了在32字节页边界上不生成CRC来读取内存,ROM命令后接读存储器命令F0h,然后是地址低字节,然后是地址高字节。
注意:如图8所示,地址和数据的各个字节首先被LSB传输。
命令字节和地址字节的8位CRC由bq2024计算并由主机读回,以确认接收到正确的命令字和起始地址。如果主机读取的CRC不正确,则必须发出复位脉冲,并且必须重复整个序列。如果主机接收到的CRC正确,则主机发出读取时隙,并从bq2024接收数据,从初始地址开始,一直持续到1536位数据字段的末尾或直到发出复位脉冲。如果读取发生在存储器空间的末尾,主机可以发出八个额外的读取时隙,并且bq2024响应从存储器的初始起始字节到最后一个字节读取的所有数据字节的8位CRC。在主机接收到CRC之后,在发出复位脉冲之前,任何后续的读取时隙都将显示为逻辑1s。在到达存储器末端之前由复位脉冲结束的任何读取都没有8位CRC可用。
写入存储器
写入存储器命令用于编程1536位EPROM存储器字段。1536位内存字段按8字节段编程。数据首先被写入一个8字节的RAM缓冲区,一次一个字节。当发出编程命令时,RAM缓冲区的内容与EPROM存储器字段的内容进行“与”运算。
图9演示了EPROM内存字段编程的事件序列。在发出ROM命令后,主机发出写存储器命令0Fh,接着是起始地址的低字节,然后是高字节。比特2028根据CRC-2028计算并发送CRC-2024指令。
如果在写入存储器过程中的任何时候,主机读取的CRC不正确,则必须发出复位脉冲,并且必须重复整个序列。
在bq2024发送CRC之后,主机然后向bq2024发送8字节的数据。另一个8位CRC是基于8字节的数据计算和传输的。如果该CRC与主机计算的CRC一致,则主机发送程序命令5Ah,然后施加至少2500μs或tEPROG的编程电压。然后,RAM缓冲区的内容与起始地址的8字节EPROM偏移量的内容进行逻辑“与”运算。
起始地址可以是0000到00BF(十六进制)之间的任意整数倍,例如0000、0008和0010(hex)。
写入数据存储器命令序列可通过发出复位脉冲在任何点终止,程序脉冲周期tPROG除外。
注意:bq2024响应来自所选EPROM地址的数据,首先发送最低有效位。应检查此响应以验证编程字节。如果编程字节不正确,则主机必须重置部件并重新开始写入序列。
对于这两种情况,继续编程的决定完全由主机决定,因为bq2024无法确定主机计算的8位CRC是否与bq2024计算的8位CRC一致。
编程之前,1536位EPROM数据字段中的位显示为逻辑1。
读取状态
读取状态命令用于从EPROM状态数据字段读取数据。在发出ROM命令后,主机发出READ STATUS命令AAh,然后是地址低字节,然后是地址高字节。
注意:命令字节和地址字节的8位CRC由bq2024计算并由主机读回,以确认接收到正确的命令字和起始地址。
如果主机读取的CRC不正确,则必须发出复位脉冲,并且必须重复整个序列。如果主机接收到的CRC正确,则主机发出读时隙并从bq2024接收数据,从提供的地址开始,一直持续到EPROM状态数据字段的末尾。此时,主机接收到一个8位的CRC,这是将所有数据字节从初始起始字节转移到包含00h值的最终工厂编程字节转移到CRC生成器的结果。
之所以提供此功能,是因为EPROM状态信息可能会随着时间的推移而改变,从而无法对数据进行一次编程,并包含始终有效的伴随CRC。因此,READ status命令提供基于EPROM状态数据字段中存储的当前数据的8位CRC。
读取8位CRC后,主机从bq2024接收逻辑1,直到发出复位脉冲。读取状态命令序列可以通过发出复位脉冲在任何点结束。
写入状态
写入状态命令用于在通过ROM命令选择bq2024之后对EPROM状态数据字段进行编程。
图11中的流程图说明主机发出Write Status命令55h,然后是地址低位字节,然后是地址高位字节,最后是要编程的数据字节。
注意:地址和数据的各个字节首先通过LSB传输。命令字节、地址字节和数据字节的8位CRC由bq2024计算并由主机读回,以确认接收到正确的命令字、起始地址和数据字节。
如果主机读取的CRC不正确,则必须发出复位脉冲,并且必须重复整个序列。如果主机接收到的CRC正确,则发出程序命令(5Ah)。程序命令发出后,编程电压VPP被施加到周期tPROG的数据管脚上。编程前,EPROM状态数据字段的前7个字节显示为逻辑1。对于主机提供的数据字节中设置为逻辑0的每个位,在字节位置应用编程脉冲后,EPROM状态数据字段所选字节中的相应位被编程为逻辑0。EPROM状态字节数据字段的第八个字节在工厂编程为包含00h。
在应用编程脉冲并且数据线返回到VPU后,主机发出八个读取时隙,以验证是否已对适当的位进行了编程。bq2024响应来自所选EPROM状态地址的数据,首先发送最低有效位。应检查此响应以验证编程字节。如果编程的字节不正确,则主机必须重置设备并重新开始写入序列。如果bq2024 EPROM数据字节编程成功,bq2024将自动增加其地址计数器,以选择状态存储器数据字段中的下一个字节。新的两字节地址的最低有效字节也作为起始值加载到8位CRC生成器中。主机使用八个写入时隙发出下一个字节的数据。
当bq2024接收到这个字节的数据到RAM缓冲区时,它也将数据转移到CRC生成器中,该生成器已经预装了当前地址的LSB,结果是新数据字节的8位CRC和新地址的LSB。在提供数据字节后,主机从bq2024读取该8位CRC,其中有8个读取时隙,以确认地址正确递增并且数据字节被正确接收。如果CRC不正确,则必须发出复位脉冲并重新启动写入状态命令序列。如果CRC正确,主机发出一个编程脉冲,并对存储器中选定的字节进行编程。
注意:写入状态命令的初始写入,生成一个8位CRC值,该值是将命令字节移到CRC生成器中的结果,然后是两个地址字节,最后是数据字节。由于bq2024自动递增其地址计数器,因此在该写入状态命令内的后续写入生成一个8位CRC,这是将新(递增)地址的LSB加载(而不是移位)到CRC生成器中,然后移入新的数据字节的结果。
对于这两种情况,继续编程EPROM状态寄存器的决定完全由主机决定,因为bq2024无法确定主机计算的8位CRC是否与bq2024计算的8bit CRC一致。如果忽略错误的CRC并且主机应用了程序脉冲,则bq2024中可能会出现不正确的编程。还要注意,bq2024总是在收到用于确认所选EPROM字节编程的八个读取时隙之后递增其内部地址计数器。继续的决定再次完全由主机决定,因此,如果EPROM数据字节与提供的数据字节不匹配,但主机继续执行WRITE STATUS命令,则bq2024中可能会出现不正确的编程。写入状态命令序列可以通过发出复位脉冲在任何点结束。
程序配置文件字节
制造商所需的一个程序的写入顺序是由存储器决定的。在发出ROM命令后,主机发出程序配置文件字节命令99h。图12显示bq2024以55h响应。这通知主机写入存储器编程序列是本数据表的写入存储器命令部分中描述的序列。
SDQ信令
所有的SDQ信令都从初始化设备开始,然后主机驱动总线低电平写入1或0,或者开始读取位的起始帧。图13显示了初始化时间,而图14和图15显示了主机通过在起始时间段tWSTRB/tRSTRB驱动低数据总线来启动每个位。位启动后,主机在写入期间继续控制总线,或者bq2024在读取期间响应。
复位和存在脉冲
如果数据总线低驱动超过120μs,bq2024可复位。图13显示,如果数据总线被低驱动超过480μs,bq2024复位并通过响应存在脉冲来指示其准备就绪。
写
图14中的写入位时序图显示,主机通过发出位的tWSTRB部分来启动传输,然后驱动数据总线低写入0,或释放数据总线进行写入1。
阅读
图15中的读取位时序图显示主机通过发出位的tRSTRB部分来启动位的传输。然后,bq2024通过驱动数据总线低电平传输读0或释放数据总线发送读1来响应。
闲置
如果总线高,则总线处于空闲状态。总线事务可以通过让数据总线处于空闲状态而挂起。总线事务可以随时从空闲状态恢复。
CRC生成
bq2024在64位ROM的最高有效字节中存储了一个8位CRC。总线主机可以从64位ROM的前56位计算一个CRC值,并将其与bq2024中存储的值进行比较,以确定总线主机是否接收到无误的ROM数据。该CRC的等价多项式函数为:X8+X5+X4+1。
在某些情况下,bq2024还使用刚才显示的相同多项式函数生成8位CRC值,并将该值提供给总线主机,以验证命令、地址和数据字节从总线主机传输到bq2024。bq2024为写入存储器和写入状态命令接收的命令、地址和数据字节计算8位CRC,然后将该值输出到总线主机,以确认正确传输。类似地,bq2024计算从总线主机接收的用于读取存储器、读取状态和读取数据的命令和地址字节的8位CRC/生成8位CRC命令,以确认这些字节已被正确接收。在读取数据/生成8位CRC命令期间,bq2024上的CRC生成器还用于验证无错误数据传输,因为1536位EPROM的每页数据在读取数据/生成8位CRC命令期间发送到总线主机,并验证状态存储器字段中的8字节信息。
在使用CRC进行数据传输验证的每种情况下,总线主机必须使用先前给出的多项式函数计算CRC值,并将计算值与bq2024的64位ROM部分中存储的8位CRC值(对于ROM读取)或bq2024中计算的8位CRC值进行比较。CRC值的比较和继续操作的决定完全由总线主机决定。如果存储在bq2024中或由bq2024计算的CRC与总线主机生成的值不匹配,则bq2024上的任何电路都不会阻止命令序列继续执行。正确使用CRC可以使通信信道具有较高的完整性。