打印

MC908SR12内部温度传感器测温问题

[复制链接]
2717|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dianqi123|  楼主 | 2007-5-12 21:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在使用MC908SR12内部温度传感器测芯片内部温度时遇到了一个问题,选择内部温度传感器时两级放大器GAINA=2,GAINB=6,在其PDF的增益表中查得GAINB[3:0]=0101,GAINA[3:0]=0001,所以AMGCR=0x51,但若使用PE的设置,GAINB[3:0]=0110,GAINA[3:0]=0010,变成了AMGCR=0x62,甚是不解,难道是我理解错误?
另外我在程序里将AMGCR=0x51,AD转换结果采用左对齐模式,
adc_result=ADR0H;
    adc_result<<=8;
    adc_result=(adc_result|ADR0L);
    adc_result>>=6;
采到的值用数码管显示为700,这个值如何转化为温度,由于相应资料极少,请专家指教。我的想法是这个值可能要除以12,
即实际温度=-20+(显示值)/(12*1.338),前面的-20是由于单片机的测温范围从-20~70度。但是我用吹风机吹芯片好长时间,手摸上去已经很烫,显示值只增加了70左右,换算成温度只有几度,这个结果显然不对。
困惑中

相关帖子

沙发
dianqi123|  楼主 | 2007-5-12 21:18 | 只看该作者

大家给我看一下我的问题

使用特权

评论回复
板凳
dianqi123|  楼主 | 2007-5-13 15:50 | 只看该作者

没人气啊

使用特权

评论回复
地板
张明峰| | 2007-5-13 19:41 | 只看该作者

数据手册上都有

温度斜率请参阅“Table 24-12. Temperature Sensor Electrical Characteristics”

AD结果请直接设断点看寄存器ADRH0和ADRL0的内容,因为你的数码管显示现在无法排除中间可能有什么软件错误存在。

读取10位的AD结果不必如此费劲:
取结果右对齐,然后(result为unsigned int)
result = *((unsigned int *)(&ADRH0));
最多再
result &= 0x03ff;//确保剔除高6位

GAIN寄存器的设定我认为首先应按照数据手册而不是PE。

使用特权

评论回复
5
fangpeip| | 2013-6-4 09:46 | 只看该作者
谁有那个MC908SR12数据手册,发给我一份,或者提供个下载链接,另外,它可以用别的什么型号来替换?

使用特权

评论回复
6
fangpeip| | 2013-6-4 09:47 | 只看该作者
我的邮箱fangpeip@163.com,谢谢!

使用特权

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

本版积分规则

3

主题

19

帖子

0

粉丝