TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F写SNV异常,重新上电无法恢复

请教TI工程师一个问题:

CC2640R2F串口收到指令,会对编号为0x80和0x81的SNV区进行写操作,每个区写数据大小不会超过252字节,利用软件定时器延时200ms后,使用HAL_SYSTEM_RESET();函数重启设备,测试多次,出现一次发完写命令后,未出现开机信息,所有外设停止运行,重新上电也无法恢复,使用XDS110无法识别设备,该芯片未打过静电,电压一直稳定,目前测试只发现一片。

使用simplelink_cc2640r2_sdk_1_40_00_45\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_central 的主机demo,在SimpleBLECentral_taskFxn任务中开启了一个1ms的定制器,写SNV和软重启函数均放在定时任务中。

读写snv函数:osal_snv_write  osal_snv_read

怀疑是写SNV期间造成flash异常,目前XDS110无法连接芯片,无法读取flash。

请教下TI工程师,可能导致此问题的原因,有没有遇到写SNV造成flash异常的先例,或者提供一个稳妥的写SNV流程及注意事项,比如写SNV时是否要求必须关广播、关扫描、关连接等,十分感谢。

Viki Shi:

目前测试只发现一片,请问测试了几片?另外,这个版本的SDK很老了,是否能在新版上进行测试?

Viki Shi:

SNV的操作请参考:dev.ti.com/…/flash_memory-cc2640.html

user4546979:

回复 Viki Shi:

目前测试了30片,每片写SNV的次数随机,但都远远小于10万次,因BLE5占用资源较多,升级SDK后用户flash不够,1.40.00.45版本的SDK写SNV是否有存在问题,或者说最新的SDK修复了此问题,可否提供SDK的升级版本记录,在TI官网上并未看到有明显的BUG修复记录。

user4546979:

回复 Viki Shi:

检测片子的dcdc_sw引脚,电压只有0.3V,其他正常的板子1.6V,ccfg.c里面默认是使能内部dcdc的,从未改动这个地方。
#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING0x0// Alternative DC/DC setting enabled
ccfc区在flash的最后面,属于8K的SNV区,程序中OSAL_SNV=1,只使用了前4K,即使写SNV出错也不应该影响后一个4K

Viki Shi:

回复 user4546979:

照理说 CCGF跟SNV是独立的page,不应该互相影响。出现问题的那个芯片,你读取程序看CCFG的DCDC被改动了吗?

user4546979:

回复 Viki Shi:

接上XDS110,Flash Programmer 2提示以下信息,无法连接芯片,也就无法读flash
>Initiate access to target: XDS-19070109.
>Create XBAL object failed: Debug interface is locked.
>Failed to create device object.

读取正常的片子,SVN写的数据从0x1e000开始,flash最后一个地址是0x1ffff,中间相差0x1fff字节,十进制8191字节,而CCFG就在flash的最后几行,flash按一页4K擦写,改写SVN时是会影响到CCFG区的,但是当前程序中OSAL_SNV=1,怎么会影响CCFG区呢?.

请问有没有其他方法定位问题?感谢

user4546979:

回复 Viki Shi:

之前理解错了,CCFG确实单独占一页,我将OSAL_SNV改为2,发现参数区从之前的0x1e000挪到了0x1d000,提前了一个page,我们假设CCFG区数据未丢,还有其他原因导致dcdc_sw引脚电压异常吗?

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F写SNV异常,重新上电无法恢复
分享到: 更多 (0)