打印
[其它应用]

没有办法使用内部的2.7V做参考?

[复制链接]
2219|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tian111|  楼主 | 2021-12-2 23:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
79F085/165
数据手册PGA输入要求0.4-2V的共模电压。放大后输出0.4-1.6V, ADC 参考电压0.1-1.2V,又没有办法使用内部的2.7V做参考?

使用特权

评论回复
沙发
huangchui| | 2021-12-2 23:25 | 只看该作者
79f165是应用在小信号放大系统的,输入信号只能这么大,内建参考电源就是从2.7V分压得到的,不能采用2.7V

使用特权

评论回复
板凳
chuxh| | 2021-12-2 23:27 | 只看该作者
应用计算公式,设定你的参考电压和Gain的值,ADC输出码=(AINx*Gain/Vref)*32768

使用特权

评论回复
地板
renyaq| | 2021-12-2 23:29 | 只看该作者
就热电偶应用而言,参考电压建议采用外接,如TL431分压得到。因热电偶无法与Vref同源,Vref的温飘很难解决。需要得到ADC的高精度输出最好外接。

使用特权

评论回复
5
zwll| | 2021-12-2 23:31 | 只看该作者
是的,热电偶输出范围大,一般最大输出接近100mV,因此PGA增益设定12.5倍即可,AINx*Gain小于Vref,ADC输出才不会溢出。

使用特权

评论回复
6
tian111|  楼主 | 2021-12-2 23:33 | 只看该作者
多谢,void        InitialADC()
{        
        REGCON  = 0x01;                        //开启内部2.7V稳压电源
        PGAM    =0x94;              //放大25倍,消波控制器频率1K
        ADCON        =0x01;                        //Bin(10000000);        启动ADC模块,内部参考电压, Ain1为输入
        //ADT=0xEB;                                //ADC=100Hz
        ADT     =0xAD;                        //ADC=50Hz
        ADCH        =0x8A;                        //Bin(00001010);  P1.5和1.6口用于AIN1         参考电压为0.5V
        ADCON        |=0x80;                        //Bin(10000000);        开始ADC转换
        EADC        = 1;                        //允许ADC中断
}
总中断EA开启。采用中断读取。为什么不能进中断?通过串口读上的数为0200ff?而且不变化。

使用特权

评论回复
7
tian111|  楼主 | 2021-12-2 23:36 | 只看该作者
运行程序后,输入共模电压1.3V左右,差模电压0.365mv,但是11脚vin-和12脚vin+,共模电压1.3V左右,但差模电压155mV好像有些不对,Vref引脚0.508V

使用特权

评论回复
8
tian111|  楼主 | 2021-12-2 23:38 | 只看该作者

//**************************ADC中断程序,读取温度值**************************
void ADC() interrupt 6        using 2
{
// unsigned long data ADCData;
        //ADCON&=0xB1;                                                //清中断标志寄存器
        ADCData=ADDH;                                                //
        ADCData=ADCData*256;                                //
        ADCData=ADCData+ADDM;                                //
        ADCData=ADCData*16;                                        //
        ADCData=ADCData+ADDL;                                //        
        ADCON&=0xBF;                                                //清中断标志寄存器
}

使用特权

评论回复
9
zhenykun| | 2021-12-2 23:40 | 只看该作者
两个子程序没有问题,中断应该能发生的,你可以采用查询中断标准ADCIF是否有产生

使用特权

评论回复
10
chuxh| | 2021-12-2 23:41 | 只看该作者

描述有误,Vin+/-不是11脚和12脚,就关于应用建议如下:
(1).用万用表测量是否VDDR=2.7V,VREF=0.5V
(2).差分输入后经PGA放大的测量确定:(Vin+/-)=(Ain1+/-)*25,也就是VIN等于0.365mV*25=9.125mV,ADC输出码值应该很小.
(3).UART通信是否正常,波特率是否用示波器测量确定过?

使用特权

评论回复
11
tian111|  楼主 | 2021-12-2 23:44 | 只看该作者
好的,我再测试一下,多谢

使用特权

评论回复
12
huangchui| | 2021-12-2 23:45 | 只看该作者
sh67p847仿真板,在IDE66环境下使用,建立新项目时,驱动选sh67p847,晶振默认内部4M,编辑、编译、下载完成后,没有错误提示,但一按单步进入,系统就提示“steck overeflow”

使用特权

评论回复
13
wyjie| | 2021-12-2 23:47 | 只看该作者
存储器显示正常吗?

使用特权

评论回复
14
jiahy| | 2021-12-2 23:49 | 只看该作者
存储器全部显示为0

使用特权

评论回复
15
songqian17| | 2021-12-2 23:51 | 只看该作者

存储区全是0,有可能是OPTION或者clock不对,程序运行不正常

使用特权

评论回复
16
stly| | 2021-12-2 23:54 | 只看该作者
看一下仿真器的CPLD&MCU是否有最新版本

使用特权

评论回复
17
gongche| | 2021-12-2 23:55 | 只看该作者
在OPTION中设置为内部RC试一下,我也认为是振荡器没有搞对,没有跑起来。

使用特权

评论回复
18
weifeng90| | 2021-12-5 15:20 | 只看该作者
那就用外部参考源

使用特权

评论回复
19
dingy| | 2021-12-6 21:26 | 只看该作者
看一下仿真器的CPLD&MCU是否有最新版本

使用特权

评论回复
20
xxrs| | 2021-12-6 21:27 | 只看该作者
怎么看

使用特权

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

本版积分规则

797

主题

8878

帖子

7

粉丝