This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ34110:解封后延迟

Guru**** 2614265 points
Other Parts Discussed in Thread: BQ34110, BQSTUDIO

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/879453/bq34110-delay-after-unseal

器件型号:BQ34110
主题中讨论的其他器件: BQSTUDIO

我在拆封 BQ34110时遇到意外行为。 我已经编写了一个测试例程、在该例程中、我会对 BQ 进行连续密封和解封、并检查状态。 当我执行 unseal (无完全访问)时、会发生意外行为。 状态仅返回密封状态。 只有在我添加了较长的延迟(四秒-下面摘录的第45行)后、我才能够成功地通过未密封的位获得状态。

有趣的是、如果我执行完全解封序列(解封密钥后跟完全访问密钥)、则不需要长时间延迟。 这是预期行为吗?  我在 TRM 中找不到该信息。  

不过、我注意到、使用 BQStudio 在单击 unseal 和 unseque_full_acess 按钮后会增加较长的延迟。

下面是测试函数的摘录。 我希望该守则能充分自我扩展。

静态空 test_seal_dunseal (void)
{
int res;
uint16_t wait = 50;

//强制取消密封完全访问
{
res = bq34110_unseal (&default_keys、true);
UTEST_assert (res = 0、"");
wait_dicks (wait);
}

//检查未密封状态
{uint16_keys、trl



status = 0xt_ref;trl = uint_ref = uint_status (trl = 0xt_ref);uint_ref = uint_ref = uint_status;
UTEST_ASSERT (res =0、"");
UTEST_ASSERT (op_status!= ref、"");
UTEST_ASSERT ((op_status & 0x0006)= 0x0002、"");
}

// Seal BQ34110
{
uint16_t ref = 0xFFFF;
uint16_t op_status = 0x0002、"trl_assert





(ctrl_wait = 0_trl);(trl_trl_res_trl、trl_res_rs = b34110);(ctrl、ctrl trl_rs = nl、ctrl、trl、trl、trl、trl、trl、trl、trl、trl、trl、trl、
UTEST_ASSERT (res =0、"");
UTEST_ASSERT (op_status!= ref、"");
UTEST_ASSERT ((op_status & 0x0006)= 0x0006、"");

}

//取消





密封(非完全访问){uint16_t ref = 0xFFFF;uint16_t op_status= 0x0006、"* wait_status"(tick = unsef
);tick = unquit = unquick (tret = unquit = r等待);(trick = unquick = unquick (r等待)(tret = 80
)(trick = unquick、unquick = r等待);(

RES = bq34110_cmd (CMD_OPERATION_STATUS、READ_OP、&OP_STATUS);
UTEST_ASSERT (RES = 0、"");
UTEST_ASSERT (OP_STATUS!= ref、"");
UTEST_ASSIGN (OP_STATUS & 0x0006)= 0x0004、"");
}

/ UTTINT_PRU = 0x110




、UCTR = 0x34t (trl
= UCTR = 0x110、UTRF_PRE = 0x16
);UTR_PRU (UTR_PRU = 0x34t = UCTR = 0x110、UCTR = 0xFFFF、UTR_PRE = 0x34t、UTR_PRE = 0x110、UTRF (UTRE

RES = bq34110_cmd (CMD_OPERATION_STATUS、READ_OP、&OP_STATUS);
UTEST_ASSERT (RES = 0、"");
UTEST_ASSERT (OP_STATUS!= ref、"");
UTEST_ASSERT (OP_STATUS 和0x0006)= 0x0006、"uEST_ASSERT = 0x0006;
}

//

unt REST_PRICIT = 0x34t (uREFFF = 0x16




);(uREFULT = uPRIT = uPRE = 0x00016)(uENTRE = uREFFF、UTRE = uENTRE = 0x00016)(uREF_PRE = uENTRE = uFFFF、UTRE = uFFFF)

RES = bq34110_cmd (CMD_OPERAT_STATUS、READ_OP、&OP_STATUS);
UTEST_ASSERT (RES = 0、"");
UTEST_ASSERT (OP_STATUS!= ref、"");
UTEST_ASSERT (((OP_STATUS & 0x0006)= 0x0002、"");
}
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    让我检查一下我们是否有一些信息可以与您分享。

    Andy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    较旧、

    在试图拆封或完全访问设备后、为了阻止潜在的黑客、需要4秒的保持时间。 只要调用解封功能、计时器就会复位。  

    我不确定您为什么要在您的代码中遵循此过程。 我不建议在运行时经常密封/脱开量表。

    谢谢、

    Eric Vos