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.

[参考译文] CC2530:2V 时、CC2530工厂复位

Guru**** 2561060 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/736923/cc2530-at-2v-cc2530-factory-resets

器件型号:CC2530
Thread 中讨论的其他器件:Z-stack

您好!

由于尚未发布 Z-Stack 3.0.2、我想问我可以添加什么工作代码来解决以下问题:

如果器件在接近 VDD_MIN_NV 的电压下启动或运行、则会出现一个错误、其中删除 NV 存储器中的某些项并将其设置为默认值。 这是因为没有进行检查以确认 NV 项目需要初始化为默认值。 正在制定一个修复程序、以便在初始化期间添加 NV 检查、以便仅在 NV 项目实际已初始化且之前不存在时将其设置为默认值。

是否有任何代码可用于快速解决此问题?

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

    尊敬的 Jack:

    请在 以下位置找到 Z-Stack 3.0.2:http://www.ti.com/tool/Z-STACK

    根据发行说明、您提到的问题已得到解决。



    此致、
    Toby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此问题在 Z-Stack 3.0.2中是否已修复? 您能否指出新 Z-stack 3.0.2中的修改源代码位置以解决此问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Hi。 感谢您的链接。 是否会有一个 wiki 页面提供建议的修复、如 :http://processors.wiki.ti.com/index.php/Zigbee_Known_Issues_and_Proposed_Fixes?

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

    您好,YK,

    可以通过检查 osal_nv.c 和 onboard.c 之间的差异来查看这些修复:

    OSAL_NV.c:

    Z-Stack 3.0.1 Z-Stack 3.0.2
    不适用
    #include "onboard.h" 
    #define OSAL_NV_CHECK_BUS_VOLTAGE HalAdcCheckVdd (VDD_MIN_NV) 
    #define OSAL_NV_CHECK_BUS_VOLTAGE ONBOARY_CHECKVoltage () 
    if (!OSAL_NV_CHECK_BUS_VOLTAGE)
    {
    返回 NV_OPER_FAILED;
    } 
    if (((hotItem (id)< OSAL_NV_MAX_HOT)&&(!OSAL_NV_CHECK_BUS_VOLTAGE)
    ){
    返回 NV_OPER_FAILED;
    } 

    机载.c:

    Z-Stack 3.0.1 Z-Stack 3.0.2
    不适用
    #include "hal_adc.h" 
    不适用
    /*********
    *本地函数
    *//
    用于低电压警告回调
    静态空(*gpLowVoltageWarning)( uint8 voltLevel )的函数指针=(void*) NULL; 

    不适用
    /*********
    * 低压保护支持
    /
    
    /*********
    *@fn RegisterVoltageWarningCB
    *
    *@简要寄存器低电压警告回调
    *
    *@param pVoltWarnCB -回调的功能指针
    *
    @返回无
    ***** /
    void RegisterVoltageWarningCB( void (*pVoltWarnCB)(uint8)){
    
    gpLowVoltageWarning = pVoltWarnCB;
    }/*********
    
    
    *@fn ONBOARD_CHECKVoltage
    *
    *@简要检查电压并通知回叫状态
    *
    *@param none
    *
    @return true -电压适用于 NV 写入
    * 错误-电压不足以写入 NV
    /
    bool onboard_CheckVoltage (void)
    {
    uint8 voltageMeasured;
    uint8 howGood;
    
    voltageMeasured = HalAdcCheckVddRaw (void);
    
    if (voltageMeasured > VDD_min_good)
    {
    howGood = VOLT_LEVEL_GOOD;
    }
    否则,如果(voltageMeasured > VDD_MIN_NV)
    为{
    howGood = VOLT_LEVEL_CARTANGEL;
    }
    否则
    {
    howGood = VOLT_LEVEL_BAD;
    }
    
    if ( gpLowVoltageWarning )
    {
    if (howGood < VOLT_LEVEL_GOOD)
    {
    gpLowVoltageWarning( HowGood );}
    
    }
    
    返回(HowGood > VOLT_LEVEL_BAD);
    } 

    此致、

    Toby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    希望不会出现任何问题。
    如果有、我们一定会注意到它们、尽管它可能不是以维基表的形式专门介绍的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Toby。