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

请教MSP430F42516位AD的问题

使用425十六位AD采样,用A0口,A0-接地,参照例程,

ORG               0c000h                     ; Program Start
;——————————————————————————
RESET          mov.w         #400h,SP                ; Initialize stackpointer
StopWDT      mov.w         #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupFLL     bis.b            #XCAP14PF,&FLL_CTL0 ; Configure load caps
mov.w           #10000,R15 ;
Xtal_Wait      dec.w           R15 ;                                 Delay for 32 kHz crystal to
                       jnz               Xtal_Wait                          ; stabilize
SetupSD16  mov.w        #SD16REFON+SD16SSEL0,&SD16CTL ; 1.2V ref, SMCLK
                       bis.w          #SD16SNGL,&SD16CCTL0 ; Single conversion
                       mov.w        #03600h,R15 ; Delay needed for 1.2V ref startup
L$1               dec.w         R15 ;
                      jnz              L$1 ;
Mainloop     bis.w          #SD16SC,&SD16CCTL0 ; Start conversion
testIFG         bit.w          #SD16IFG,&SD16CCTL0 ; Is conversion done?
                      jz                testIFG ; No, test again
                      mov.w      &SD16MEM0,R12 ; Yes, save conversion result

                     jmp            Mainloop ;

可是读出来的数和理论算出来的值不符,问题在哪,请赐教。另传感器使用1.2V基准供电,例如输入0.5V,AD值应为多少

Bruce Wei:

楼主你好!

1、关于MCU以及MCU相关的问题,建议到MCU版块提问;

2、请使用C语言进行编程,更多例程请使用MSP430ware,参考其中MSP430F425例程:

#include <msp430.h>

unsigned int 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 SD16CCTL2 |= SD16SNGL; // Single conv for (i = 0; i < 0x3600; i++); // Delay for 1.2V ref startup

while (1) { SD16CCTL2 |= SD16SC; // Set bit to start conversion while ((SD16CCTL2 & SD16IFG)==0); // Poll interrupt flag for CH2 results = SD16MEM2; // Save CH2 results (clears IFG) _NOP(); // SET BREAKPOINT HERE }}

3、AD值取决于数据格式方式,是offset还是bipolar,更多请参考MSP430X4XX famaly user guide

Coffee Ge73:

帮你把问题转到MCU版块,这边的工程师应该更了解。

Lina Lian:

BEIER YANG,

关于SD16MEMx的值和输入的对应关系,可以参考user guide中的下图,另外还需考虑是将SD16用作差分输入还是单端输入。当选择1.2V作为参考源时,用作单端输入,可测0~1.2V/GAIN;用作差分输入时,可测-0.6V/GAIN~0.6V/GAIN

Wei Carl:

回复 Lina Lian:

您好,我想问一下,对于MSP430F478的的SD16_A,外部参考Vref可否直接接到Vcc(3.3V),如果可以的话,它的可检测的输入电压信号范围是多少?0~3.3V还是0~1.65V呢?如果我要检测的信号是5V,那么需要如何处理呢?谢谢~~

赞(0)
未经允许不得转载:TI中文支持网 » 请教MSP430F42516位AD的问题
分享到: 更多 (0)