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.

MSP430FR58891: ADC Buffered Reference: VRSEL=0001b -> VR+ = VREF buffered, VR- =AVSS

Part Number: MSP430FR58891

I am reading 16 analog channels in a single sequence. using the ADC12MCTLx registers. I was advised to use the buffered reference, VRSEL = 0001b (VR+ = VREF buffered, VR- = AVSS). I did this for the first channel but left the remaining 15 left to unbuffered, VRSEL = 0010b, as I was concerned that the documentation warns about using the buffer REF only once??? Can I use buffered REF for all analog inputs? 

void ADC10_Initialize( void )
{
P9SEL1 = 0xff; // A8 - A15 58891 Data Sht p.114
P9SEL0 = 0xff;
P1SEL0 = 0x0f; // A0 - A3 58891 Data Sht p.93
P1SEL1 = 0x0f;

P1SEL1_bit.P1SEL1_0 = 1; // A0
P1SEL0_bit.P1SEL0_0 = 1;

while( ADC12CTL1 & ADC12BUSY ){dummy++;}

while( REFCTL0 & REFGENBUSY ){ dummy++;} // Wait for REF module

ADC12CTL0_bit.ADC12SC = 0; // No Sample-n-Conversion Start
ADC12CTL0_bit.ADC12ENC = 0; // Disable Conversion


ADC12CTL0 = 0x4490; //S&HTime 3=>64 ADC12CLKs, ADC12ON=1, MSC=1 Seq mode

REFCTL0 = 0x0061; // GENOT=1, VSEL=2.5V, REFON=1

ADC12CTL1 = 0x02FA; // ClkDiv=8, SHP=1, SHS=000 ADC12SC bit,
                                       // ClkSel=11 SMCLK, CONSEQ=00 Single Chnl
ADC12CTL2 = 0x0010; // RES = 10-bit
ADC12CTL3 = 0x0000; // StartAddx=0 Start Seq at Chnl 0


ADC12MCTL0 = 0x0100; // Chanl A0 VRSEL=0001b -> VR+ = VREF buffered, VR- =AVSS

ADC12MCTL1 = 0x0401; // Chanl A1
ADC12MCTL2 = 0x0402; // Chanl A2
ADC12MCTL3 = 0x0403; // Chanl A3
ADC12MCTL4 = 0x0404; // Chanl A4
ADC12MCTL5 = 0x0405; // Chanl A5
ADC12MCTL6 = 0x0406; // Chanl A6
ADC12MCTL7 = 0x0407; // Chanl A7
ADC12MCTL8 = 0x0408; // Chanl A8
ADC12MCTL9 = 0x0409; // Chanl A9
ADC12MCTL10 = 0x040A; // Chanl A10
ADC12MCTL11 = 0x040B; // Chanl A11
ADC12MCTL12 = 0x040C; // Chanl A12
ADC12MCTL13 = 0x040D; // Chanl A13
ADC12MCTL14 = 0x040E; // Chanl A14
ADC12MCTL15 = 0x048F; // Chanl A15 8=EOS - End of Sequence

// ADC12IER0 = 0x0001; // Interrupt Enables :A0 only
ADC12IER0 = 0x0000; // Interrupt Enables: A15-A0
ADC12IER0 = ADC12IE15; // Interrupt Enables :A15 only

ADC12IER1 = 0x0000; // Interrupt Enables: A31-A16
ADC12IER2 = 0x0000; // Interrupt Enables: RDY, TOV, OV, HI, LO, IN

ADC12IFGR0 = 0x0000; // Interrupt Flags: A15-A0
ADC12IFGR1 = 0x0000; // Interrupt Flags: A31-A16
ADC12IFGR2 = 0x0000; // Interrupt Flags: RDY, TOV, OV, HI, LO, IN

ADC_done_flag=0;
ADC12CTL0 |= ADC12ENC | ADC12SC;

}

**Attention** This is a public forum