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.

[参考译文] TPS65218D0:通过 Launchpad 的 I2C 对 TPS65218D0进行重新编程时出现问题。

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1029077/tps65218d0-problem-to-reprogram-the-tps65218d0-via-i2c-from-launchpad

器件型号:TPS65218D0

您好 TI!

我需要使用 Launchpad cc1352P2通过 I2C 从外部对 tps65218d0进行重新编程。

tps65218d0已通电、我可以毫无问题地读取寄存器、但我尝试对寄存器进行重新编程、并且寄存器始终保持默认值)。

附件是我的代码中用于重新编程地址寄存器0x1A 的一个段。

否则、if (CountertaskTPS65218 = 1)

计数器 TPS65218++;
计数器 TPS65218++;

I2C_Transaction i2cTransaction ={0};
writeBuffer[0]= 0x10;//要写入的地址寄存器(密码)
writeBuffer[1]= 0x67;// 0x1A XOR 0x7D 要写入的值
readBuffer[0]= 0x00;
readBuffer[1]= 0x00;

i2cTransaction.slaveAddress = 0x24;
i2cTransaction.writeBuf = writeBuffer;
i2cTransaction.writeCount = 2;
i2cTransaction.readBuf =空;
i2cTransaction.ReadCount = 0;

I2C_transfer (i2c、&i2cTransaction);

writeBuffer[0]= 0x1A;//要写入的地址寄存器(密码)
writeBuffer[1]= 0x86;//要写入的值
readBuffer[0]= 0x00;
readBuffer[1]= 0x00;

i2cTransaction.slaveAddress = 0x24;
i2cTransaction.writeBuf = writeBuffer;
i2cTransaction.writeCount = 2;
i2cTransaction.readBuf =空;
i2cTransaction.ReadCount = 0;

I2C_transfer (i2c、&i2cTransaction);

否则 if (CountertaskTPS65218 == 25)

计数器 TPS65218++;

I2C_Transaction i2cTransaction ={0};
writeBuffer[0]= 0x10;//要写入的地址寄存器(密码)
writeBuffer[1]= 0x50;
readBuffer[0]= 0x00;
readBuffer[1]= 0x00;

i2cTransaction.slaveAddress = 0x24;
i2cTransaction.writeBuf = writeBuffer;
i2cTransaction.writeCount = 2;
i2cTransaction.readBuf = readBuffer;
i2cTransaction.ReadCount = 0;

I2C_transfer (i2c、&i2cTransaction);

否则 if (CountertaskTPS65218 == 26)

计数器 TPS65218++;

I2C_Transaction i2cTransaction ={0};
writeBuffer[0]= 0x10;//要写入的地址寄存器(密码)
writeBuffer[1]= 0x1A;
readBuffer[0]= 0x00;
readBuffer[1]= 0x00;

i2cTransaction.slaveAddress = 0x24;
i2cTransaction.writeBuf = writeBuffer;
i2cTransaction.writeCount = 2;
i2cTransaction.readBuf = readBuffer;
i2cTransaction.ReadCount = 0;

I2C_transfer (i2c、&i2cTransaction);


否则 if (CountertaskTPS65218 == 27)

计数器 TPS65218++;

I2C_Transaction i2cTransaction ={0};
writeBuffer[0]= 0x10;//要写入的地址寄存器(密码)
writeBuffer[1]= 0xCE;
readBuffer[0]= 0x00;
readBuffer[1]= 0x00;

i2cTransaction.slaveAddress = 0x24;
i2cTransaction.writeBuf = writeBuffer;
i2cTransaction.writeCount = 2;
i2cTransaction.readBuf = readBuffer;
i2cTransaction.ReadCount = 0;

I2C_transfer (i2c、&i2cTransaction);

附件是我的代码中用于读取地址寄存器0x1A 的一个段。

否则、if (CountertaskTPS65218 == 2)

//读取芯片
计数器 TPS65218++;
计数器 TPS65218++;

I2C_Transaction i2cTransaction ={0};
writeBuffer[0]= 0x1A;//要读取的地址寄存器
writeBuffer[1]= 0x00;//要写入的值
readBuffer[0]= 0x00;
readBuffer[1]= 0x00;

i2cTransaction.slaveAddress = 0x24;
i2cTransaction.writeBuf = writeBuffer;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf =空;
i2cTransaction.ReadCount = 0;

I2C_transfer (i2c、&i2cTransaction);

i2cTransaction.writeBuf =空;
i2cTransaction.writeCount = 0;
i2cTransaction.readBuf = readBuffer;
i2cTransaction.ReadCount = 1;

I2C_transfer (i2c、&i2cTransaction);

IF (StatusProgramming =0 || readBuffer[0]!= 0x86)

状态编程= 0;

我始终读取0x06、即0x1A 寄存器的默认值、该寄存器永远不会更新0x80。 我尝试编辑的任何其他寄存器也是如此。  

非常感谢。 此致

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

    您好!

    感谢您的联系。 我目前正在查看此 E2E、并将在下周初提供更新。  

    谢谢、

    Brenda

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

    您好!

    我查看了代码并注意到您的目标是更改寄存器0x1A 上的"GO"和"SLEW"位、然后将新值存储在 EEPROM 中以使其成为默认设置。 以下是我的反馈和一些其他问题:

    • 寄存器映射中只有标有"E2"的位才具有 EEPROM 可编程加电默认设置。  
    • 寄存器0x1A 上的 GO 和 SLEW 位不是"E2"类型。 GO 位在电压转换结束时自动复位。  
    • [Q]:在更改 GO 位之前、 DCDCx 寄存器中的 DCDC1或 DCDC2输出电压是否发生了变化?
    • [Q]:您使用的是 TPS65218EVM、Booster Pack 还是定制板?  
    • 需要注意的是、如果在 STRIC=1时从较高的电压变为较低的电压并且转换器处于空载状态、则 DCDC1和 DCDC2的 PFM 位必须被设定为0。  

    如果 您提供要 进行的更改的更多详细信息、我可以在实验中进行尝试、然后返回所需的分步式 I2C 命令。 为此、我需要订购器 件型号(检查默认 DCDCx 电压设置)、新的目标电压电平和压摆率。   

    谢谢、

    Brenda

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

    您好 Brenda、

    我错了、我尝试了其他寄存器、它们更改为我设置的新值。

    此致、非常感谢。