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

PXA270嵌入式系统设计一:电源管理部分

最近计划针对我们华清远见的教学开发一套PXA270系统,我把我的一些软、硬件开发过程记录下来和大家一起分享、讨论。有好的建议大家一定要及时交流,lht@farsight.com.cn

平台硬件功能要求:32M/64M nor flash、64M sdram、10M/100M自适应网口、串口、SD卡接口、USB主从口、实时时钟、4*4扫描键盘、I2C的e2rom、蜂鸣器、A/D、CAN总线接口、VGA接口、数字液晶接口、音频接口、电源管理等功能。

平台嵌入式操作系统要求:

1、linux:版本2.6.23 并可以运行google的android手机操作系统

2、Wince:6.0

电路板开发工具:capture CIS+Allegro

下面就开始我们的项目了。做硬件设计,首先考虑的是电源设计,所以今天讨论的主题就是PXA270电源电路设计。

Intel Xscale PXA270处理器是一个高度集成的SOC,并且针对电池供电的手持设备如PDA、3G手机等的应用做了优化,是希望以较低的功耗完成计算和多媒体应用的产品的理想选择。 它集成了丰富的“ 片内外设”,并专为无线应用包含了Intel最新的移动计算技术。主频在13~624 MHz内调节,为大多数移动应用提供足够的性能。

系统中这些包括音频功放、USB、LCD、MMC卡等不同的应用模块都要求不同功率级别的稳压源。电源管理指如何将电源有效分配给系统的不同组件,即负责整机的电源供给及供电管理调度。

PXA270的电源管理部分比较复杂。这里先讨论和硬件设计相关部分。

一、PXA270的电压需求及电流需求

图1.1 典型电源电路

图1.1 典型电源电路

可以看出处理器需要外部提供的低电压有VCC_(CORE,PLL,SRAM),高电压有VCC_(IO、MEM、LCD、BB、USB、USIM)。并且外部电源管理芯片还提供了nVDD_FAULT和nBATT_FALT信号(这两个信号主要用于向处理器报告电源异常),而且可以接受处理器发出的SYS_EN和PWR_EN信号(这两个信号主要用于控制电源管理芯片的电压输出,以达到在睡眠模式下节电的目的)。

表1.1 电压需求

表1.1 电压需求

本系统中VCC_BB和VCC_USIM不用,其它电压确定为:

VCC_BATT

3.0V

VCC_IO

3.3V

VCC_LCD

3.3V

VCC_MEM

3.3V

VCC_USB

3.3V

VCC_SRAM

1.1V

VCC_CORE

0.8—1.45V

VCC_PLL

1.3V

表1.2 VCC_CORE电流需求

表1.2 VCC_CORE电流需求

VCC_CORE 的电流受平台硬件配置和所运行的系统软件和应用的影响比较大,且和设定的工作频率相关。我们的平台要求最大可以运行在520M左右,那VCC_CORE要求至少可以提供1.45V及689mA左右的电流。

表1.3 其它电流需求

表1.3 其它电流需求

二、选择合适的电源管理芯片

从上面的要求可以看到PXA270需要多种电压,而且最好能够匹配它的电源管理功能。电源芯片选择方案上来看主要有两种:1、分立元件 2、集成度高的电源管理芯片。

分立元件 指每个电压都单独特定的一个芯片来提供,优点是设计简单、价格也相对便宜;缺点是集成度低,占用pcb面积大、不易管理控制。

专用的电源管理芯片 指一个芯片可以提供PXA270所需的多路电压,并且提供管理功能,如:电压的动态调节,电压监测、开关控制等;缺点:性能复杂一些,设计难度稍大、价格也相对高一些,还有有些芯片在市场上不太好买。

经过比较,最终还是决定使用电源管理芯片(做嵌入式嘛,就是要不怕困难的精神,何况还有参考电路呢)。

目前,我知道的在PXA270上使用的比较成熟的电源管理芯片有两款,TI的tps65020和美信的MAX1856CETM。这两款芯片和PXA270连接的参考原理图手头上都有,价格差别也不大。最终选择了MAX1856CETM,主要还是考虑我有它的Allegro封装(有的时候理由就是这么简单)。

