新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于PSoC的单键开关机和自动关机方案

基于PSoC的单键开关机和自动关机方案

作者:时间:2008-03-13来源:电子产品世界收藏

  摘要: 本 文介绍了一种基于Cypress(赛普拉斯)的8位PSoC芯片的单键开关机和自动关机实现方案。采用该方案的应用系统具有开关机电路简单,操作方便,系统低等优点。

本文引用地址:http://www.eepw.com.cn/article/80016.htm

  关键词: PSoC;单键开关机;自动关机;

  引言

  一种行之有效的降低方法是给产品添加自动关机电路和单键开关机电路,使得系统在预先设定的时间里检测到无外部操作时,系统自动关断电源电路,从而确保系统非工作状态时实现真正的零功耗;同时单键开关机电路使得操作者能方便地实现系统的开关机操作。本文正是基于这个思想介绍了一种基于赛普拉斯PSoC芯片的单键开关机和自动关机的方案实现。该方案具有电路简单,成本低廉,操作方便,软件代码少,关机功耗低,可方便地集成于PSoC便携式电子产品中实现系统低功耗目的。

  PSoC

  PSoC(Programmable system on chip,可编程片上系统)是Cypress半导体有限公司生产的的可编程片上系统芯片。它主要由8位微处理器,可编程模拟模块和数字模块,外加硬件乘法累加器,I2C,Flash,SRAM,睡眠定时器等周边外围模块组成。

  因此,PSoC除了能实现一般MCU的功能外,还可通过可编程模拟和数字模块灵活地实现单芯片电子产品系统所需的模拟与数字外围功能。为了方便用户简单而快速地实现模拟数字外围功能的设计,Cypress基于可编程数字模拟模块构建了大量的用户模块,如可编程运算放大器、比较器、6~14位的A/D和D/A转换器、滤波器、8/16 /24/32位定时器/计数器、脉宽调制器、触摸感应等模块。这些用户模块将PSoC内部的寄存器配置、数字模块和模拟模块之间的内部连线、底层API(应用程序接口)函数都已设计好了。当用户需要某个数字模拟外围功能时,只需要简单地调用相应的用户模块即可实现。

  单键开关机和自动关机电路

  图1是基于PSoC芯片为控制核心而设计的一种简单的单键开关机和自动关机电路,该电路所需占用PSoC的硬件资源是两个I/O口:ON/OFF和PWR_CTRL。ON/OFF是输入口,用来检测开关SW1动作情况;PWR_CTRL是输出口,用来控制电源的开与关。SW1是整个电路的输入控制开关。下面将详细介绍该电路的单键开机、单键关机和自动关机的工作原理。

图1 单键开关机和自动关机电路

  开机工作原理:当系统处于关机状态时,开关SW1按下,PMOS管Q1的栅极电压由9V电池电压经R1、R3分压后由原来的9V变为4.5V,而Q1的源极电压为9V输入,Vgs=Vg-Vs=4.5-9=-4.5V,Q1从而导通,使得Vin近似于等于输入电源电压,Vin再经过后面的LDO或DC-DC电源芯片变换成系统所需要的电源电压VDD,使产品后面的系统开始工作;然后在系统一开始上电工作时,PSoC通过PWR_CTRL输出I/O口输出高电平信号,Q2的漏极变为低电平,从而将Q1的栅极锁定成低电平状态,这样确保在SW1开关按钮释放后,Vsg仍大于PMOS管Q1的导通开启电压,从而使得电池电压能稳定送到后面的产品系统电路中实现供电。

  关机工作原理:当系统开机后无开关SW1按下的情况时,PSoC输入口ON/OFF由于电阻R2上拉至VDD的原因一直是高电平状态。当开关SW1突然按下时,二极管D1的负端变为零电平,ON/OFF输入电平就会由原来的VDD高电平状态,变为二极管正向电压电平0.6V低电平状态。ON/OFF输入口的这种电平状态突变会使得PSoC产生I/O口中断,执行关机中断处理:设置PWR_CTRL口输出为0电平信号。当PWR_CTRL=0时,Q2的漏极为高电平信号,Q1的栅极电压也随之变为9V电平,Vgs变为0V,PMOS管Q1关闭,从而将电池电压与输入电压Vin通路切断,实现关机功能。

  自动关机工作原理:PSoC内的MCU不断检测外部输入操作,当一旦检测到无外部操作超过预先设定的时间,PSoC将输出PWR_CTRL口置为0,从而实现自动关机功能。至于时间定时功能,PSoC芯片可有多种实现方式,例如可以通过由可编程数字模块构造的硬件定时器用户模块实现,也可以通过PSoC芯片内本身集成的睡眠定时器,或者通过软件计数定时等实现。

  单键开关机和自动关机软件

  中断处理子程序

  ON/OFF输入I/O口中断处理:

  Set PWR_CTRL=0;

  Ret

  定时器中断处理:

  Set PWR_CTRL=0;

  Ret

  单键开关机和自动关机软件流程如图2所示,要实现单键开机,在软件上只需要在程序最开始执行处添加一条将PWR_CTRL置 为“1”的语句即可;要实现单键关机,只需要在I/O中断服务处理程序里,添加一条将PWR_CTRL置为 “0”的语句;要实现自动关机,只需打开睡眠定时器或利用PSoC内的由可编程数字模块构成的定时器用户模块实现定时功能,然后再在定时中断里添加一条将PWR_CTRL置为 “0”的语句。

图2 单键开关机和自动关机软件流程

  结语

  该方案具有电路简单,成本低廉,操作方便,软件代码少,关机功耗低,可方便地集成于PSoC便携式电子产品中实现系统低功耗目的。

  参考文献:

  1. 王莹,‘不与摩尔定律较劲’,电子产品世界,2008.1

adc相关文章:adc是什么


脉宽调制相关文章:脉宽调制原理


评论


相关推荐

技术专区

关闭