切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 1987阅读
  • 0回复

[MP3]炬力ATJ2073和ATJ2085电池监测的使用 [复制链接]

上一主题 下一主题
离线13662665li
 
发帖
93
M币
689
专家
1
粉丝
0
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2007-10-12
一. ATJ2073的电池监测的功能的使用

在ATJ2073中,电池电压从VBAT PIN脚输入,但VBAT的电压范围在<1.5V,所以对于两节电池(3.0V)供电的情况,外部需要加分压电阻。

另外ATJ2073还提供了VL0,VL1,VL2,VL3 四个PIN脚作为电池电量的监测用途,工程人员可以把VL0,VL1,VL2,VL3 四个PIN脚分别接在不同电平上,以达到机动的监视各种电池的电压变化情况(干电池,碱性电池等等)。

VL0, VL1,VL2,VL3 四个PIN脚都与VBAT PIN脚上的电压作比较。当VBAT PIN脚上的电压低于VL0 PIN脚或VL1 PIN脚或 VL2 PIN脚或VL3 PIN脚的电压时,ATJ2073中有IO PORT(DFH)的相应位会被置成1。相反地,当VBAT PIN脚上的电压高于VL0 PIN脚或VL1 PIN脚或VL2 PIN脚或VL3 PIN脚的电压时,ATJ2073中有IO PORT(DFH)的相应位会被置成0。所以软件可以根据VL0,VL1,VL2,VL3的情况来提供电池电量显示:

现举例如下:假设VL0>VL1>VL2>VL3,电池电量显示为3格。

当VBAT>VL0时,IO PORT(DFH).BIT7读回为1,BIT6/5=1,电池电量显示为满格;

当VL0>VBAT>VL1时,IO PORT(DFH).BIT7读回为0,BIT6/5=1,电池电量显示为缺1格;

当VL1>VBAT>VL2时,IO PORT(DFH).BIT6读回为0,BIT5=1,电池电量显示为缺2格;

另外,当VBAT PIN脚上的电压低于VL2 PIN脚的电压时,ATJ2073中有IO PORT(04H)的BIT5位会被置成1,并产生 Low Battary NMI-,这时应该利用这个NMI-,把一些耗电大的电路关断(利用IO PORT控制),如DSP,DAC等等。

当VBAT PIN脚上的电压低于VL3 PIN脚的电压时,ATJ2073会被无条件复位。

二. ATJ2085的电池监测的功能的使用

在ATJ2085中,电池电压也从VBAT PIN脚输入,但VBAT的电压范围<3.0V,所以无论是一节电池(1.5V)供电还是两节电池(3.0V)供电,外部都不需要再加分压电阻,直接连接到电池端。

ATJ2085不再提供ATJ2073中有的VL0,VL1,VL2三个PIN脚。VL3 PIN改为LBD PIN。那么如何进行电池电量的监测呢?原来是 ATJ2085中增加了一个4 bit 的ADC,它把0.9-1.5V之间的电压16等分(0.90V,0.94V,0.98V,1.02V, 1.06V,1.10V,1.14V,1.18V,1.22V,1.26V,1.30V,1.34V,1.38V,1.42V,1.46V,1.50V),当是两节电池(3.0V)供电时,BATSEL接高电平,决定了从VBAT PIN脚输入的电压在比较前会被二分压。并且A/D变换出来的数值会每2秒一次被记录在IO PORT(D8H).BIT[3:0]里,这样软件就可以读回IO PORT(D8H)中的值,与功能规格书中的值作比较,来确定要显示的电池电量及采取的动作。很明显ATJ2085能在更多点上监测电池电压。

现在举例如下:仍假设VL0>VL1>VL2>VL3,电池电量显示为3格 。

选VL0=1.30V, 即IO PORT(D8H).BIT[3:0]=0AH,

VL1=1.10V, 即IO PORT(D8H).BIT[3:0]=05H,

VL2=0.98V, 即IO PORT(D8H).BIT[3:0]=02H,

当VBAT>VL0时,电池电量显示为满格;

当VL0>VBAT>VL1时,电池电量显示为缺1格;

当VL1>VBAT>VL2时,电池电量显示为缺2格;

另外,当电池的电压低于某个电压时(假设VL2),软件应该把一些耗电大的电路关断(利用IO PORT控制),如DSP,DAC等等, ATJ2085中不再有NMI中断来提醒软件。

当VBAT PIN脚上的电压低于LBD PIN脚的电压时,ATJ2085仍会被无条件复位。
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个