打印
[51单片机]

单片机控制AD7705

[复制链接]
3011|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模式来省电。

使用特权

评论回复
5
coody| | 2014-3-23 19:00 | 只看该作者
显示温度1S刷新一次就够了

使用特权

评论回复
6
黑小子mxx|  楼主 | 2014-3-23 19:15 | 只看该作者
oldda 发表于 2014-3-23 18:59
AD7705更新需要多少功耗?另外单片机空闲时也可进入sleep模式来省电。

这样行不行?如果说要0.1S更新一次的话,就利用单片机定时器做一个0.1S的定时器中断。当完成一次显示操作后让单片机休眠,当中断产生是再唤醒单片机,然后读取AD的输出,再显示,再休眠、、、可是这样的话怎么做好单片机和AD的同步呢?比如说怎么确保单片机被唤醒之后读取的数据刚好是想要的那16位啊?

使用特权

评论回复
7
df_flying| | 2014-3-23 19:18 | 只看该作者
黑小子mxx 发表于 2014-3-23 18:42
关键是要降低功耗,不让他更新那么快、、、

理解了……你可以通过控制你可控的来降低功耗,不要再不可控的上面考虑太深了。或者更换芯片,更改控制器等等,你这样的考虑…:L

使用特权

评论回复
8
黑小子mxx|  楼主 | 2014-3-23 19:19 | 只看该作者
coody 发表于 2014-3-23 19:00
显示温度1S刷新一次就够了

老师要求是0.1S额,这块对实时性要求比较高。
但是不知道怎么能既满足0.1S刷新一次,又能降低系统的功耗。
你看这样行不行?如果说要0.1S更新一次的话,就利用单片机定时器做一个0.1S的定时器中断。当完成一次显示操作后让单片机休眠,当中断产生是再唤醒单片机,然后读取AD的输出,再显示,再休眠、、、可是这样的话怎么做好单片机和AD的同步呢?比如说怎么确保单片机被唤醒之后读取的数据刚好是想要的那16位啊?

使用特权

评论回复
9
黑小子mxx|  楼主 | 2014-3-23 19:22 | 只看该作者
df_flying 发表于 2014-3-23 19:18
理解了……你可以通过控制你可控的来降低功耗,不要再不可控的上面考虑太深了。或者更换芯片,更改控制器 ...

这点确实容易走进死胡同,可是控制器是老师指定的AT89LP51(我都没有听过,也没有资料),AD必须是串行的16位,我就找了AD7705。纠结啊

使用特权

评论回复
10
df_flying| | 2014-3-23 19:38 | 只看该作者
黑小子mxx 发表于 2014-3-23 19:22
这点确实容易走进死胡同,可是控制器是老师指定的AT89LP51(我都没有听过,也没有资料),AD必须是串行的 ...

既然控制器和芯片已经定了,那么这块的最低功耗基本定了,你用0.1s的速度重复唤醒单片?这个...能有多大的可行性啊?能够稳定?你先用0.1s的定时器采集吧。成功后再验证一下你其他的想法吧。:L

使用特权

评论回复
11
黑小子mxx|  楼主 | 2014-3-23 19:41 | 只看该作者
df_flying 发表于 2014-3-23 19:38
既然控制器和芯片已经定了,那么这块的最低功耗基本定了,你用0.1s的速度重复唤醒单片?这个...能有多大 ...

你的意思是让单片机一直工作着,只是每隔0.1S去采集一下AD的数据?可是这样怎么保证采集到的刚好是我想要的那个16位啊?因为AD一直再往外送数据啊。

使用特权

评论回复
12
df_flying| | 2014-3-23 19:58 | 只看该作者
黑小子mxx 发表于 2014-3-23 19:41
你的意思是让单片机一直工作着,只是每隔0.1S去采集一下AD的数据?可是这样怎么保证采集到的刚好是我想要 ...

那就一直接收20hz,基数次数据不要,偶数次的保留,正好0.1s......

使用特权

评论回复
13
黑小子mxx|  楼主 | 2014-3-23 20:07 | 只看该作者
df_flying 发表于 2014-3-23 19:58
那就一直接收20hz,基数次数据不要,偶数次的保留,正好0.1s......

这样的话功耗差不多吧,可能在显示上面功耗会降一点

使用特权

评论回复
14
coody| | 2014-3-24 09:44 | 只看该作者
电流是一个综合的指标,你整个电路的电流多大?

使用特权

评论回复
15
黑小子mxx|  楼主 | 2014-3-24 16:44 | 只看该作者
coody 发表于 2014-3-24 09:44
电流是一个综合的指标,你整个电路的电流多大?

还真没管过电流,弱弱的问一句这个电流应该怎么算,是不是只是一个估计值啊?感觉每个模块的电流都不是确定的啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

307

帖子

2

粉丝