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.

[参考译文] TPS25750:TPS25750补丁- PBMC 未更改为 APP

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1271184/tps25750-tps25750-patch---pbmc-not-changing-to-app

器件型号:TPS25750

您好!

TPS25750有一些问题。 我们已经使用 TPS25750设计了原型板作为 USB-USB PD 的可行性研究。 在一般使用中、TPS25750似乎工作正常。

但是、它进入某个状态、我很难将其从该状态中脱离。

状态如下:

1) 1)启动时、读取引导状态寄存器、设置 DeadBattery 位并设置 NoPatchConfiguration。 (注意、我通过 I2C 上传配置/补丁)

由于器件指示 NoPatchConfiguration、因此我尝试通过 I2C 上传补丁。 (这通常是可行的,除非在这种情况下...)

我按照流程图(《主机接口技术参考手册》中的"执行流程补丁突发模式"示例)进行操作、直到读取 PBMC 命令的结果、一切都正常进行。

因此、通过 I2C 上传配置后、我在写入传输时收到一个 ACK。 由于补丁已上载、我向器件发出 PBMC 命令、但是、读取 data1寄存器会导致返回代码0x3、阅读手册时我无法理解这一点... 输出的其余部分似乎不表示有任何故障。 但是、在完成 PBMC 并得到结果0x3后、我会等待补丁加载事件或 APP 模式、但既不会进行设置。 所以我现在被卡住了。。。

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

    尊敬的 Sven:

    您是否有.pjt 文件可以让我查看其中的内容并查看您尝试闪存的内容? 您可以通过 GUI 中"Project"选项卡下的"Save Project"来获取该信息。 您是将配置保存为完整闪存二进制文件还是低区二进制文件?  

    此外、如果您可以将 GUI 置于调试模式并在刷写器件后拍摄快照、这可能也很有用、对于此打开 GUI 中"Debug"选项卡下的调试模式、 然后、Debug 选项卡将提供拍摄快照的选项。

      

    您能否也尝试使用'DBfg'? 之前或之后。 这可以在 此处链接的 TRM 第59页的第3.4.1节中找到。 如果您获得上述信息或何时获得这些信息、请告诉我。

    谢谢。
    字段

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

    您好!  

    我将尝试获取您请求的信息。 我也有一些 Saleae 的痕迹的问题,如果他们感兴趣。 我在启动时检测到电池电量耗尽标志时运行 DBfg 任务、然后尝试在这之后运行补丁序列。 (注:我将配置保存为 low-region 二进制文件)

    请注意、我不使用应用程序自定义工具进行刷写、而只使用一个 MCU。

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

    我的应用程序中没有"Project"->"Save Project GUI"选项。 (既不在桌面应用程序上、也不在联机浏览器中)

    但我确实有一个*。json 配置、我可以为您提供。

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

    它不允许我在这里上传 JSON 文件或 Saleae 捕获,我可以通过电子邮件发送给您吗?

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

    尊敬的 Sven:

    Saleae 捕获可能会有所帮助! 是否正在为 VIN_3V3供电? 我认为.json 应该可以很好地工作。 通常可以在此处拖放、但如果这无法正常工作、请随时通过电子邮件将其发送至 f-tolson@ti.com

    谢谢。
    字段

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

    e2e.ti.com/.../config_2800_1_2900_.zip

    此 zip 文件应包含相关文件。

    我认为"Troubleshooting_PBMc_patch_issue.Sal"显示了从器件初始化到 PBMC 失败的整个序列。

    "PBMC_AFTER_SUCCEST_PATCH_TRANSMIT.SAL"将"有问题的"PBMC 任务与0x3的故障错误隔离开来。

     config.json 文件是我正在尝试刷写的配置。

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

    尊敬的 Sven:

    感谢您提供这些信息。

    也许我是误解。 您正在尝试强制电池电量耗尽并从电池启动? 是这样吗? 并且它在试图强制这个/这个情况之外正常工作吗?

    谢谢。
    字段

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

    不会强制电池电量耗尽。 目前、无论 我做什么、它都不会上传补丁。 PBMc 返回0x3、模式不变。

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

    让我澄清一下:一切都很顺利。 我当时正在做一些测试、比如输入灌电流/拉电流、断开电池连接等等、直到 O 意识到它在5V 电压下"吸电流"。 我研究了原因、并在启动状态下看到了电池电量耗尽标志。 我还看到有 NoConfiguration、因此我尝试重新上传补丁。 但我不能再上传,因为任何原因。 它卡在 NoConfiguration 模式下、具有在 PBMC 上持续"失败"的补丁序列。

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

    尊敬的 Sven:

    好的。 感谢您提供的信息! 但我只是想确保我理解了。 我认为这可能是因为它在电池电量耗尽模式下启动。 尝试时、您是否在提供恒定 VIN_3V3? 您是否能够偶然将未使用的 GPIO 引脚驱动为高电平? 您使用的 ADC 配置(或 ADCIN 解码值)是什么? 您是否曾尝试过将其刷写为完整的闪存二进制文件、而不是低区域?

    谢谢。
    字段

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

    请参阅上面原理图中有关 ADCIN 配置的片段、有跳线可在不同设置之间切换。 有一个恒定 VIN_3V3、它与连接的 MCU 共享。 我尝试刷写完整的闪存二进制文件、但没有区别。

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

    现在来问一个有关 boot_status 寄存器的问题:

    我是否正确地理解 patchdownloaderr 是字节1上的第2位(0索引)?

    TRM 指出第10位是 patchdownloaderr,但我要求的原因是我有时在保留位4->9上看到"信息"。

    例如:

    我现在读取 BOOT_STATUS、并获得:

    [0x5、0x30、0x03、0xF 0、0xC2、0xA1]

    0x30是00110000、这意味着在字节1中设置了位4和5、但 TRM 表示保留这些位。

    0x03是00000011、这意味着位8和9已置位(字节2中为0和1)、但 TRM 表示这些位是保留的。

    保留位意味着什么吗? TRM 错误吗? 我是否会产生误解?

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

    是否有任何引脚会对修补行为产生影响? 例如、如果 PP5V 为高电平、这会有影响吗?

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

    尊敬的 Sven:

    保留的寄存器/位/字节可以表示或指示多种因素。 从未来使用/设计实现到不应更改的关键设计特性。 在这个具体的例子中,我不认为这是其中的任何一个,但我可能是错的。 TPS25750是一系列器件中彼此相似的一部分、因此器件之间的寄存器可以保持不变。 如果您查看 此处链接的 TPS65987的 TRM、会发现在第37页中、它具有作为引导标志寄存器的寄存器0x2D。

    • 位4和位5、可能参考 Region0和 Region1、指示尝试了 SPI 存储器的特定区域。
    • 位8和位9、可能参考 Region0FlashErr 和 Region1FlashErr、表示尝试读取 SPI 存储器的特定区域时发生错误。  

    但对我来说、这是有道理的、因为您无法将补丁/闪存上传到器件中。 这些引脚可能会有影响、但如果您为 VIN_3V3供电、器件应正确响应。 您需要确保 PD 控制器上也存在 VBUS。

    您是否可以尝试使用'Gaid'或'Gaid'命令、并查看是否允许您重新启动或随后可以上传? 这可以在我之前在第112页和113页相应链接的 TRM 中看到。 另一种选择是利用 GPIO 事件"barrel_jack_event"、如果您可以将 GPIO 引脚驱动至高电平、从而清除此电池电量耗尽标志。 DBfg 命令也是一个路由、但您说运行不正常?  

    谢谢。
    字段

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

    好的、还可以。 这有点误导、尽管我必须在 TRM 中查找另一部分、以便"说明"不同部分中寄存器的位...

    我尝试了 GAID、之前的一次没有成功(TRM 中没有提到 TPS25750的 GAID、我通过浏览论坛"找到了它..)。

    我设法把它从奇怪的状态,没有确切地知道我做了什么,但这个问题没有解决。 我希望找到根本原因、以及如何摆脱它。

    用一句话总结我的问题的原因:

    *如果器件无法通过 I2C 从外部进行修补(如果 PBMC 出现故障)、我们该怎么办?

    步骤如下:

    1)增补程序流正常,直至发出 PBMc 命令。 接受命令(no ! cmd)提供、但读取 data1寄存器会将0x3显示为第一个字节。

    2) 2) 0x3作为 PBMC 的返回代码、没有详细记录(完全?) 我的鸡巴在她的屁眼里滑了下来,狠狠地敲打在她的身上。

    3) 3)除了返回0x3的 PBMC 外、这会导致器件无法从 PTCH 模式切换、并且从未设置 PatchLoaded 事件。

    请帮助我确定什么可能导致上述症状,以及如何摆脱它。

    (注意:最终似乎能帮助我的是在尝试补丁之前关闭 PP5V、但是我无法确认这一点、我相信在 PP5V 为高电平时它可以正常工作。)

    这是一项评估、用于查看 TPS25750是否符合我们的用途。 如果该问题未得到解决、 我不确定最后是否会选择 TPS25750。

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

    尊敬的 Sven:

    我了解、同意、也不知道为什么 TPS25750的 TRM 中未列出它。  

    如上所述、我认为这必须处理电池电量耗尽模式。 VIN_3V3不再通电并切换到 VBUS 时通常会发生这种情况、直到该问题得到解决。 解决此问题后、通常您应该能够使用 DBfg 命令清除电池电量耗尽标志并恢复正常过程。 由于这些命令不起作用、我想知道器件是否经常使用 VBUS 而不是 VIN_3V3、因为您说过您正在为 VIN_3V3供电、因此器件仍将处于电池电量耗尽状态。 在这种模式下、断开 PP5V 的连接可能已经起作用。 如果是这种情况或问题,我不知道和你如何开始的起点,我也不知道。

    我了解。 我将再次重新审视您的配置、看看是否有我漏掉的东西、并尝试查看是否可以在满足电源要求的情况下复制 EVM 上的行为/问题。 我还将努力与另一位专家讨论这一问题,希望达到这一目的,但可能需要更多的时间。  

    谢谢。
    字段

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

    感谢您的理解。  

    我现在可以很有规律地触发状态,我仍然觉得很难摆脱。

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

    尊敬的 Sven:

    由于您可以定期执行此操作、我想问您正在做些什么才能进入此状态/触发此状态? 删除 PP5V 是否可解决此问题?  

    谢谢。
    字段

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

    否、移除 PP5V 不能解决问题。 更新了 TPS25750的功能模块、以便仅将电源(电源)连接到 TPS25750。 这就是我为了触发状态而执行的操作。 (或者我怀疑)

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

    对于上下文、以下是我的状态机针对补丁流的输出:

    0>101-TPS25750::[init]
    00>103-TPS25750:[STATE_CHANGE] 0 -> 2
    00>204:TPS2570:::[PATCH_RDY]= 1、2 /*等待补丁就绪事件或模式*/
    00>205-TPS25750:[State_Change] 2 -> 3
    00>302 - TPS25750::补丁下载开始! /*将 patch-info 写入 data1 */
    00>303-TPS25750:[状态_更改] 3 -> 4
    00>408:TPS2570:::[cmd] PBMs = 0x0 /* PBMs 成功显示0x0 */
    00>408-TPS25750:[STATE_CHANGE] 4 -> 5
    00>6125 - TPS25750:补丁下载完成! /*使用 ack 将补丁/配置记录下来*/
    00>6125-TPS25750:[State_Change] 5 -> 6
    00> 6202-TPS25750::[State_Change] 6 -> 4
    00>6308::TPS2570::[cmd] PBMC = 0x3 /* PBMC 失败,显示0x3 */
    00> 6308-TPS25750:[State_Change] 4 -> 7
    00> 6308-TPS25750:[State_Change] 7 -> 9
    00> 6703-TPS25750:[State_Change] 9 -> 7
    00> 6802-TPS25750:[State_Change] 7 -> 4
    00>6920::TPS2570::[cmd] PBMe = 0x3 /* PBMe 以0x3失败*/
    00>6921-TPS25750:[State_Change] 4 -> 7
    00>7002-TPS25750:[State_Change] 7 -> 4
    00>7108::TPS2570:::[cmd] PBMe = 0x3
    00> 7108-TPS25750:[State_Change] 4 -> 7
    00> 7202-TPS25750:[State_Change] 7 -> 4
    00>7308::TPS2570:::[cmd] PBMe = 0x3
    00> 7138-TPS25750:[State_Change] 4 -> 7

    00>7401-TPS25750::重试次数过多、尝试恢复
    00> 7402-TPS25750::[State_Change] 7 -> 14
    00>7402-TPS25750::[恢复]
    00> 7403-TPS25750::[State_Change] 14 -> 4
    00> 7508:TPS2570::[cmd] Gaid = 0x0 /* Gaid 成功,等待500ms */
    00> 7508 - TPS25750::GAID 延迟
    00>8103-TPS25750:[State_Change] 1 -> 0
    00>8201-TPS25750:[init]
    00>8203-TPS25750::[State_Change] 0 -> 2
    00>8317::TPS2570:::[PATCH_RDY]= 1、2  /*等待补丁就绪事件或模式*/

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

    尊敬的 Sven:

    感谢您提供的信息。 我无法重现这一点、我仍在进一步研究它、并为任何延迟深表歉意。 您能否告诉我、您的上述"电源(电源)"提供了哪些引脚?

    谢谢。
    字段

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

    您好!

    我通过邮件向您发送了一些数据。 下面是 PBMC 命令失败后来自原始 I2C 缓冲区的一个片段:

    我读取40个字节。 这里有一些数据、您是否可以从它获取有关错误原因的任何信息?

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

    尊敬的 Sven:

    我收到并回复了您的电子邮件。 我目前仍在进行这项工作。

    谢谢。
    字段

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

    大家好、这里有什么新闻吗? 我尝试更换另一个 TPS25750器件、因为我怀疑有 ESD、但新器件上的问题仍然存在。 数据中必须有一些东西可以解释为什么它不会应用修补程序??

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

    我有同样的问题: 在将 PBMC 发送到 CMD1并读取 DAT1寄存器之后、我会在第一个字节中获得0x03。 MODE 寄存器仍处于 PTCH 中、但应切换到 APP。 请提供帮助。

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

    您好!

    外地目前不在办公室。 他将在下周回来。

    此致

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

    我注意到 INT1_EVENT 寄存器中的 ReadyForPatch 标志为0、同样在以10ms 延迟循环后。

    根据 补丁执行流程、应该设置这个参数(1)?

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

    尊敬的 Sven:

    因为我已经不在办公室了,所以很抱歉耽误我的时间。 根据您发送给我的.sal 文件、有时您可能正在对错误的器件进行写入/读取。 您可能正在实现或遇到位移、这可能是关于您接收到怪异数据而命令不起作用的一些原因。

    例如、这里以及其他情况下、您正在写入/读取/访问0x10。 您能否尝试将这些更改为0x20地址? 并确认您尝试发送到器件的其他信息没有额外/可能出现此情况。

    您正在读取或以前读取过0x3、我认为这是由于数据不完整或数据大小不正确导致的"失败"。 它们可能必须处理上述信息。

    @ Jan,您可能需要检查是否有与上述内容类似的信息,并确保您使用的地址正确。 这可能解决问题、也可能不解决问题。

    谢谢。
    字段

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

    Hi Field、

    感谢您的答复。 补丁模式地址似乎确实存在问题。 通过明确使用0x10作为补丁地址、写入补丁似乎可以正常工作、PBMC 返回0x0。 但是、我必须一次性编写整个补丁。 如果我尝试进行部分写入(按块写入直到整个补丁传输完毕)、在"写入"操作开始以 NACK 失败之前最多只能获得1024个字节左右。 是否有任何足够详细地描述补丁流程的更新文档?

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

    我在 DATAx 中更改捆绑包大小做了一些实验。  在接收 NACK 之前可以写入的捆绑包大小与此不同、但与预期不同。

    指定32k 字节捆绑包大小的正确方法是什么?

    捆绑包大小= 0x7D00

    根据各种源、用于准备传输的 I2C 数据包应如下所示(十六进制值):   

    09 06 00 7D 00 50 32

    其中09用于寻址 DATA1寄存器、06用于 发送字节数、 捆绑包大小的00字节1、捆绑包大小的7D 字节2、传输捆绑包的 I2C 地址50和超时32。 但这不起作用、它会在传输31744字节后提供 NACK、就像捆绑包大小为0x7C00一样。  编码7E 改为在31872字节后给出 NACK、就像捆绑包大小为0x7c80一样。

    我以64字节的块来传输捆绑包。

    而当我以128个字节的块进行传输时、我得到了更好的结果、即所有32k 字节都得到确认、但我仍然返回到  

    40 03 00 00 51 32 00 .....  当我在 PBMC 之后读取数据寄存器时、模式保持在 PTCH 中。

    BOOT_STATUS 为30 03 60 02 A1、表示 "未加载配置"

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

    尊敬的 Sven:

    此处链接了第62页的 TRM 中存在补丁流程过程、但我认为您可能已经关注或关注了该过程、我会看看我是否能找到更详细的内容。  

    @ Jan、您能创建一个新的 E2E 并参考这个、因为您的问题处理不同的事情、也可能不处理、并将允许我们相应地更好地帮助您。 在这个新的线程中,如果你包括你从这里的信息,以及你拥有的任何 Saleae 捕获,和配置中的.pjt 文件或.json 文件,将会很有帮助。 除此之外、与当前讨论类似、您可能希望检查您正在撰写/阅读/确认的地址。

    谢谢。
    字段

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

    您好!

    仍有问题! 我尝试在每次启动时添加一个补丁、目的是测量器件的稳定性。 如果 PBMc 进入"有趣"状态,返回0x3,很难离开...

    我不知道此时该怎么办。

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

    尊敬的 Sven:

    这是每次发生还是仅在部分场合发生? 如果选择场合、您是否可以从其中一个工作场景收集数据、而从另一个工作场景收集数据? 是每次都修补相同的信息、还是在每次迭代时更改信息? 您要做什么才能摆脱这种状态、重新修补在这里不起作用吗?  

    谢谢。
    字段

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

    e2e.ti.com/.../pbms_5F00_capture.zipHi

    在某些场合,但我仍然不知道根本原因。 当 TPS25750失去配置时、这与功率损耗有关。 每次增补的信息都是相同的、这不会改变。

    代码也不会更改、但有时器件会像通常那样做出响应。

    不知道我怎么得到它也是,它似乎只是"解决"自己不时...

    现在正处于我之前从未见过的状态。 尝试修补时、PBMs 命令超时(永远不会接收到空命令字符串)。

    我已经附上了相关场景的 Saleae 捕获。 (CSV 和逻辑2 *。Sal 文件)

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

    尊敬的 Sven:

    感谢您提供这些内容。 您是否尝试使用这些中的'GAID'命令?  它看起来像有时 G A I 或 G A (其他) D 等正在填充、但没有结束、我不确定。 您是否能够或愿意使用 EEPROM 代替 MCU?  

    在这些交易过程中是否会断电?

    您能否查看 此处链接的技术参考手册第53页的执行流程图并一步一步地进行操作(我假设您已经遇到此问题)、并让我知道您遇到此问题的时间和地点以及所取得的进展? 您遇到的问题是什么? 正如您所说的 PBMs 已超时、但您还提到 PBMC 也处于有趣的状态。 问题必须在执行这些步骤之前发生错误(假设 VIN_3V3为高电平)。 我只是不知道在哪里。 您是否也在使用 PBMe 命令?

    谢谢。
    字段

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

    您好!

    是的、在某些情况超时时时、我执行 GAID 作为恢复步骤。

    我正在遵循执行流程、但是、我发现我没有完全遵循的一点。

    等待"Patch Ready"时,我正在等待 PatchReadyEvent 或 Device Mode PTCH。

    根据执行流程、这应该是"与"运算。 当更改逻辑以便在启动补丁过程之前必须满足两个条件时、我看到 PatchReadyEvent 从未变为高电平。

    这或许可以解释为什么 PBM 超时正确、因为即使处于补丁模式下、器件也还没有为补丁严格做好准备? PatchReady 事件没有达到高电平的原因吗?

    我正在研究使用 EEPROM、但在线提供的有关如何使用 EEPROM 的信息似乎很少:

    *是否有任何特定类型的 EEPROM?

    *补丁应写入哪个地址?

    *是否有标题信息?

    因此,我想我需要以下信息:

    * PatchReadyEvent 为什么不会变为高电平?

    *有关如何使用补丁信息配置 EEPROM 的更多信息(请参阅上面的问题)

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

    尊敬的 Sven:

    我今天不在办公室、明天我回来后会对此进行研究并作出回应。

    谢谢。
    字段

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

    尊敬的 Sven:

    为什么 PatchReadyEvent 不会变成高电平?

    我并不完全确定。 根据您最近的 Saleae 捕获结果、似乎要开始您从0x16读取的修补过程、您可以尝试从0x14读取并共享事务吗? 这里也有一些不同之处、因为应该会返回11个字节用于字节计数、但看起来器件会返回5个字节。 但这可能与先在补丁之前查看0x16有关、但可能与此无关。 我仍在尝试深入了解为什么只要供电、PatchReadyEvent 就不会变得很高。  I2Cs_SDA/SCL 线路是否通过电阻上拉? 假设这是数据的来源、以及您要测试的来源。 当看到这一点时、I2Cm_SDA/SCL 线路上是否有任何数据?

    就 EEPROM 而言、对于 TI 的 TPS25750参考设计、 这里链接的数据表 CAT24C256WI-G 看起来会用作器件的 EEPROM。 您可以在 此处链接的参考设计第6页的第2.4.1节中看到这一点。 根据此参考设计、 CAT24地址引脚好像是使用10kΩ 电阻器接地来设置的、对应于下一条地址语句、以满足地址要求。 TPS25750的数据表中规定外部 EEPROM 应位于7位从地址0x50、可以在 此处链接的数据表第45页的第9.4.1节中查看。 该方法应该有所不同、因为您只需将二进制文件从 GUI 刷写到 EEPROM、器件随后会将其余文件作为 EEPROM 器件的主器件进行读取和处理、而不必完成整个补丁过程。  

    谢谢。
    字段

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

    您好!

    不确定0x16的事情、我下周会研究一下。

    但是、我将不使用 GUI 来刷写 EEPROM、而是从 MCU 进行刷写。

    因此、我需要知道配置二进制文件应该在 EEPROM 上刷写到什么位置、以便 TPS25750能够"找到它"。

    让我重新表述一下:

    TPS25750会"检查"其主器件 I2C 总线上的地址0x50上是否存在 EEPROM、如果存在 EEPROM、它将下载找到的配置。 它希望在 EEPROM 上的哪个地址查找配置、它如何知道它有多大? 我预计在相应的 EEPROM 上的固定存储器位置(例如0x0)会有一个标头:

    typedef 结构 TPS25750_HDR{

    uint32_t cfg_offset;

    uint32_t cfg_size;

    };

    其中保存了有关配置存储位置和大小的信息。 请说明如何对 EEPROM 进行编程、以便 TPS25750直接找到并下载配置。

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

    尊敬的 Sven:

    请给我更多的时间来深入研究更多文件、以便您了解我是否可以找到这些特定信息、因为我无法立即找到这些信息。

    谢谢。
    字段

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

    好的、谢谢。 不过、还有一些其他信息:

    1)如果我不等待 PatchReady 事件,PBM 始终超时。

    2) 2)如果我等待 PatchReadyEvent、则它永远不会变为高电平。

    3) 3)不过、GPIO 状态似乎已正确更新。 (GPIO 状态引脚之一为1 (UFP 事件))

    我更新了配置、以便根据事件控制一些 GPIO。 我感兴趣的有三个事件(电缆方向、UFP/DFP 和插头展示)。 如前所述、根据相应状态正确更新了 UFP/DFP GPIO、因此、这似乎表示该应用处于部分运行状态? 但引导状态显示未加载配置。

    正如我所说、我正在努力获取使用外部 EEPROM 构建的新原型板。 仍在等待有关如何从 MCU 对 EEPROM 进行编程的信息。

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

    尊敬的 Sven:

    您是否能够从0x14进行检查? 但我想即使它很高,我们看错了,它将是无关紧要的,因为你仍然在尝试 PBMs。 问题是、根据你最近捕获的 Saleae 的数据、当你尝试从寄存器0x16读取时、它会返回5个字节、但我认为我们应该是11个字节、希望0x14会返回这个值。

    • 器件是否具有与您通过此补丁或信息设置的 PDO 相对应的灌电流或拉电流?
    • 是否每次都对器件进行下电上电?
    • 在上传补丁之前、寄存器0x03返回什么、它返回'PTCH'吗?  
    • 在 PBM 的第一个实例之后、寄存器0x08返回什么、它是否返回'!CMD'?  
    • 在您最近的 Saleae 捕获中。 看起来正在发生一些有趣的事情:
      • 从0x16读取后、我认为这是您尝试检查 ReadyForPatch 的位置、然后尝试写入不应写入的寄存器0x01。
      • 您尝试使用以下寄存器:
        • 0x0A
        • 0x02
        • 0x04
      • 您尝试使用以下地址:
        • 0x40地址、用于寄存器0x06
        • 0x24地址
        • 0x00地址
        • 0x40地址、用于寄存器0x02
        • 0x39
      • 您可以尝试将0x08写入命令寄存器、但发送命令"(!&9)、但同时为其提供字节计数2。 似乎为写入命令多次提供了错误的字节计数。  
      • 您尝试强制读取 PBM 而不是写入也会出现几次。  
      • 我也不记得在 PBM 之前使用了寄存器0x09。

    上述过程看起来也会多次发生。 但我可能会读错这些内容、因为您说它有时会起作用。 明天我会和另一位专家见面、以便核实或深入了解它。  

    关于 EEPROM:根据我的理解、使用上述参考设计、您将使用此 CAT 器件地址、并使用 SDA/SCL、然后将根据项目/配置开发的整个二进制文件写入此器件。 让0Ω 电阻器能够断开 MCU 与 EEPROM 的连接、从而可以尝试手动刷写 EEPROM。  

    我希望 EOB 能够在明天发布有关上述寄存器/地址信息的更新。

    谢谢。
    字段

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

    e2e.ti.com/.../PBMs_5F00_Timeout.zipHi

    不确定你在谈论什么关于捕获... 我想您可能被总线上的其他器件弄糊涂了。

    我进行了一次新的捕获、其中我隔离了到 TPS25750的流量、详细显示了 PBMs 超时。

    当捕获开始时、我已经验证了该模式是否处于补丁模式中。

    步骤(来自捕获):

    1) 1)开始写入0x9寄存器

    2) 2)写入0x8寄存器(PBMs)

    3) 3)读取0x8寄存器、等待命令完成。

    如您所见、PBM 保持在0x8、直至超时。

    所以,这是我现在正在经历的...

    请注意,模式处于修补程序中,但未设置 PatchReady 事件。 (整个事件寄存器为0)

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

    我更换了 TPS25750、东西都得到了改进。 也许 TPS25750在某种意义上已"损坏"、因此无需进行研究。 我想一旦收到有关如何对 EEPROM 进行编程的详细信息、我们就可以解决此问题。

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

    尊敬的 Sven:

    很高兴听到它现在得到了改进。 我确实认为这就是我的困惑的来源。

    关于 EEPROM、如果您的设计现在能够按预期工作、那么可能就不需要了? 有人建议尝试解决您当前的问题、因为我们的 EVM 使用的是 EEPROM。 此外、我们还提供了以下资源来进行深入探讨:  

    • 此处链接的是一份应用报告 、介绍了使用 MSP430通过 I2C 对 EEPROM 进行编程的情况。 这涵盖了闪存的字节写入和页写入命令、
    • 这是 我们/我之前讨论过的 EEPROM 器件的数据表、可以在前面提到的参考设计中看到。 这介绍了页写入和字节写入时序。 请注意、这不是 TI 器件、因此我无法代言。

    这两者都涉及要发送的字节、位、地址和数据、以及如何相应地使用它们。 PD 器件上电后、会相应地查看 EEPROM 以获取配置并将其加载、唯一需要做的就是使用上述信息/报告/表将数据加载到 EEPROM 中。

    谢谢。
    字段