请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:BQ35100 主题中讨论的其他器件: EV2400
我们产品的部分 bq35100无法从完全访问模式切换到 UNSEALED 模式。 您能提供模式切换的一些示例代码吗?
bq35100始终处于完全访问模式(0、1完全访问)
尽管我们可以使用 EV2400+BQ Studio 进入 UNSEALED 模式、但 I2C 总线上的大量数据使其难以分析。
更糟糕的是、诸如0xAB 的某些地址在数据表上找不到相关定义。
我们的电流模式开关代码如下所示。 这些有什么明显的问题吗?
switch( security ) { /* #define BQ35100_DEFAULT_SEAL_CODES 0x04143672 #define BQ35100_CTRL_SEALED 0x0020 */ case BQ35100_SECURITY_UNSEALED: txbuffer[0] = 0x3E; txbuffer[1] = ( uint8_t )( BQ35100_DEFAULT_SEAL_CODES >> 16 ); txbuffer[2] = ( uint8_t )( BQ35100_DEFAULT_SEAL_CODES >> 24 ); i2c_write( cfg->bus, txbuffer, 3, cfg->i2c_addr ); k_msleep( 100 ); txbuffer[0] = 0x3E; txbuffer[1] = ( uint8_t )( BQ35100_DEFAULT_SEAL_CODES >> 0 ); txbuffer[2] = ( uint8_t )( BQ35100_DEFAULT_SEAL_CODES >> 8 ); i2c_write( cfg->bus, txbuffer, 3, cfg->i2c_addr ); k_msleep( 100 ); break; case BQ35100_SECURITY_SEALED: txbuffer[0] = 0x3E; txbuffer[1] = ( uint8_t )( BQ35100_CTRL_SEALED >> 0 ); txbuffer[2] = ( uint8_t )( BQ35100_CTRL_SEALED >> 8 ); i2c_write( cfg->bus, txbuffer, 3, cfg->i2c_addr ); k_msleep( 100 ); break; default: return -EIO; break; }
我还提到了 slua801.pdf、但找不到与模式切换相关的代码。
我们仍然希望为我们提供一个示例代码。
感谢您发送编修。