• CC3200在sl_Start函数处不断重启复位的原因解析


    1. 使用过程中,自己写的工程,发现CC3200一直重启,首先需要定位出现重启的函数?看门狗复位,还是程序跑飞复位?NWP的版本不匹配?经过测试找到出问题的函数,这个函数是启动网络的函数。

    lRetVal = sl_Start(NULL, NULL, NULL);  

    2. 既然是上面的函数,原因有几种可能,供电不足,NWP版本不匹配,NWP没烧写。首先看下供电,另外加了一块板子进行供电。程序偶尔可以正常运行,稍微前进了一步。分析是目前使用的板子,供电电流可能比较小,导致异常。不过在此处,我们使用ADC的例程是正常运行的,本次由于我们启动了网络,导致瞬间电流很大,供电不足,所以重启。

    3. 看下原理图的供电,找下上面的电源芯片,电流800mA,难道带不起来?还是自己电脑的USB电流太小?换个SPX1117M3-L-3-3测试一下也是不行,是不是有限流的电阻?

    4. 去掉了保险丝还是不行,或者可以烧写个其他的带wifi启动的例程测试一下,看是否不断重启。测试了一下get_weather这个例程,不会重启。复位原因码如下

    #define PRCM_MCU_RESET            0x00000004

    5. 除了供电还有什么原因导致一直重启?函数不是成对调用的?烧写不同NWP版本也不行,格式化再测试一下。还是不行,增加了一行代码

        sl_Stop(SL_STOP_TIMEOUT);
        lRetVal = sl_Start(0, 0, 0);  // 第一次启动

    直接报错

    Assert: D:	iCC3200SDK_1.1.0LSD4WF-3221I5SS_SRC_V1.00.05	hird_partyFreeRTOSsourcequeue.c 1177

    10. 系统堆栈不够,还是任务堆栈不够?堆从0x800增加到0x1000,

    define block HEAP with alignment = 8, size = 0x0001000 { };

    11. 增大任务的堆栈测试一下,还是不断的重启。

    12. 换个uniflash的版本测试一下,芯片硬件版本[11:23:12] INFO: DEVICE CC3200 ES1.33,是量产版本。

    13.硬件修改一下,供电测试一下,在模块供电端+3.3V和GND之间增加了一个22uF的贴片电容,和100uF的电解电容,问题解决。不会在重启了,后来去掉100uF的电解电容也还是正常,所以只用增加一个22uF的贴片电容即可。问题解决。

  • 相关阅读:
    Power of Matrix(uva11149+矩阵快速幂)
    Training little cats(poj3735,矩阵快速幂)
    233 Matrix(hdu5015 矩阵)
    Contemplation! Algebra(矩阵快速幂,uva10655)
    Another kind of Fibonacci(矩阵)
    欢迎使用CSDN-markdown编辑器
    M斐波那契数列(矩阵快速幂+费马小定理)
    Fibonacci(矩阵)
    常系数线性递推的第n项及前n项和 (Fibonacci数列,矩阵)
    Evolution(矩阵快速幂)zoj2853
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8549787.html
Copyright © 2020-2023  润新知