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.

[参考译文] CC2640:通过 i2c 使用 cc2640配置 bq25892电池充电器

Guru**** 2328790 points
Other Parts Discussed in Thread: BQ25892, CC2640
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/587837/cc2640-configuring-bq25892-battery-charger-with-cc2640-via-i2c

器件型号:CC2640
主题中讨论的其他器件:BQ25892

您好!

我正在尝试使用 cc2640 i2c 接口配置 bq25892电池充电器。 但是、当我第一次更新值并尝试读取这些值时、我会遇到一个问题、这是我更新的正确值、但下次我尝试读取相同的值时、它会读取默认值。

静态 uint8_t REG04[2]={0x04、0x2C};/0x04为电池充电器的 REG04、0x2C 为快速充电电流限制设置

静态空 Battery_charger_init ()

   I2C_STATUS = bspI2cOpen();

 if (i2c_status =true)

    while (bspI2cSelect (interface_0、slaveaddr_charger)==0) //slaveaddr_charge = 0x6B、interface_0 = bsp_i2C_interface_0
    {
      Task_sleep (ms_2_tick);//(((100)* 1000)/ Clock_tickPeriod)
    }

    {
         if (bspI2cWrite (REG04、2)=true)
         {
             UART_WRITE (SbpUartHandle、"REG0A writen \n\r\n、15);
           /*成功*/

         }

        }

    bspI2cDeselect ();

  bspI2cClose ();



 

简单的 bleperipheral 中

//   每10秒发生一次电池事件
   IF (事件和 BAT_TIMER_EVT)
   {
     事件&=~BAT_TIMER_EVT;


     I2C_STATUS = bspI2cOpen();

  if (i2c_status =true)
       {
       UART_WRITE (SbpUartHandle、"i2c true \n\r\n、11);
     while (bspI2cSelect (interface_0、slaveaddr_charger)=true)    //interface_0 = bsp_i2C_interface_0、slaveaddr_charger = 6B
     {
      Task_sleep (ms_2_tick);
     }

     {
        if (bspI2cWriteRead (&REG0000、1、&reg00、1)=true)
         {
           /*成功*/
             UART_WRITE (SbpUartHandle、"\n\r reg00 \n\r"、7);
             UART_WRITE (SbpUartHandle、&reg00、1);

         }

    bspI2cDeselect ();

bspI2cClose ();

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这听起来像是 bq25892电池充电器以某种方式复位。 我现在将其移至电池管理-充电器论坛、以了解我们是否可以找出导致 bq25892电池充电器复位的原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kasket、

    是否在 REG07[5:4]中禁用 bq25892的看门狗计时器? 默认情况下、它设置为40秒、这意味着40秒后、它将过期并将所有寄存器恢复为其默认值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只更改 REG00、REG04、REG05、REG06、REG0A 寄存器的值、其余所有值都是默认值、每隔10秒我就会读取该值。
    我们希望永久更改电池充电参数。 您能告诉我们如何操作吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kasket、

    请在写入其他值之前、通过将00b 写入 REG07的位5和位4来禁用看门狗计时器。 一旦被禁用、就像以前那样继续写入其他寄存器。 它们应保留分配的值。