ZHCSU48 December 2023 BQ76972
PRODUCTION DATA
BQ76972 器件中的 SPI 接口用作仅响应者接口,具有可选的 CRC 检查。如果尚未对 OTP 进行编程,则 BQ76972 器件默认会在 400kHz I2C 模式下初始上电,而其他器件版本默认会在启用 CRC 的 SPI 模式下初始上电,如器件比较表 中所述。可以在生产线上将用于选择 SPI 模式的 OTP 设置编程到 BQ76972 中,然后当该器件上电时,它会自动进入 SPI 模式。尽管器件在退出 CONFIG_UPDATE 模式时不会立即更改通信模式,但是主机还可以在 CONFIG_UPDATE 模式下更改串行通信设置,以避免在评估或生产过程中丢失通信。主机可以复位器件或写入 SWAP_TO_SPI() 子命令以立即将通信接口更改为 SPI。
SPI 接口逻辑在时钟极性 (CPOL) = 0 和时钟相位 (CPHA) = 0 的情况下运行,如下图所示。
该器件还包含一个使用多项式 x8 + x2 + x + 1 的可选 8 位 CRC。如果未启用 CRC,接口必须处理 16 位事务;如果启用 CRC,接口必须处理 24 位事务。根据 Settings:Configuration:Comm Type 的设置,可启用或禁用 CRC 模式。根据配置设置,逻辑将:
(a) 仅在有 CRC 时工作,无有效 CRC 时不处理数据,或
(b) 仅在无 CRC 时处理事务(因此主机每次只在时钟沿处理 16 位数据,如果发送更多或更少的时钟,器件将检测到错误)。
如果主机使用 CRC 执行写入操作,而 CRC 不正确,传入数据将不会传输到接收缓冲区,发送缓冲区(用于下一个事务)也会复位为 0xFFFF。此事务被视为无效。在下一个事务中,CRC(如已在时钟沿输出)将为 0xAA,因此 0xFFFFAA 将向控制器指示检测到 CRC 错误。
当主机启动事务时,BQ76952 器件中的内部振荡器可能未运行(例如,如果器件处于 SLEEP 模式,可能会发生这种情况)。如果发生这种情况,针对在时钟沿输出的前 16 位数据,接口将在 SPI_MISO 上输出 0xFFFF。如果启用了 CRC,该接口还将为第三个 (CRC) 字节输出 0xFF。因此,0xFFFF 或 0xFFFFFF 将向控制器指示内部振荡器尚未就绪。
该器件将在 SPI_CS 下降沿自动唤醒内部振荡器,但可能需要长达 50µs 的时间才能稳定下来并可供 SPI 接口逻辑使用。器件所用地址 0x7F 的定义方式应确保没有将 0xFF 写入此地址的有效事务。因此,在事务的前两个字节中,两字节模式 0xFFFF 绝不应作为有效序列出现(也就是说,该模式仅用作出错的标志,类似于 I2C NACK)。
由于 HFO 在最初关断时上电会出现延迟,因此该器件包含一个可编程迟滞,以使 HFO 在被 SPI_CS 上的下降沿唤醒后保持通电状态达可编程的秒数。此迟滞由 Settings:Configuration:Comm Idle Time 配置设置控制,可设置为 0 至 255 秒(在 SPI 模式下,即使该值设置为 0,该器件也会使用 1 秒的最小迟滞)。主机可以将此设置为更长的时间(最多 255 秒),并在此时间窗口内保持定期通信,从而使 HFO 保持通电状态,以便器件能够快速响应 SPI 事务。然而,保持 HFO 持续运行将导致器件消耗额外的电源电流,超出了 HFO 仅在需要时供电时消耗的电流(HFO 在通电时消耗约 30µA 的电流)。为了避免这种额外的电源电流,主机可以发送初始不必要的 SPI 事务来唤醒 HFO,并重试此操作,直到在 SPI_MISO 上返回有效响应。此时,主机可以开始发送预期的 SPI 事务。
如果长时间内发生过多的 SPI 事务,器件可能会发生看门狗故障。建议通过从一个事务结束到新事务开始提供 50μs 或更长的时间来限制 SPI 事务的频率。
该器件能够检测冻结或断开的 SPI 总线状况,然后复位总线逻辑。当 SPI_CS 为低电平,并且 SPI_SCLK 为静态且在两秒钟超时内没有变化时,就会识别出这种情况。
根据所使用器件的版本,SPI_MISO 引脚可以默认配置为使用 REG18 LDO 进行输出驱动,这将产生 1.8V 信号电平。如果主机处理器以较高电压(例如 3.3V 或 5V)运行,这可能会导致通信错误。通过设置 Settings:Configuration:SPI Configuration[MISO_REG1] 数据存储器配置位,可以对 SPI_MISO 引脚进行编程,以改为使用 REG1 LDO 进行输出驱动。仅当 REG1 LDO 通电时才应设置该位。修改该位后,需要发送 SWAP_TO_SPI() 或 SWAP_COMM_MODE() 子命令才能使器件使用新值。
该器件在 SPI 输入引脚上包含可选的引脚滤波,可在每个输入引脚上实现具有约 200ns 延迟的滤波器。默认启用该滤波,但可以通过清除 Settings:Configuration:SPI Configuration[FILT] 数据存储器配置位来禁用。