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

CC1310: 程序死机不工作

Part Number:CC1310

我有个产品,出现死机情况,程序是有设置看门狗的。

我做了两个任务,一个RF任务优先级最高,2分钟唤醒发一包数据。另一个任务优先级低一级,维护闪灯和串口,8s唤醒一次并喂狗,可通过引脚中断唤醒,唤醒后开启串口休眠前关闭串口。

现在有个产品,无线不工作了,且串口也不工作了。我尝试通过debug running去查看目前程序处于什么情况。但是连接不上,报错,我试了一下其他的板子,都是可以仿真的。这是怎么回事,求助!

Yolande Wang:

您好,

您先查看这个和您有相同问题的帖子,尝试帖子中的步骤或许可以解决您的问题:https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/589066/ccs-launchxl-cc1310-icepick_c-error-connecting-to-the-target-error–242-0x0-a-router-subpath-could-not-be-accessed-the-board-configuration-file-is-probably-incorrect-emulation-package-6-0-576-0

您收到的错误 242 显示在以下页面的第 5.24 节中:

https://software-dl.ti.com/ccs/esd/documents/ccsv7_debugging_jtag_connectivity_issues.html

,

o.O?:

你好,我们这边测试发现,我程序选用的是外部晶振,正常的板子,休眠的时候,外部晶振是起振的,但是这死机的板子,外部晶振是不振的。请问导致这种情况,会有哪些可能呢?

,

Yolande Wang:

死机时外部晶振不振原因可能是:死机的板子提供给外部晶振的电源电压和电流供应不符合要求。

请参阅技术参考手册中关于 external crystal 的介绍:

,

o.O?:

你好,你这个原因我已经让硬件工程师去查了。

从软件角度,我想分析一下。我休眠是用信号量阻塞,然后休眠前启用定时器,定时器回调里释放信号量。

我这边分析了两个方向可能。

一:定时器时钟源是外部晶振,如果外部晶振不振了,那定时器唤醒不了任务,我可以理解。但是为什么引脚中断也失效了?

二:如果是我运行过程中,哪里溢出改掉了CCFG里的

SET_CCFG_MODE_CONF_SCLK_LF_OPTION选项,那定时器的时钟源应该会切换到内部低速,应该也不影响他正常工作吧。

,

Yolande Wang:

1.死机的原因可能由硬件、软件错误、系统崩溃或其他不正常情况引起的。

2.因此要定位外部晶振不振也需要从以上几个方面考虑,可能的原因有:

电源供应问题
时钟配置要确保与外部晶振的规格匹配,休眠时外部晶振是可以起振的。
稳定的电源电压

以上是一般性考虑,具体的原因需要根据外部晶振的配置要求来考虑,可以参考一下外部晶振软件方面的设置问题,在下面链接中:

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/695393/rtos-cc1310-external-crystal-software-setting-issue

3.硬件方面参考上个回答的技术手册即可。

,

Yolande Wang:

1.引脚中断失效可能是因为外部晶振故障导致系统时钟异常,然后会影响多个硬件模块的正常运行。

,

o.O?:

为什么看门狗没起作用呢?

,

Yolande Wang:

看门狗没起作用的原因有很多,其中一些可能包括:

时钟源问题:如果看门狗的时钟源受外部晶振影响,而外部晶振不稳定或是切换到内部低速时钟,可能会导致看门狗失效。
任务阻塞:主循环阻塞会阻止看门狗的定时喂狗操作。
配置错误:检查看门狗定时器的配置,确保喂狗操作正常执行。

,

o.O?:

1、目前表现的现象就是外部晶振没在工作,我看了手册里看门狗的结构,时钟源就是SCLK_LF。那是不是说,看门狗的时钟来源是外部晶振?

但是我尝试了把配置选项改成外部晶振的程序烧录到没接外部晶振的板子上,这时候看门狗又会起作用一直复位。

2、没有定时喂狗不应该就会复位吗?现在来看是没有复位。

3、看门狗定时器配置没问题,正常的板子如果不喂狗的话会复位。

,

Yolande Wang:

1.

o.O? 说:

目前表现的现象就是外部晶振没在工作,我看了手册里看门狗的结构,时钟源就是SCLK_LF。那是不是说,看门狗的时钟来源是外部晶振?

但是我尝试了把配置选项改成外部晶振的程序烧录到没接外部晶振的板子上,这时候看门狗又会起作用一直复位。

据我所知,看门狗的时钟源默认应该是高速晶振。

2.对的,没有定时喂狗会导致系统复位重置。

,

Yolande Wang:

可以看下技术手册的15.3 节:

,

o.O?:

据我说知,在我工作期间我使用的是高速晶振工作,我进入休眠的时候,用的是低速晶振高速晶振应该是关闭的吧,那休眠时候,外部低速晶振不起来,导致我定时器没正常工作,唤不醒我的mcu高速晶振没工作,那看门狗就不起作用了吧。

