扫码加入

  • 资料介绍
  • 相关推荐
申请入驻 产业图谱

APM32F103XC_TMR_关闭DMA进入睡眠模式出现故障

15小时前
218
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

APM32F103XC_TMR_关闭DMA进入睡眠模式出现故障

本文档针对APM32F103XC微控制器在特定使用场景下的异常行为进行分析和解决。问题发生在将系统置于睡眠模式时,当用户尝试关闭定时器(TMR)所关联的DMA功能后,设备出现了不可预期的行为,包括但不限于定时器中断失效、唤醒延迟或系统重启。

故障现象

应用程序在睡眠模式中调用函数来关闭APM32F103XC芯片上某个定时器(TMR)的DMA功能时,系统会出现以下一种或多种问题:

  • 定时器中断不再触发,导致时间基准失效
  • 系统无法从睡眠模式正常唤醒
  • 芯片进入一种不稳定的状态,可能需要强制复位才能恢复

原因分析

经调查发现,此问题源于在进入睡眠模式时,DMA模块未能被正确初始化或清理。具体来说,当DMA功能被关闭后,相关寄存器的状态没有被妥善保存或复位,而在睡眠模式中部分时钟供应被切断,使得这些未稳定的状态在唤醒时造成逻辑错误。

参数 初始值 关闭DMA后 进入睡眠后 故障表现
DMA Channel Enable Enabled Disabled Indeterminate
TIMx CR1 (CEN) Enabled Still Enabled Locked
System Clock 72MHz Reduced Partially Off

解决方案

为解决上述问题,建议在进入睡眠模式前采取以下措施:

  1. 确认所有使用的DMA通道都已安全关闭,并清除相关标志位。
  2. 将受影响的定时器(TMR)设置为停止状态,即设置TIMx CR1寄存器中的CEN位为0。
  3. 在进入睡眠模式前,确保所有关键外设的电源和时钟配置符合低功耗模式要求。
  4. 在唤醒后的初始化阶段重新配置定时器和DMA功能,以恢复系统正常工作。

此外,开发者应优先选择芯片官方推荐的低功耗模式,并参考数据手册中关于时钟、电源和外设管理的相关章节,以确保系统在不同工作状态下都能稳定运行。

极海半导体

极海半导体

极海半导体是一家专注于工业级/车规级微控制器、高性能模拟与混合信号IC及系统级芯片研发与设计的集成电路设计型企业。可为工业、汽车电子、能源以及消费电子等行业提供多平台及场景的可靠芯片产品及解决方案,满足客户在高度集成、精准控制、安全识别及效能提升等创新应用中的多元需求。

极海半导体是一家专注于工业级/车规级微控制器、高性能模拟与混合信号IC及系统级芯片研发与设计的集成电路设计型企业。可为工业、汽车电子、能源以及消费电子等行业提供多平台及场景的可靠芯片产品及解决方案,满足客户在高度集成、精准控制、安全识别及效能提升等创新应用中的多元需求。收起

查看更多

相关推荐