主题中讨论的其他器件: UNIFLASH、 CC3200
您好!
我昨天在我的板上遇到了这个非常奇怪的东西。 CC3200MOD 在我首次下载并运行应用程序后似乎已死。
我的应用程序使用 SDK 建议的两级引导加载程序:将 application_bootloader 用作 /sys/mcuimg.bin、将我自己的应用用作/sys/mcuimg2.bin. 第一批原型(v1)上的一切都很好。 昨天、我收到了十几个第二个原型(v2)、 这几乎是同一个 PCB、除了 LDO - LM1117-3.3 被 TL1963A-3.3取代、因为我们可能使用高达20Vdc 的电源。 Uniflash 可成功对所有 v2板进行编程。 但是、7个电路板中有5个 在加电后没有响应。 现在我很害怕继续使用其余的 v2板、因此 我对它们进行了格式化 、并将/sys/mcuimg2.bin 替换为 SDK 示例 PROVISIONING_ap。 所有 操作都可以通过按钮重置或电源回收来正常运行(我可以成功连接到他们的 AP 并访问嵌入式网页)。
因此、我的应用程序似乎已损坏硬件、我强烈怀疑看门狗代码是造成这种情况的原因。 以下代码片段从 SDK 示例 watchdog_system_demo 复制并应用于我的应用:
//
//获取复位原因
//
RC = PRCMSysResetCauseGet ();
//
//如果看门狗触发了复位请求休眠
//清理引导系统
//
如果(RC = PRCM_WDT_RESET){
HWREG (0x400F70B8)= 1;
UtilsDelay (800000/5);
HWREG (0x400F70B0)= 1;
UtilsDelay (800000/5);
HWREG (0x440E16C)|= 0x2;
UtilsDelay (800);
HWREG (0x4402F024)&= 0xF7FFFFFF;
MAP_PRCMOCRRegisterWrite (0、1);
MAP_PRCMHibernateWakeupSourceEnable (PRCM_HIB_SLOW_CLK_CTR);
MAP_PRCMHibernateIntervalSet (330*3);
MAP_PRCMHibernateEnter();
}
在写这个帖子时、我禁用了看门狗并删除了上面的代码、然后对其余 v2板的3个进行了编程。 根据我现在观察到的情况、这些电路板应该正常、因为它们都响应复位按钮。
下面是我的问题:
1)硬件(CC3200MOD)应该正常(否则、我 将无法首先对其进行编程)、但不知怎么说、它不再引导。 我如何将它们带回去?
我尝试以下方法来检查"死板"板是否根本无法启动:
-使用示波器捕获 SOP2引脚上的扫描脉冲。 良好的电路板具有~1600ms 的上电脉冲、而"死板"没有。
-启用4线制 JTAG 以查看调试器是否可以识别 CC3200。 Good 开发板在下载和调试过程中工作正常、而"死板"甚至无法返回正确的 IDCODE (始终返回0x0)。
2) 2)我在应用程序上启用看门狗的原因是、我发现 SPI (GSPI) 传输有时会挂起 CPU、主要是在加电/复位的开始。 由于我正在使用 FreeRTOS、为什么 SPI 传输会使整个 CPU 挂起?
第一个确实使我死亡。 请帮助。
谢谢、此致、
Yervant