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 缓冲基准:VRSEL=0001b ->VR+= VREF 缓冲、VR-=AVSS

Guru**** 2538930 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/568343/msp430fr58891-adc-buffered-reference-vrsel-0001b---vr-vref-buffered-vr--avss

器件型号:MSP430FR58891

我正在读取单个序列中的16个模拟通道。 使用 ADC12MCTLx 寄存器。 建议使用缓冲基准、VRSEL = 0001b (VR+= VREF 缓冲、VR-= AVSS)。 我对第一个通道执行了此操作、但将剩余的15个通道留给了非缓冲、VRSEL = 0010b、因为我担心文档会警告您仅使用缓冲器 REF 一次??? 我可以对所有模拟输入使用缓冲 REF 吗?  

void ADC10_Initialize (void)

P9SEL1 = 0xff;// A8 - A15 58891数据表第114页
P9SEL0 = 0xff;
P1SEL0 = 0x0F;// A0 - A3 58891数据页93
P1SEL1 = 0x0F;

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

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

while (REFCTL0 & REFGENBUSY){dummy++;}//等待 REF 模块

ADC12CTL0_bit.ADC12SC = 0;//无采样 n 转换启动
ADC12CTL0_bit.ADC12ENC = 0;//禁用转换


ADC12CTL0 = 0x4490;//S&HTime 3=>64 ADC12CLK、ADC12ON=1、MSC=1序列模式

REFCTL0 = 0x0061;// Genot=1、VSEL=2.5V、REFON=1

ADC12CTL1 = 0x02FA;// ClkDiv=8、SHP=1、SHS=000 ADC12SC 位、
                    // ClkSel=11 SMCLK,CONSEQ=00单通道
ADC12CTL2 = 0x0010;// RES = 10位
ADC12CTL3 = 0x0000;// StartAddx=0在 Chnl 0上的起始序列


ADC12MCTL0 = 0x0100;// Chanl A0 VRSEL=0001b -> VR+= VREF 缓冲、VR-=AVSS

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

// ADC12IER0 = 0x0001;//仅中断使能:A0
ADC12IER0 = 0x0000;//中断使能:A15-A0
ADC12IER0 = ADC12IE15;//仅中断使能:A15

ADC12IER1 = 0x0000;//中断使能:A31-A16
ADC12IER2 = 0x0000;//中断使能:RDY、TOV、OV、HI、LO、 在中

ADC12IFGR0 = 0x0000;//中断标志:A15-A0
ADC12IFGR1 = 0x0000;//中断标志:A31-A16
ADC12IFGR2 = 0x0000;//中断标志:RDY、TOV、OV、HI、LO、 在中

ADC_DONE_FLAG=0;
ADC12CTL0 |= ADC12ENC | ADC12SC;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gary、

    我在文档中没有看到任何地方说 REF 缓冲器只能使用一次。 您能告诉我您在哪里看到这种情况吗?

    我在文档中看到的是、只有一个 REF 缓冲器、但该缓冲器可用于所有通道、但您不能同时用于 VR+和 VR-、只能用于一个通道或另一个通道。

    此致、
    Caleb Overbay
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉,我的错。 感谢你的帮助。 我不知道如何解释-只使用一次。