还有个问题,MAX1856CETM和tps65020目前北京都没货,得从深圳拿。目前还是选MAX1856CETM吧,毕竟有的开发板上用的就是它。如果最后实在不好拿货,再换别的方案。

MAX1856有AETM、BETM、CETM,3个功能、封装兼容的芯片。只是MAX1856CETM输出的电流最大。有个朋友用的是MAX1856A(这个要好买些),但说有时比较容易烧。参照表1.4及表1.2和表1.3,可以分析出之所以MAX1856A容易烧,是因为VCC_CORE 需求的电流很容易就超出MAX1586A所能提供的500mA。所以选择MAX1856C。

表1.4

关于MAX1586电源的功率还可以参考下面几个图:

可见VCC_IO是满足的。 VCC_PLL VCC_SRAM的功率差不多,我想既然开发能正常用,所以这几个电压应该也是满足的。

三、MAX1856CETM的接线及功能分析

图1.2 MAX1856CETM和PXA270接线图

对本系统而言,由于采用的是外接电源的方式,所以不考虑电池充放电路的管理。图1.2是接线图,采用的是优龙开发板提供的参考图。由图可见,MAX1856C提供PXA270所需要的所有电压,图中:

VCC_CORE: 0.7----1.475V V,复位时1.3V

VCC_PLL:1.3V

VCC_SRAM:1.1V

VCC_BATT:3.0V

BTBT_IN:3.0V

需要注意的是BKBT_IN一定要有,不然系统启动不了。不接它的话jtag一复位系统的3.3V就会丢失,jtag连接就会断掉(这是一个朋友的经验,目前没分析出来原因)。

PWR_EN: 可以控制电压输出3、4、5的开关

SYS_EN: 可以控制电压输出1、6的开关

VCC_BAT: 不受控制,一直有

PWR_SCL和PWR_SDA:I2C输入口,可以用来控制VCC_CORE的电压(0.7—1.475V)

电源管理部分就到这了,后面要考虑“时钟部分”的设计了。

(作者:刘洪涛,华清远见嵌入式培训中心金牌讲师,ARM ATC授权培训讲师)

相关文章:

  • Azure Machine Learning Studio 实例 -- 预测xx年的食物工厂总数
  • azure machine learning 预测分类实例-- 预测出口国
  • PXA270嵌入式系统设计二:时钟及复位部分
  • azure machine learning 机器学习算法的选择
  • linux内核对S3C2410睡眠模式的支持
  • 机器学习 -- 最小二乘法与梯度下降法
  • 机器学习-- K-Means 的介绍与实现
  • 【公告】博客文章丢失,现已全部重新上传!!
  • 机器学习 --KNN的介绍与实现
  • 学会面对生死---写在爷爷离开后的日子
  • 机器学习 -- 二元逻辑回归实例
  • Winforms: 不能在Validating时弹出有模式的对话框
  • 修改Sql Server ISOLATION LEVEL的3种方式
  • 商业周刊:挖掘网络友情背后价值
  • 机器学习 -- 简单线性拟合实例
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • HTTP中的ETag在移动客户端的应用
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • SQL 难点解决:记录的引用
  • swift基础之_对象 实例方法 对象方法。
  • vue学习系列(二)vue-cli
  • Vultr 教程目录
  • 编写高质量JavaScript代码之并发
  • 对象管理器(defineProperty)学习笔记
  • 力扣(LeetCode)22
  • 嵌入式文件系统
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 我是如何设计 Upload 上传组件的
  • 一文看透浏览器架构
  • 正则表达式
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #100天计划# 2013年9月29日
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (六)vue-router+UI组件库
  • (论文阅读11/100)Fast R-CNN
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .gitignore文件---让git自动忽略指定文件
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET建议使用的大小写命名原则
  • .net下的富文本编辑器FCKeditor的配置方法
  • .net中应用SQL缓存(实例使用)
  • :O)修改linux硬件时间
  • @RequestBody与@ModelAttribute
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [C++]18:set和map的使用
  • [C++]unordered系列关联式容器