TI中文支持网
TI专业的中文技术问题搜集分享网站

msp430fe4252

在 2号和3号管脚接了一个传感器,如何使用I+,I-进行测量 ,如何配置

step by step:

楼主,

  你好,I+和I-接的就是内部的SD16 ADC的差分输入,就跟平时使用SD16 ADC一样使用,范例代码可以参考430ware里面的代码。

China jh:

回复 step by step:

SD16CTL = SD16REFON+SD16SSEL0; // 1.2V ref, SMCLK for (i = 0; i < 10000; i++); // Delay /////////////////

// SD16CCTL0 |= SD16GRP + SD16OSR_256 + SD16IE ;//控制寄存器0 组 连续模式 // SD16CCTL0 |= SD16SC;//开始转换信号 //SD16INCTL0 |= SD16INCH0 + SD16GAIN_1 + SD16INTDLY_0 ;//输入控制器0 选择输入通道0 //SD16CCTL0 |= SD16SC;

SD16INCTL1 = SD16INCH_0; SD16CCTL1|= SD16SNGL +SD16IE; SD16CCTL1 |= SD16SC;

我是这么配置的,传感器有信号时,SD16MEM0 SD16MEM1 得到的值不变,没有信号的时候也是一样的,我是单步运行的,请帮我看看是我的设置出错了吗

step by step:

回复 China jh:

楼主,

      请参考下面的代码,这是操作SD16的范例代码,连续ADC转换,而且你好像只使用了一个SD16吧,

          MSP430F427//             —————–//         /|\|              XIN|-//          | |                 | 32kHz//          –|RST          XOUT|-//            |                 |//    Vin+ –>|A2.0+            |//    Vin- –>|A2.0-            |//            |                 |//            |            VREF |—+//            |                 |   |//            |                 |  -+- 100nF//            |                 |  -+-//            |                 |   |//            |            AVss |—+//            |                 |////  H. Grewal//  Texas Instruments Inc.//  Feb 2005//  Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A//*****************************************************************************#include <msp430.h>

#define   Num_of_Results   8

/* Arrays to store SD16 conversion results *//* NOTE: arrays need to be global to       *//*       prevent removal by compiler       */static unsigned int results[Num_of_Results];

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

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT  FLL_CTL0 |= XCAP14PF;                     // Configure load caps  for (i = 0; i < 10000; i++);              // Delay for 32 kHz crystal to                                            // stabilize

  SD16CTL = SD16REFON+SD16SSEL0;            // 1.2V ref, SMCLK  SD16INCTL2 |= SD16INTDLY0;                // Interrupt on 3rd sample  SD16CCTL2 |= SD16IE ;                     // Enable interrupt  for (i = 0; i < 0x3600; i++);             // Delay for 1.2V ref startup

  _EINT();                                  // Enable general interrupts

  SD16CCTL2 |= SD16SC;                      // Set bit to start conversion  _BIS_SR(LPM0_bits);                       // Enter LPM0

}

#pragma vector=SD16_VECTOR__interrupt void SD16ISR(void){  static unsigned int index = 0;

  switch (SD16IV)  {  case 2:                                   // SD16MEM Overflow    break;  case 4:                                   // SD16MEM0 IFG    break;  case 6:                                   // SD16MEM1 IFG    break;  case 8:                                   // SD16MEM2 IFG    results[index] = SD16MEM2;              // Save CH2 results (clears IFG)

    if (++index == Num_of_Results)    {      index = 0;                            // SET BREAKPOINT HERE    }

    break;  }}

China jh:

回复 step by step:

step by step 你好!

我用的这个芯片 引脚功能 如上图,只有一个V-   V+通道和一个I+  I-通道,现在对I+ I-这个通道的操作不很理解,我也用例程改过,我之前发的就是用例程改的

step by step:

回复 China jh:

你好,

    I+和I-应该对应到的是SD16的通道0,所以配置的时候应该配置通道0对应的寄存器,其他的应该没有什么问题,就照的范例代码改就可以了。

China jh:

回复 step by step:

step by step  你好!我之前用官方的例程改了,单步运行的时候 V1+ V1- 

测得的值如图显示,很不稳定,在有稳定的电压测量的时候的值不是一个稳定的值,在一会是 0 一会是32756 一会是65535,没有电压源测量的时候也是一样的

step by step:

回复 China jh:

楼主,

   你用的哪个参考电压源?

China jh:

回复 step by step:

step by step  你好 ,使用的是内部的参考电压 1.2V

step by step:

回复 China jh:

楼主,

    如果方便的话能不能把你的代码发出来?

kqian0327:

你好,

你前端的传感器是用的什么传感器?

和MCU的连接是怎么样子的,可以把这一块的电路贴出来吗?

另外,你PCB的走线的线路图可以也一起贴出来吗?

赞(0)
未经允许不得转载:TI中文支持网 » msp430fe4252
分享到: 更多 (0)