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.

把430 info flash段的调校信息擦出了,怎么恢复?

急啊,怎么恢复啊,盼复!

  • 擦除了就没有了。只能自己校准了。

  • 在TI提供的工具里面记得只有GANG有这个功能能重新校准烧写

    如果只是调试时不小心擦除,也没太大关系,一样能跑

  • 是不是每个芯片的校准信息都不一样,从同款其他片子上复制过来写上行吗,或者说差的多不多,能不能用?

  • 能用的。只是误差大小而已,一般应用没关系的。
  • 看你需要回复什么。是DCO的数据还是温度校准的数据吗?  TI针对这两个都有校准的参考程序,你可以自己重新写。

  • 擦除信息段的调校信息后不能在线调试,信息段的数据也看不到。不信你试试,我说的是i2041,不知道你试过没有?

    重新条件怎么弄?上电就复位,不会搞。

  • 擦除信息段的调校信息后不能在线调试,信息段的数据也看不到。不信你试试,我说的是i2041,不知道你试过没有? 重新调校怎么弄?上电就一直复位,程序都不能调试。

  • 可以吧,我也是用的i2041,之前在调试flash存储的时候把Info段给擦了,确实出现了问题,就是总是在例程中的low_level_init.c文件里的TLV校验那通不过直接进入了LPM4,把这个文件从工程里移除还是能用的,或者直接隐掉进入LPM4的语句也行。

            /* If check sum is not correct go to LPM4 */
            if (*((unsigned int *)TLV_START) != checksum)
            {
                /* Enter LPM4 if checksum failed */
                __bis_SR_register(LPM4_bits);
            }
    
            /* Check sum matched, now set calibration values */
    
            /* Calibrate REF */
            REFCAL1 = *(TLV_address_for_parse + TLV_CAL_REFCAL1);
            REFCAL0 = *(TLV_address_for_parse + TLV_CAL_REFCAL0);
    
            /* Calibrate DCO */
            CSIRFCAL = *(TLV_address_for_parse + TLV_CAL_CSIRFCAL);
            CSIRTCAL = *(TLV_address_for_parse + TLV_CAL_CSIRTCAL);
            CSERFCAL = *(TLV_address_for_parse + TLV_CAL_CSERFCAL);
            CSERTCAL = *(TLV_address_for_parse + TLV_CAL_CSERTCAL);
    
            /* Calibrate SD24 */
            SD24TRIM = *(TLV_address_for_parse + TLV_CAL_SD24TRIM);
    
            /* Clear BORIFG */
            IFG1 &= ~(BORIFG);

      可能你说的不能调试是这个原因,我隐掉后是可以用的,只不过我就是用的内部的DCO/SD24等所以没有往下用,换了一个片子继续调的。换完后的第一件事就是把新片子的Info段拍照留下来了,当然,我也没在继续用Info段做存储,而是找了段主flash存的,安全一些  -_-||

  • 把check info的代码去掉就可以了,不影响调试的