当前位置: 首页 > news >正文

SemiDrive E3 硬件设计系列---唤醒电路设计

一、前言

      E3 系列芯片是芯驰半导体高功能安全的车规级 MCU,对于 MCU 的硬件设计部分,本系列将会分模块进行讲解,旨在介绍 E3 系列芯片在硬件设计方面的注意事项与经验,本文主要讲解 E3 硬件设计中唤醒电路部分的设计。

二、RTC 模式

      E3 系统有三种睡眠模式分别是:Sleep 模式、Hibernate 模式、RTC 模式,本文主要介绍 RTC 模式的唤醒,此处介绍 RTC 模式。在 RTC 模式下,除了 RTC 电源不关,其他电源都关闭, 外部 32kHz 或者内部 32kHz 不关闭。唤醒 RTC 方式有如下几种:① RTC 时钟中断唤醒,② SYS_WAKEUP0,SYS_WAKEUP1 唤醒,③SYS_BUTTON 唤醒。
      在 RTC 模式下, 系统典型功耗为 50uW, 系统进入 RTC 模式, 除了 RTC 域的 IO, 其他 IO 都进入高阻态。

三、唤醒源介绍

      wakeup0、 wakeup1 和 button 都支持上升沿下降沿以及电平触发, 在系统第一次开机过程中,系统不判断该引脚状态, 当系统进入睡眠前,软件通过写相应的寄存器, 让 wakeup0、 wakeup1、以及 button 处于何种唤醒模式。

四、唤醒电路介绍

      当出现超过 3 种唤醒方式时, 需要根据外部唤醒源做一个分类上升沿下降沿以及电平, 通过分类做或门或与门实现。
      或门电路设计如下:外部高电平信号进行唤醒,到芯片唤醒引脚则是低电平信号,唤醒引脚常态高电平,从而配置成下降沿唤醒。

SemiDrive E3 硬件设计系列---唤醒电路设计

      与门电路如下:外部低电平信号进行唤醒,到芯片唤醒引脚则是高电平信号,唤醒引脚常态低电平,从而配置成上升沿唤醒。

SemiDrive E3 硬件设计系列---唤醒电路设计

      不管电平触发还是边沿触发, 因为都在 RTC 域, 是参照 RTC 时钟的, 所需触发时间(高低电平保持时间) 不能少于是 50us。对于 50us 以下的触发源且需要判断触发源。对于部分唤醒源时间低于 50us, 比如有些 CAN 用 RX 唤醒系统, 高电平时间很可能是 1us,那么把该唤醒源直接接到 wakeup0、 wakeup1 和 button 是唤醒不了系统的。这个时候需要采用延时电路, 下面是具体的延时电路图,调节 R2,C1 和 R6 可以使输入 1us 的时间延长到 ms 级别。 并且把该信号接到 wakeup0、 wakeup1 和button 唤醒系统。 系统唤醒后,通过 TX/RX 判断是哪个唤醒源唤醒了系统,或者通过再延长该电路时间接到 E3 GPIO 上, 使得保证系统唤醒后 15ms,E3 GPIO 能够读到相应的状态。

SemiDrive E3 硬件设计系列---唤醒电路设计


      另外此处唤醒源信号的延长也能通过 RC 电路进行电平脉冲延长,此处简单介绍 RC 电路延时时间的计算。关于 RC 电路延时的计算,如下图。

SemiDrive E3 硬件设计系列---唤醒电路设计


      例如 R=470K,C=0.1uF 延时时间的计算,计算时间公式为:t=RC * ln[(V1-V0)/(V1-Vt)]。
      V0 为电容上的初始电压值,V1 为电容最终可充到或放到的电压值,Vt 为 t 时刻电容上的电压值。
      如上图,假设求充到 1.1V 的时间则计算如下:
      V0=0,V1=3.3V, Vt=1.1V,
      故 t=RC*ln[(3.3-0)/(3.3-1.1)]=RC*ln1.5=0.405*RC=405us.
      此处 RC 电路主要延长脉冲上电的时间,当脉冲时间低于芯片识别阈值时,可以使用 RC 电路进行时间延长。

五、结语

      本文介绍了 E3 硬件电路的唤醒电路的设计,主要涉及到 RTC 模式、唤醒源、唤醒电路、延时电路的介绍。

六、参考资料

      《SemiDrive_E3硬件设计手册_Rev01.11》

阅读原文,了解更多精彩技术内容吧!

http://www.lryc.cn/news/490935.html

相关文章:

  • 淘宝接口高并发采集核心要点解读,开启电商数据智能应用新纪元
  • C#里怎么样快速使用LINQ实现查询?
  • 2024新版微软edge浏览器输入百度网址时自动补全tn=68018901……小尾巴的解决
  • uni-app打包H5自定义微信分享
  • 大模型专栏--大模型应用场景
  • 骑砍2霸主MOD开发(29)-顶点动画
  • -Dspring.profiles.active=dev与--spring.profiles.active=dev的区别
  • 面向对象高级(2)单例设计对象与代码块
  • 47小型项目的规划与实施
  • 堤防安全监测系统方案
  • 聊聊Flink:这次把Flink的window分类(滚动、滑动、会话、全局)、窗口函数讲透
  • mysql-分析MVCC原理
  • 由于答案过大,请对a取模。取模后的答案不是原问题的答案 取模有何意义呢 详解
  • 【c++篇】掌握动态内存的奥妙
  • 5.4.2-3 编写Java程序读取HDFS文件
  • @EnableConfigurationProperties @ConfigurationProperties
  • RK3588适配MTK7921 USB接口WiFi驱动开发
  • 【数据结构OJ】【图论】图综合练习--拓扑排序
  • 模型 I/O 与 LangChain 实践
  • C++:用红黑树封装map与set-1
  • HBU算法设计与分析 贪心算法
  • python pycharm安装教程及基本使用,超详细
  • 变量提升函数提升
  • el-table vue3统计计算数字
  • IDE应当具备的功能
  • Stable Diffusion初步见解(二)
  • 前端框架 react 性能优化
  • RK3568平台开发系列讲解(Input子系统篇)输入子系统介绍
  • 准备阶段 Profiler性能分析工具的使用(一)
  • go-rod vs Selenium:自动化测试工具的比较与选择