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.

[参考译文] AFE7903:日志文件中意外的 SPIWrite 用法

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

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1305226/afe7903-unexpected-spiwrite-usage-in-log-files

器件型号:AFE7903

我们建议使用由 Latte 生成的日志文件来配置 AFE7903。

我们正在调试一些问题、并为处理不符合预期的寄存器值而苦恼。

在 《AFE79XX Latte GUI 应用手册》中、您描述了 SPIWrite 的使用、并可以通过 LSB 和 MSB 参数仅更改特定位。 此功能也在您的库中实现。 但生成的日志文件不使用此功能。 相反、它在不调整 LSB 或 MSB 参数的情况下多次写入同一寄存器。 但注释指出该命令仅更改一些位。

SPIWrite 00bc、e7、0、7 //TDD_TX_ON_A_2T_AB_mux_SEL=0x3;地址(0xbc[7:0])
SPIWrite 00bc、e7、0、7 //tdd_tx_on_b_2T_ab_mux_sel=0x1;地址(0xbc[7:2])
SPIWrite 00bc、e7、0、7 //TDD_TX_ON_c_2T_AB_mux_SEL=0x2;地址(0xbc[7:4])
SPIWrite 00bc、27、0、7 //tdd_tx_on_d_2T_AB_mux_SEL=0x0;地址(0xbc[7:6])

这种行为不符合预期、但如果始终牢记寄存器之前的值、可以接受。 这是否符合预期? 实现并记录这样的功能并且从不使用它会让我有点恐惧。 顺便说一下、多次写入同一个寄存器而不是一次非常无效。

同时添加

device.optimizeWrites = 1

修改并没有太大变化。

我们看到的行为是否正常且符合预期?

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

    尊敬的 Christian:

    目前、这是 日志中显示的方式、因此不应该存在与性能相关的问题、但我将联系软件团队、看看以这种方式显示的原因是否具体。

    此致!

    卡米洛

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

    尊敬的 Christian:

    我从软件团队那里听说过、似乎当前 Latte 中存在一个问题、会导致注释中的位字段不正确。 此问题将在下一个版本中修复。 因此、正确值如下:

    SPIWrite 00bc、e7、0、7      //TDD_TX_ON_A_2T_AB_mux_SEL=0x3;     Address (0xbc[1]:0)

    SPIWrite 00bc、e7、0、7      //tdd_tx_on_b_2T_ab_mux_sel=0x1;    地址(0xbc[3:2])

    SPIWrite 00bc、e7、0、7      //TDD_TX_ON_c_2T_AB_mux_SEL=0x2;     地址(0xbc[5:4])

    SPIWrite 00bc、27、0、7      //tdd_tx_on_d_2T_AB_mux_SEL=0x0;    地址(0xbc[7:6])

    您观察到日志正在写入相同的寄存器多次、这符合预期、因为这是从我们的库中调用这些写入的顺序。

    SPIWrite 命令始终将 LSB 和 MSB 指定为0和7、因为 SPI 写入为8位。 在某些情况下、可以在 SPIWrite 命令中指定特定的位、如"SPIWrite 00bc、e7、0、2"、但在这些情况下、软件必须首先读回寄存器0x00bc 的当前寄存器值、并将其存储在某个位置、 仅更改该值的位0和位1、然后将修改后的值写回寄存器0x00bc 上。 通常仅针对我们希望固件写入内容以避免覆盖固件写入的值发生冲突的寄存器执行此操作。 但该寄存器不是其中的一个。

    另外、他们建议暂时避免使用"device.optimizeWrites =1"、因为某些极端情况仍需要对其进行测试。

    此致!

    卡米洛

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

    你好,卡米洛

    感谢您的澄清。

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

    尊敬的 Christian:

    没问题。

    此致!

    卡米洛