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.

[参考译文] CCS/UCD3138:Weritten 参数

Guru**** 2578945 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/834226/ccs-ucd3138-weritten-parameters

器件型号:UCD3138

工具/软件:Code Composer Studio

当前正在使用此 URL 的代码。

http://www.tij.co.jp/tool/jp/ucd3138fw-psf

突然、以下地址值被重新写入0xffffffff。

00018880 _PMBus_DCDC_cal_constants              
0001888c _PMBus_DCDC_cal_nonpge_constants     
00018890 _PMBus_DCDC_CONFIG_constants           
000188d0 _PMBus_DCDC_CONFIG_NONPaged_constants  
00018900 _PMBus_CHECKSUM                        

参数不会在 Fusion Digital Power Studio 中重写。

是否有任何可能的原因?
您能想到噪声的影响吗?

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

    有一个与噪声相关的原因将擦除数据闪存。  在后台循环中、有如下所示的代码:

    如果(ERASE_SEGM_COUNTER > 0)

        ERASE_TASK ();//处理 DFlash 段擦除

    我们已经看到过系统噪声以及 UCD 电源接地和滤波不足会导致处理器位发生更改的情况、以便在实际为零时擦除段计数器将被视为非零。  其最终效果是大多数 dflash 被擦除。   

    我们建议的处理方法有两个方面:

    1. 修复布局,使噪声级别足够低,从而不会发生这种情况

    2.将 dflash 锁的锁定值放入 RAM 中、并使用 PMBus 命令对其进行写操作。  否则、将其保持为零。  这样、如果现场发生自发数据擦除或其他问题、就不会破坏数据。  如果您希望实际更改数据、例如在生产测试和校准中、则需要写入锁定值。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请您回复
    我有三个问题。
    1.由于布局已修复,我是否应参阅以下文档?
      www.tij.co.jp/.../slua779b.pdf
    2.锁定值是否为闪存互锁寄存器(FLASHILOCK)的值?
    3.在正常情况下,ERESE 段计数器何时为非零?
      ERASE_TASK ()是否调用 software_interrupt 的 case1? 对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对所有三个问题都是。   

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

    感谢你的答复。

    我还有其他问题。

    除以下代码外,是否有其它与噪声相关的擦除数据闪存的原因?

    如果(ERASE_SEGM_COUNTER>0)

            ERASE_TASK ();//处理 DFlash 段擦除

    为了防止处理器位因噪声而发生变化、我应该修改布局的哪一部分? 特别有效的部分

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

    这是我们看到的唯一导致数据闪存擦除的噪声。  这是目前为止最有可能的、因为它经常被调用。  我相信可能会有其他人、但他们的可能性要小得多、我们没有看到他们。   

    我们尚未对布局中哪个部分对该特定问题影响最大进行任何分析。  我认为很难精确地确定它。  最好遵循所有布局指南、对生产变化留有一定的裕度。   

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

    感谢你的答复。

    我对数据闪存还有另一个问题。

    在 codugure_ffunctions.c 中、有如下代码:

     if (  ((PMBus_CHECKSUM = 0x87654321) //直接写入数据闪存的 parms 的硬编码异常
      //(GUI 下载工具不计算校验和)
      ||(((CHECKSUM!= 0)&&(CHECKSUM = PMBUS_CHECKSUM)))// 校验和有效且匹配。
     {
      //校验和 A 正常:使用 DFlash A 的默认值
      filter0_PMBus_regs_ptr =&filter0_PMBus_regs_constants;
      filter1_PMBus_regs_ptr =&filter1_PMBus_regs_constants;
      DCDC_CONFIG_PTR         =&PMBus_DCDC_CONFIG_CONSTICENT[0];
      DCDC_CONFIG_NONPGE_PTR =&PMBus_DCDC_CONFIG_NONPGED_CONSTUINS;
      DCDC_cal_ptr            =&PMBus_DCDC_cal_constants[0];
      DCDC_cal_nonpge_ptr =&PMBus_DCDC_cal_nonpge_constants;
     }

     其他
     {
      //在数据闪存 B 中查找有效值
      校验和= calculate_dflash_checksum (((uint8*)&filter0_PMBus_regs_constants_b、(uint8*)&PMBus_CHECKSUM_b);
      //只有当段全部为零时才会出现零校验和,这是无效的。
      //如果计算出的校验和非零并且与 DFlash 中的校验和匹配,  
      //该段很好,所以使用它。
      if ((校验和!= 0)&&(校验和= PMBus_CHECKSUM_b))
      {
       //校验和 B 正常:使用 DFlash B 的默认值
       filter0_PMBus_regs_ptr =&filter0_PMBus_regs_constants_b;
       filter1_PMBus_regs_ptr =&filter1_PMBus_regs_constants_b;
       DCDC_CONFIG_PTR         =&PMBus_DCDC_CONFIG_CONSTERS_b[0];
       DCDC_CONFIG_NONPGE_PTR =&PMBus_DCDC_CONFIG_NONPGED_CONSTICESS_b;
       DCDC_cal_ptr            =&PMBus_DCDC_cal_constants_b[0];
       DCDC_cal_nonpge_ptr =&PMBus_DCDC_cal_nonpge_constants_b;
      }  
     }

    我认为 CPU 正在读取数据闪存的参数。

    如果(PMBus_CHECKSUM = 0x87654321)"和"如果(校验和! = 0)&&(校验和= PMBus_CHECKSUM_b)"不正确?

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

    如果您在新论坛问题中提出新问题、那就更好了。  它使其更易于通过这种方式进行搜索。

    我不确定所有代码的作用是什么、但我查看了 PFC 代码、它指向硬编码默认参数、用于加载参数集:

    PFC_CONFIG_PTR =&PFC_CONFIG_hardcoded;

    请记住、EVM 代码就是这个-一个评估代码。  因此、最好提出您在这里询问的问题、并自行决定如何处理您的代码。  例如、如果您知道校准至关重要且敏感、则可能需要在数据无效的情况下根本不启动电源。   

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

    感谢你的答复。

    我想再问一下噪音造成的现象。

    通过噪声擦除数据闪存的现象是否可重现?

    此外、在特定频段中受无线电波辐射时、是否有可能发生这种情况?

    您是否曾看到数据闪存的其他区域(如 pflash)被噪声擦除? (部分或全部区域、如 pflash)

     此致、

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

    我们的客户能够通过使其电路板噪声更大来使这种现象更频繁发生。  我不确定他们做了什么。  此外、低温会使其更有可能发生。   

    我确信这可能是由足够高的辐射引起的。  但是、在有噪声的情况下、逻辑中也会发生其他故障、并且随着噪声的增加、故障级别会增加到单个故障机制很难检测的程度。  这种情况实际上是我们能够获得这种详细信息的唯一情况。   遵循设计指南非常重要。   

    我们还看到用于清除程序闪存中校验和的代码看起来会被执行。  我们从未找到过它到达那里的路径。  如果这是一个问题、您也可以对其使用相同的代码更改。  这就是我们在这些器件上看到的所有内容。