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.

[参考译文] 编译器/BQ78350-R1:BQ78350-R1

Guru**** 2493565 points
Other Parts Discussed in Thread: BQ78350-R1, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/714750/compiler-bq78350-r1-bq78350-r1

器件型号:BQ78350-R1
主题中讨论的其他器件: BQSTUDIO

工具/软件:TI C/C++编译器

您好!

我需要写入数据闪存访问() 0x406F

这是 bq78350-R1数据表第118页的示例:

写入 DF 示例:
假设:Data1位于地址0x4000、data2位于地址0x4002。
data1和 data2都是 U2类型。
要更新 data1和 data2、发送 SMBus 块写入、命令= 0x44
Block =起始地址+ DF 数据块
= 0x00 + 0x40 + data1_LowByte + data1_HighByte + data2_LowByte + data2_HighByte

当我为0X406F (制造商名称)进行仿真时,我有一些类似的东西:

Data1 =* abcdefghij1234567890"

要更新 data1,发送 SMBus 块写入命令= 0x44block =起始地址+ DF 数据块
= 0x6f + 0x40 + data1

IST 是否正常?

TI 的数据1也会留在 寄存器0x406F 中?

但当我阅读数据表中描述的这一地址时,我将成为默认的制造商名称:“Texas”
仪器"

从 DF 示例中读取:
假设从读取 DF 示例中读取 DF、
a.发送命令为0x44的 SMBus 写入块、块= 0x00 + 0x40
b.使用命令0x44发送 SMBus 读取块
返回的块
=起始地址+ 32字节的 DF dat
= 0x00 + 0x40 + data1_LowByte + data1_HighByte + data2_LowByte + data2_HighByte ... data32_LowByte +
data32_HighByte

对于我的代码:

a.发送命令为0x44的 SMBus 写入块、块= 0x6f + 0x40
b.使用命令0x44发送 SMBus 读取块
返回的块
=起始地址+ 21字节的 DF dat
= 0x6f + 0x40 + data1。

请我弄错了吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Arnaud、
    我认为问题是块传输所需的块长度。
    确定是将长度作为单独变量还是块的一部分发送。 假设您在块中放置长度、您的命令可能应为:
    a.发送命令为0x44的 SMBus 写入块、块= 0x02 + 0x6f + 0x40

    您可以看到"Advanced Comm SMB"选项卡的示例。 它将块长度格式化为十进制、因此它更具可读性、但不像总线上的内容那样清晰。 这是默认值:
    2018-08-0111:43:44217,17,WR Block,44,2, 6F 40,成功
    2018-08-0111:43:46828,17,Rd Block,44,34, 6F 40 11 54 65 78 61 73 20 49 6E 73 74 72 75 6D 65 6E 74 73 20 20 20 07 62 71 37 38 33 35 30 20 20 20 20 20 20 20,成功
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!


    我一直使用字节的长度、mm 表示其他顺序。 我刚才在我的邮件中写下了 IT 文档中的内容。
    编写过程是什么? 考虑到长度是正确的、我在上面提到了什么? 您只需为我提供读取(写入/读取)过程,默认情况下,我想更改名称,这意味着只需写入另一个名称。

    再次感谢您的反应、这种反应始终是自发的、对我有所帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我一直使用字节的长度、即使对于其他命令也是如此。 我刚才在我的邮件中写下了 TI 文档中的内容。
    编写过程是什么? 考虑到长度是正确的、我在上面提到了什么? 您只需为我提供读取(写入/读取)的过程、默认情况下、我想更改名称。 这意味着,只写另一个名称。

    再次感谢您的反应、这种反应始终是自发的、对我有所帮助。

    Data1 =* abcdefghij1234567890"

    要更新 data1,发送 SMBus 块写入命令= 0x44
    块=长度+起始地址+ DF 数据块
    = 0x21+0x6f + 0x40 + data1

    IST 是否正常?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Arnaud、
    您的 data1字节计数似乎是20、10个字母字符和10个数字字符、每个字符为一个字节。
    命令为2个字节、因此您应该具有22个字节。 22将为0x16。
    但还有另一个方面。 您要编写的内容制造商名称是 SBS 数据字符串、它定义为最大32字节、第一个字节是后面的相关字节数。 因此、如果您的名称长度为20个字符、则长度字节为20或0x14。 您有21个字节要发送。 您的数据闪存地址再添加2个字节、因此块命令长度为23或0x17

    要使用10个字符"abcdefghij"写入制造商名称、我发送(全为十六进制):
    44 0D 6F 40 0A 61 62 63 64 65 66 67 68 69 6A

    在高级通信 SMB 显示屏中、显示其混合的十进制和十六进制字段、其外观如下:
    2018-08-0310:25:09773,17, WR Block ,44,2, 6F 40,成功
    2018-08-0310:25:11:844,17,Rd Block,44,34, 6F 40 11 54 65 78 61 73 20 49 6E 73 74 72 75 6D 65 6E 74 73 20 20 20 07 62 71 37 38 33 35 30 20 20 20 20 20 20 20,成功
    2018-08-0310:25:36491,17,WR Block,44,13, 6F 400A 6666465666768696A,成功
    2018-08-0310:25:38703,17, Rd Block ,44,34, 6F 400A 66663 64 65 66 67 68 69 6A 72 75 6D 65 6E 74 73 20 20 20 07 62 71 37 38 33 30 20 20 20 20 20 20 20,成功
    请注意、读操作会显示数据中旧名称的剩余字符。 如果需要、您可以在写操作时为字段填充空格、但长度指示 SBS 数据工具要使用多少个字符、因此 bqStudio 显示 abcdefghij