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.

MSP430AEF253的SD24位采样数据位数问题,高16位和低16位是有重叠的部分吗

Other Parts Discussed in Thread: TIDM-ENERGY-WATCHDOG

MSP430AEF253的SD24位采样数据位数问题,高16位和低16位是有重叠的部分吗?

1.如果按照手册里面写的是24位,可为什么手册里面又写15-30位的范围呢?

如上图那第一次采集的高16位是13到28,低位是0-15,那难道13-15位是重叠的吗?如果重叠那位数不变成了29位,请解答!

2.如果默认值采集高16位,输入端电压29mv,采集到的值乱七八糟,一直跳动,也不知道如何计算,是按16位计算,还是24位呢,2种我都试了结果也不是29mv.满量程600mv算的。请技术人员解答一下

  • void main(void)
    {
    volatile unsigned int i; // Use volatile to prevent removal
    // by compiler optimization

    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    _EINT();//开总中断
    SD24CTL = SD24REFON + SD24SSEL0; // 1.2V ref, SMCLK
    SD24CCTL1 |= SD24IE ; // Enable interrupt

    for (i = 0; i < 0x3600; i++); // Delay for 1.2V ref startup
    SD24CCTL1 |= SD24SC; // Set bit to start conversion
    __bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/ interrupts

    }
    #pragma vector=SD24_VECTOR
    __interrupt void SD24AISR(void)
    {
    static unsigned int index = 0;
    unsigned char i;
    long sum=0;
    switch (SD24IV)
    {
    case 2: // SD24MEM Overflow
    break;
    case 4: // SD24MEM0 IFG
    break;
    case 6: // SD24MEM1 IFG
    results[index++] = SD24MEM1; // Save CH2 results (clears IFG)
    if (index == Num_of_Results)
    {
    for(i=0;i<10;i++)sum+=results[i];
    Ch0Adc=(sum/10);
    index = 0;
    sum=0; // SET BREAKPOINT HERE
    }
    break;
    case 8: // SD24MEM2 IFG
    break;
    }
    }

    按例程里的修改成了采样A1.1,测量应该是29mv,可是采样的结果也是看不懂,34303*0.6/65536=0.314????按16位算怎么这个结果

  • Jing,

    1. 精度是24 BIT , 实际的有效位为大概16BIT;

    2. 你上面的是输出滤波器的位数, 这个和SD的设置相关;3

    3. 建议你参考我们的设计里的代码使用. 链接如下(有源代码):http://www.ti.com/tool/TIDM-ENERGY-WATCHDOG 

    4. 注意我们的是差分输入ADC, 量程的设置也需要和你应有相对符合。

  • 1.你说的有效位实际只有16位,也没有必要去做采集2次变成24位这种做法的必要咯?

  • 我准备选用

    MSP430AFE252IPW这款芯片,以前没用过MSP430,最近也看了资料,查到你用过该系列的芯片,2730122869我的qq,希望和你交流一下