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.

[参考译文] TM4C1292NCPDT:当我们将器件暴露在10摄氏度且相对湿度为50%时、程序崩溃

Guru**** 2526700 points
Other Parts Discussed in Thread: TM4C129XNCZAD

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/981385/tm4c1292ncpdt-program-is-getting-crashed-when-we-are-exposing-our-device-to-10-degree-celsius-and-relative-humidity-of-50

器件型号:TM4C1292NCPDT
主题中讨论的其他器件:TM4C129XNCZAD

为 PMW 配置 PM7 (引脚编号71)后,编程将崩溃  

无效
TimerConfigure (uint32_t ui32Base、uint32_t ui32Config)

//
//检查参数。
//
assert (_TimerBaseValid (ui32Base));
assert ((ui32Config = TIMER_CFG_ONE_SHOT)||
(ui32Config = TIMER_CFG_ONE_SHOT_UP)||
(ui32Config = TIMER_CFG_PERIODICRARic)||
(ui32Config = TIMER_CFG_PERIODICY_UP)||
(ui32Config = TIMER_CFG_RTC)||
((ui32Config & 0x000000)=TIMER_CFG_SPLIT_PAIR));
assert (((ui32Config & 0x000000)!= TIMER_CFG_SPLIT_PAIR)||
((((ui32Config & 0x000000ff)=TIMER_CFG_A_ONE_SHOT)||
((ui32Config & 0x000000ff)=TIMER_CFG_A_ONE_SHOT_UP)||
(((ui32Config & 0x000000ff)=TIMER_CFG_A_PERIODICRACRACe)||
((ui32Config & 0x000000ff)=TIMER_CFG_A_PERIODICY_UP)||
((ui32Config & 0x000000ff)=TIMER_CFG_A_CAP_COUNT)||
(((ui32Config & 0x000000ff)=TIMER_CFG_A_CAP_COUNT_UP)||// OEM 版本缺失
((ui32Config & 0x000000ff)=TIMER_CFG_A_CAP_TIME)||
((ui32Config & 0x000000ff)=TIMER_CFG_A_CAP_TIME_UP)||// OEM 版本中缺失
((ui32Config & 0x000000ff)=TIMER_CFG_A_PWM))&&
((((ui32Config & 0x0000ff00)=TIMER_CFG_B_ONE_SHOT)||
(((ui32Config & 0x0000ff00)=TIMER_CFG_B_ONE_SHOT_UP)||
((ui32Config & 0x0000ff00)=TIMER_CFG_B_PERIODICRACRACRACTION)||
(((ui32Config & 0x0000ff00)=TIMER_CFG_B_PERIODICY_UP)||
((ui32Config & 0x0000ff00)=TIMER_CFG_B_CAP_COUNT)||
(((ui32Config & 0x0000ff00)=TIMER_CFG_B_CAP_COUNT_UP)||
(((ui32Config & 0x0000ff00)=TIMER_CFG_B_CAP_TIME)||
(((ui32Config & 0x0000ff00)=TIMER_CFG_B_CAP_TIME_UP)||
(((ui32Config & 0x0000ff00)=TIMER_CFG_B_PWM)));


//
//禁用计时器。
//
HWREG (ui32Base + TIMER_O_CTL)&=~(TIMER_CTL_TAEN | TIMER_CTL_TBEN);

//
//设置全局计时器配置。
//
HWREG (ui32Base + TIMER_O_CFG)= ui32Config >> 24;

//
//设置 A 和 B 定时器的配置并设置 TxPWMIE 位。
//请注意,32位的硬件会忽略 B 定时器配置
//模式。
//
if (new_timer_configuration)

HWREG (ui32Base + TIMER_O_TAMR)=((((ui32Config & 0x000f0000)>> 4)|
(ui32Config & 0xff)|
Timer_TAMR_TAPWMIE);
HWREG (ui32Base + TIMER_O_TBMR)=((((ui32Config & 0x00f00000)>> 8)|
((ui32Config >> 8)& 0xff)|
Timer_TBMR_TBPWMIE);

其他

HWREG (ui32Base + TIMER_O_TAMR)=((ui32Config & 0xff)|
Timer_TAMR_TAPWMIE);
HWREG (ui32Base + TIMER_O_TBMR)=((((ui32Config >> 8)& 0xff)|
Timer_TBMR_TBPWMIE);

配置如下所示

静态 PwmTimerTiva condoPwm (TIMER5_base、(TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM | TIMER_CFG_B_PWM)、TIMER_B、BSP_CLOCK _FREQUENCY);"

仅当器 件暴露在10摄氏度且相对湿度为50%时、才会观察到这种行为、它在正常室温下工作正常。

我能否知道 此器件的相对湿度工作范围?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vamsi、

    我们 的偏置湿度 MCU 可靠性测试以85% RH 的 RH 运行、因此50%不会导致任何问题。 这里的温度部分也很有趣。 我认为硬件上有一些问题导致了这种情况的发生。 如果代码在室温下运行良好、则表示软件应该良好。

    我在这里的第一个问题是、您如何确定该输出会使程序崩溃? 您是否已删除该代码并重新运行测试、发现电路板当时可以正常工作?

    有多少电路板显示了此问题? 只需一个或多个?

    因为现在我想、可能是某个地方的冷焊点、温度/湿度会对其产生影响。

    如果您有多个电路板、您是否完成了 ABBA 交换测试? 此外、如果有多个电路板、总共有多少电路板发生故障?

    最后、您在"碰撞"中看到了哪些具体行为?  您是否能够连接到 JTAG Still 并进行调试?  它是否挂起? 进入故障 ISR?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    感谢您的快速回复。

    我想更正我们在上一个帖子中做了10摄氏度和90% RH 的一件事抱歉、我的上一个帖子中出现了错误的 RH 值(冷凝类型)。

    是的、控制器通电、我能够通过 JTAG 连接调试器。 是的、当我删除这一行代码时、我能够导航到我的应用代码、并且代码在调试模式释放模式下都运行良好。

    当我在 TIMER5配置寄存器中写入配置数据后添加该代码行(将引脚71配置为 PWM 输出)时、它将崩溃。 我们在两个板中观察到这一点。 其中一个在暴露于正常的室内环境后恢复、另一个在焊接接触后恢复。

    即使是一些盐渍导致我的短路、我也有一个问题、就是固件崩溃的原因?

    崩溃意味着它不会对 ISR 进行故障诊断。 我觉得它会反复重新启动。

    我收到以下消息

    Cortex_M4_0:错误:STAT [ JLINKARM_IsHalted()调用]失败!
    Cortex_M4_0:停止目标 CPU 时出现问题:停止失败!

    谢谢、此致、

    Vamsi

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vamsi、

    感谢您在此处添加了这些详细信息。 行为要清晰得多。

    鉴于该行为与一个引脚相关、焊料接触有助于解决该问题、这似乎表明可能会有额外的电流消耗触发掉电复位。 这可能是由于引脚71消耗的电流过大、或者由于 PCB 上的电源或接地连接有故障。

    为了查看是否发生掉电复位、需要执行以下一些测试:

    1. 监视 VDD 是否有任何压降/干扰
    2. 恢复操作后检查 RESC 和 PWRTC 寄存器、并查找:
      1. RESC --> BOR 标志
      2. 如果 BOR 置位、PWRTC ->哪个电压域经历了 BOR

    如果您看到 BOR、那么我将进一步研究 PCB。 可能的原因可能是电压域上 BOR 出现的引脚焊料问题、或者引脚71连接的器件出现问题、从而在高湿度情况下导致电流消耗过大。 请记住、由于温度较低、可能已经提供了一条较短/电阻最小的路径。

    关于湿度本身、是的、90%比我们测试的要高、但这就提出了在这些条件下浸泡多长时间的问题? 一般而言、我们预计需要几个小时才能产生任何影响。 此外、该器件在湿度去除后需要多快地恢复? 在该时间段内、它是否保持在相同的温度? 电路板是否在相同的温度和更低的湿度下通过了测试?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    感谢您建议用于调试该问题的测试。

    我们已经测试了三个器件、分别为10度和85% RH 以及40度85% RH。 浸泡7到8小时。

    板保持水平。 还有一个控制器(TM4C129XNCZAD)、它被垂直放置并被适当屏蔽、我们没有发现与此相关的太多问题( TM4C129XNCZAD)。

    在对板进行25度曝光后、出现问题的板将恢复运行。

    保形涂层尚未完成。

    您是否怀疑冷凝或湿气导致了问题?  

    谢谢、此致、

    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vamsi、

    如果直接在 PCB 上形成冷凝、则布局可能会在电源和接地之间形成短路、从而使器件复位。

    硅封装本身不会受到该长度的浸泡影响、 那么、问题是导致这里问题的 PCB 正在发生什么、我认为复位寄存器测试对于您更详细地了解故障情况非常重要、以便您可以进一步查看硬件以找到最终结果 根本原因。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    感谢您的意见。 我们将考虑所有这些因素。

    谢谢、此致、

    Vamsi