[51单片机] 单片机控制AD7705

[复制链接]
3389|14
 楼主| 黑小子mxx 发表于 2014-3-23 16:23 | 显示全部楼层 |阅读模式
利用51单片机控制AD7705做温度采集,整个系统用一节锂电池供电,所以要求低功耗。显示温度0.1S刷新一次就够了,但是AD7705的最小更新频率是20Hz,也就是最少0.05S就会更新一次。这种情况应该怎么办啊?利用单片机的定时器中断可行吗?具体要怎么实现啊?麻烦大家给提提意见、、、
df_flying 发表于 2014-3-23 17:29 | 显示全部楼层
它更新它的,你采集你的,需要精确更新就用定时器吧~
 楼主| 黑小子mxx 发表于 2014-3-23 18:42 | 显示全部楼层
df_flying 发表于 2014-3-23 17:29
它更新它的,你采集你的,需要精确更新就用定时器吧~

关键是要降低功耗,不让他更新那么快、、、
oldda 发表于 2014-3-23 18:59 | 显示全部楼层
AD7705更新需要多少功耗?另外单片机空闲时也可进入sleep模式来省电。
coody 发表于 2014-3-23 19:00 | 显示全部楼层
显示温度1S刷新一次就够了
 楼主| 黑小子mxx 发表于 2014-3-23 19:15 | 显示全部楼层
oldda 发表于 2014-3-23 18:59
AD7705更新需要多少功耗?另外单片机空闲时也可进入sleep模式来省电。

这样行不行?如果说要0.1S更新一次的话,就利用单片机定时器做一个0.1S的定时器中断。当完成一次显示操作后让单片机休眠,当中断产生是再唤醒单片机,然后读取AD的输出,再显示,再休眠、、、可是这样的话怎么做好单片机和AD的同步呢?比如说怎么确保单片机被唤醒之后读取的数据刚好是想要的那16位啊?
df_flying 发表于 2014-3-23 19:18 | 显示全部楼层
黑小子mxx 发表于 2014-3-23 18:42
关键是要降低功耗,不让他更新那么快、、、

理解了……你可以通过控制你可控的来降低功耗,不要再不可控的上面考虑太深了。或者更换芯片,更改控制器等等,你这样的考虑…:L
 楼主| 黑小子mxx 发表于 2014-3-23 19:19 | 显示全部楼层
coody 发表于 2014-3-23 19:00
显示温度1S刷新一次就够了

老师要求是0.1S额,这块对实时性要求比较高。
但是不知道怎么能既满足0.1S刷新一次,又能降低系统的功耗。
你看这样行不行?如果说要0.1S更新一次的话,就利用单片机定时器做一个0.1S的定时器中断。当完成一次显示操作后让单片机休眠,当中断产生是再唤醒单片机,然后读取AD的输出,再显示,再休眠、、、可是这样的话怎么做好单片机和AD的同步呢?比如说怎么确保单片机被唤醒之后读取的数据刚好是想要的那16位啊?
 楼主| 黑小子mxx 发表于 2014-3-23 19:22 | 显示全部楼层
df_flying 发表于 2014-3-23 19:18
理解了……你可以通过控制你可控的来降低功耗,不要再不可控的上面考虑太深了。或者更换芯片,更改控制器 ...

这点确实容易走进死胡同,可是控制器是老师指定的AT89LP51(我都没有听过,也没有资料),AD必须是串行的16位,我就找了AD7705。纠结啊
df_flying 发表于 2014-3-23 19:38 | 显示全部楼层
黑小子mxx 发表于 2014-3-23 19:22
这点确实容易走进死胡同,可是控制器是老师指定的AT89LP51(我都没有听过,也没有资料),AD必须是串行的 ...

既然控制器和芯片已经定了,那么这块的最低功耗基本定了,你用0.1s的速度重复唤醒单片?这个...能有多大的可行性啊?能够稳定?你先用0.1s的定时器采集吧。成功后再验证一下你其他的想法吧。:L
 楼主| 黑小子mxx 发表于 2014-3-23 19:41 | 显示全部楼层
df_flying 发表于 2014-3-23 19:38
既然控制器和芯片已经定了,那么这块的最低功耗基本定了,你用0.1s的速度重复唤醒单片?这个...能有多大 ...

你的意思是让单片机一直工作着,只是每隔0.1S去采集一下AD的数据?可是这样怎么保证采集到的刚好是我想要的那个16位啊?因为AD一直再往外送数据啊。
df_flying 发表于 2014-3-23 19:58 | 显示全部楼层
黑小子mxx 发表于 2014-3-23 19:41
你的意思是让单片机一直工作着,只是每隔0.1S去采集一下AD的数据?可是这样怎么保证采集到的刚好是我想要 ...

那就一直接收20hz,基数次数据不要,偶数次的保留,正好0.1s......
 楼主| 黑小子mxx 发表于 2014-3-23 20:07 | 显示全部楼层
df_flying 发表于 2014-3-23 19:58
那就一直接收20hz,基数次数据不要,偶数次的保留,正好0.1s......

这样的话功耗差不多吧,可能在显示上面功耗会降一点
coody 发表于 2014-3-24 09:44 | 显示全部楼层
电流是一个综合的指标,你整个电路的电流多大?
 楼主| 黑小子mxx 发表于 2014-3-24 16:44 | 显示全部楼层
coody 发表于 2014-3-24 09:44
电流是一个综合的指标,你整个电路的电流多大?

还真没管过电流,弱弱的问一句这个电流应该怎么算,是不是只是一个估计值啊?感觉每个模块的电流都不是确定的啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

307

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部