,

Yolande Wang:

当 TI-RTOS 进入睡眠模式时、看门狗计时器不会继续计数。

也就是在待机模式下无法使用看门狗,它只在调试时工作。

,

o.O?:

你好,我想问问,CCFG配置里和晶振相关的内容在初始化的时候会写入寄存器,那这些寄存器在运行的过程中运行修改吗?

假设我有个数组溢出了,刚好和这些寄存器的地址一样,会修改掉吗?

,

Yolande Wang:

o.O? 说:CCFG配置里和晶振相关的内容在初始化的时候会写入寄存器,那这些寄存器在运行的过程中运行修改吗?

正常情况下,这些寄存器的内容时不会被动态修改的。

o.O? 说:有个数组溢出了,刚好和这些寄存器的地址一样,会修改掉吗?

这个是有可能的。

或因为其他类似的错误,有可能会误操作到内存中的其他区域,包括寄存器的地址,从而导致寄存器的内容被修改。

,

o.O?:

那我在初始化的时候,是配置的外部晶振这个选项,在运行的过程中改成内部。会怎么样?

,

Yolande Wang:

外部晶振没有振动的原因是什么?

1.物理状态有没有问题:检查连接、是否焊接不良等。

2.电源供电是否稳定?

3.晶振本身可能存在故障?

您是否可以抓包看一下设备在快要死机时的软件状态,可以更直接定位问题。

如果你对使用外部晶振还是内部晶振没有要求,那为什么不直接使用内部晶振呢。

,

o.O?:

抱歉,我们没找到原因,所以我才在向您咨询。

1、焊接没有问题

2、电源电池供电,还是很稳定的。

3、这个晶振在别的产品上已经用过很多,没什么问题。

4、这个是在挂机中出现的,而且不是必现的。很难通过抓包去看。

5、因为对时间要求很高,只能使用外部晶振‘。

另外,我们发现正常的样机,VDDS输入3.3V,VDDR输出1.6V,但是异常的样机VDDR无输出;DCDC_SW正常有3V,异常无电压 ;DCOUPL正常输出1.27V,异常无电压。

,

Yolande Wang:

您好,

SWCU185  (CC13x2、CC26x2 SimpleLink 无线 MCU 技术参考手册)的 第 7.7.1.1 节:https://www.ti.com/lit/swcu185 表示可以启用时钟丢失检测功能(检测到 SCLK_LF 丢失会导致系统重置(如果启用)。

您可以查看第 7.5 节吗 和 SWCU185 的7.7 并检查这个吗?

另外,您可以使用以下方式提交其设计以供审核: 低于 1 GHz 设计审核提交:https://www.ti.com/tool/SIMPLELINK-SUB1GHZ-DESIGN-REVIEWS 

,

o.O?:

你好,你说的是这个CLK_LOSS_EN选项吗,我看了我这个位是置位的。

,

Yolande Wang:

通过设置 DDI_0_OSC:CTL0.CLK_LOSS_EN 和 AON_SYSCTL:RESETCTL.CLK_LOSS_EN 来启用时钟丢失检测

当通过 DDI_0_OSC:CTL0.CLK_LOSS_EN 和AON_PMCTL:RESETCTL.CLK_LOSS_EN 寄存器,检测到 SCLK_LF 丢失会导致系统复位。恢复后,AON_PMCTL:RESETCTL.RESET_SRC 寄存器显示时钟丢失作为复位源。

,

o.O?:

你好,这两个选项我检查了,都是使能的。但是在休眠期间晶振停止后是不起作用的。

另外,我发现正常的样机只要短路了外部晶振,就会出现

”另外,我们发现正常的样机,VDDS输入3.3V,VDDR输出1.6V,但是异常的样机VDDR无输出;DCDC_SW正常有3V,异常无电压 ;DCOUPL正常输出1.27V,异常无电压。”

这个现象,这是1310芯片自身的什么保护机制吗?

,

Yolande Wang:

您故意短路外部晶振的原因是什么?是想模拟外部晶振不工作吗?

,

o.O?:

是的,现象都一样。而且我们是内置电池,在生产的时候,避免不了会手触碰到芯片。

,

Yolande Wang:

正在跟进您的问题,点击此链接查看:https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1313448/cc1310-questions-about-external-crystal-oscillator

,

Yolande Wang:

o.O? 说:目前表现的现象就是外部晶振没在工作,我看了手册里看门狗的结构,时钟源就是SCLK_LF。那是不是说,看门狗的时钟来源是外部晶振?

它的时钟为SCLK_HF,默认通常为48MHZ XOSC_HF。

,

o.O?:

那能更改为低速吗

,

Yolande Wang:

o.O? 说:那能更改为低速吗

CC1310不支持更改看门狗时钟源。

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: 程序死机不工作
分享到: 更多 (0)