在线情况
楼主
  • 头像
  • 级别
    • 积分5
    • 经验157
    • 文章4
    • 注册2009-02-22
    问个电池电压采样的问样

        我用从微控买的149实验板采样电池电压(最高3.3V电压),我的电路是这样的:电池正负板之间接一个20K的电位器,电位器中间的那个脚接P6.7;电池负极接VREF-/VeREF-;DVcc接AVcc接3.3V(电路工作的电压);DVss接AVss接电路板的地(注意电池负极和电路板的地不相接)。请问我以下的配置对吗?

       sendCMD(off_cursor);            //关光标
       
       //ADC12初始化----------------------
       //单通道,单次采样模式
       P6SEL |= 0x80;                   //使能A/D通道 A7
       ADC12CTL0 = ADC12ON + SHT0_2;    //开ADC12内核和设置SHIT0=2(N=4)
       ADC12CTL1 |= SHP;                 //SAMPCON信号选择为采样定时器输出
       ADC12CTL1 |= CSTARTADD_7;         //定义单次转换地址
       ADC12MCTL7 |= [COLOR=#f70909]SREF_4[/COLOR] + INCH_7;
       ADC12CTL0 |= ENC;                 //ADC转换允许

    即VR+=AVcc,VR-=VREF-/VeREF-(示例程序的参考地是电路板的地);但是我实验的时候结果并不对,请问我哪里错了,谢谢

    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
    • 门派
    • 职务总版主
    • 声望+9
    • 财富5
    • 积分3065
    • 经验390701
    • 文章6744
    • 注册2006-03-07
    “(注意电池负极和电路板的地不相接)”这个是最最最基本错误,你的电池不与系统的参考地相连接怎么可以产生回路。没有回路也就不能形式电压,这样也就无法得到正确的电池电压。
    其实你跟本不需要再去自己编写一个程序来实验,你完全可以参考光盘上的LCD与ADC例程,此例程也就是测试一个外部电压值。只需要将我的电池负极接于开发板地,而将电池的正极接至ADC的输入端就可以测量到了。
    至于要在LCD显示电压值,则需要做一些电压换算处理就行了。
    [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
    在线情况
    3
    • 头像
    • 级别
      • 积分5
      • 经验157
      • 文章4
      • 注册2009-02-22
        呵呵,谢谢。我当初是这样想的:如果两部分的地接到一起的话,它们之间可能会产生影响(前提是我不知道“电池不与系统的参考地相连接就不产生回路”)。
       
        但是我的电池负极已经接到VREF-/VeREF,即电池已经与系统的参考地相连接了,为什么还要和电路板的地连到一起?

        如果VREF-/VeREF(我认为是系统的参考地)一定要和电路板的地相连的话,那实验板上的跳线S3不就是多余的了吗?
       
        也许问题很简单,但是不知道才问的!!!
      微控网感谢您的参与
      在线情况
      4
      • 头像
      • 级别
      • 门派
      • 职务总版主
      • 声望+9
      • 财富5
      • 积分3065
      • 经验390701
      • 文章6744
      • 注册2006-03-07
      “VREF-/VeREF”只是ADC12模块的负极参考端而已。而这个并非是系统地,如果你的程序选择了VREF-/VeREF作为参考端时并不是说这个就直接与地相连接的。这是一个错误的理解。
      如果电池按我刚才贴的接法接至正确了,如果还不能测试这样你就得参考程序上问题了。实验前一定保证硬件的正确性的前提下才去找软件上的原因。其实这个实验并不难,完全可以参考板子上的例程,只是将板子上的电位器输入转成电池输入而已。其本上没有多大变化。
      [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
      在线情况
      5
      • 头像
      • 级别
        • 积分5
        • 经验157
        • 文章4
        • 注册2009-02-22

           硬件上没有问题,我先是用你给的程序试的,结果是对的(但是电池负必须和电路板的地相连,S3跳线断开的);然后我就改了一点点:即电池负极接VREF-/VeREF(这两个都不与电路板的地相连),然后在软件中把SREF_0改为SREF_4,即VR+=AVcc,VR-=VREF-/VeREF-,发现结果就不对了

           我的意思是不想让电池负和电路板的地相连而能测量到电池的电压,请问有可能行得通吗?
        微控网感谢您的参与
        在线情况
        6
        • 头像
        • 级别
        • 门派
        • 职务总版主
        • 声望+9
        • 财富5
        • 积分3065
        • 经验390701
        • 文章6744
        • 注册2006-03-07
        行不通,我不是告诉你正确的方法了吗。为什么你总想用一些不正当的做法去实验呢,这样当然得不到正确的结果了。这也是很理所当然的事了。否则,真莫明其妙。
        [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
        在线情况
        7
        • 头像
        • 级别
          • 积分5
          • 经验157
          • 文章4
          • 注册2009-02-22

            哦,最后弱弱的问一下:什么时候VREF-/VeREF-引脚需要和系统地连到一起(因为我看到实验板上有个跳线S3把VREF-/VeREF-引脚和系统地分开)?
          微控网感谢您的参与
          在线情况
          8
          • 头像
          • 级别
          • 门派
          • 职务总版主
          • 声望+9
          • 财富5
          • 积分3065
          • 经验390701
          • 文章6744
          • 注册2006-03-07
          VREF-/VeREF-为外负极参考电压。如果ADC12中要用到外部负参考的话,通常两两种做法。
          其一,接一个参考电压(非0V)。参考电压范围是多少请看149手册。
          基二,也就直接接地(0V)。
          ADC内部的负极参考电压一般是地端。
          关于这些端口更详细的描述请参考F1用户手册。
          谢谢!
          [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
          在线情况
          9
          • 头像
          • 级别
            • 财富1
            • 积分7
            • 经验545
            • 文章31
            • 注册2007-04-27
            学习了
            微控网感谢您的参与
            在线情况
            10
            • 头像
            • 级别
              • 积分9
              • 经验4873
              • 文章97
              • 注册2008-09-07
              哇,厉害
              微控网感谢您的参与
              Powered by LeadBBS 9.2 .
              Page created in 5.2031 seconds with 5 queries.