This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPF2274的ADC问题

volt = (temp*25)/512;这个转换公式和手册的不太不一样,求解释,谢谢

  • 关于此,您可以看一下用户指南的ADC10

    https://www.ti.com.cn/cn/lit/ug/slau144j/slau144j.pdf 

    volt = (temp*25)/512;这个转换公式我记得是TI例程里使用的。

    在用户指南的 ADC10CTL1 中,要测量MSP430F2274 VCC,必须使用ADC10的通道11(0x0B),1011 (VCC - VSS) / 2

    但是,由于有一个电阻分压器电路,因此ADC10测得的实际电压实际上是VCC / 2。

    请查看第22.2.1 10-Bit ADC Core中的公式,以了解如何创建ADC转换结果。ADC10是一个10位ADC,因此可以生成1024个可能值中的1个(即,十进制为0到1023)。这和参考电压相关的,参考电压可以从外部提供,也可以使用内部参考电压,该参考电压可以进一步配置为1.5V和2.5V 2个可能值中的1个。

    内部参考电压若配置为2.5V。可以按照以下关系将ADC转换的结果关联回电源电压。

    VCC / 2 =(Nadc / 1024)* 2.5V

    为了在运行时消除额外的数学运算,执行数学简化将其转换为:

    VCC =(Nadc / 1024)* 2.5V * 2
    VCC =(Nadc / 512)* 2.5V

    代码中没有处理小数点,而是将所有内容任意乘以10以消除它,从而得到上面所看到的结果。

    VCC =(Nadc / 512)* 25

     

  • ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE + REF2_5V; SREF_1 是对应 001 VR+= VREF+和VR-= VSS ,Vr-怎么变成0呢
    Nadc=1023*(Vin-Vr-)/(Vr+----Vr-) ,这是手册里的公式,ref+选的是2.5V,REF-选的是Vss , 按照这个公式对不上VCC / 2 =(Nadc / 1024)* 2.5V,除2可以不管,
  • #define SREF_1                 (1*0x2000u)    /* VR+ = VREF+ and VR- = AVSS */

    在数据手册中