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.

[参考译文] MSP430FG6426:MSP430FG6426 ADC 工作正常

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/691425/msp430fg6426-msp430fg6426-adc-working

器件型号:MSP430FG6426

您好!

我尝试使用 MSP430FG6426的 ADC 、即 CTSD16。 我在 CTSD16MEM0中获得一些读数。 但是、它不是与输入电压对应的十进制值。 在这里、我使用了内部基准电压、即1.16V。 因此、我了解范围将从-1.16到1.16、阶跃为65535、因为它是16位 ADC。 如果有问题、请更正。 如果我禁用输入基准电压、则默认基准电压将为3V

2.我对连接不太确定。 我是否可以通过将电压电源的接地端连接到 AVSS 来提供浮动电压电源。 但是、我这样做会在 ADC 缓冲器中得到一个垃圾值。 我是否必须使用与控制器具有相同 Vcc 和 GND 的电位器

3.我已经参考了用户指南,但它使我更加困惑。 我只需要为项目使用单端 ADC 输入。 您对这些连接是否有任何建议。 我还知道用于 ADC 的公式。

(ADC 值/VIN=653/Vref。) 。 如果有其他问题、请告诉我。  

请提供有关此方面的信息。

谢谢、

Veena

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

    您好、Veena、

    1. 请参阅第30.2.7.2节以了解有关此内容的信息。 您的输出将取决于 过采样率。
    2. 请您澄清一下您所指的电压电源是什么? ADC 应由与 MSP430相同的电源供电。 您是否在讨论电压基准?
    3. 该器件的产品页面上提供了示例代码、可通过显示一些示例配置帮助您快速入门。

    此致、

    Nathan

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

    感谢您的回答。

    我确实使用了代码。 msp430fg662x_ctsd16_05.c。 但是、它仍在提供缓冲区中的垃圾值。 不确定我会出现什么问题。

    是否可以共享联系人详细信息。 沟通问题变得更加容易。

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

    您好、Nathan、

    我当前使用"msp430fg662x_ctsd16_04.c"测试代码进行测试。 此外、我还提供了介于0至600mV 至 P6.4和零至 P6.5之间的输入电压。 内部参考电压为1.16V。 根据 ADC 的计算、ADC 值/Vin=656/Vref。 假设我提供的 P6.4=500mV、P6.5=0伏。 对于 偏移位数据格式、我不应接收 ADC 值、即 ADC 值=(656/Vref)* Vin、即 ADC 值=(656/1.16)*。6= 33897.41。 但是、当我从 CTSD16MEM0读取该值时、它是27800。 此外、ADC 转换永远不会保持稳定。 我不确定我在这里做什么错了。

    2.您能不能就向 ADC 提供输入的正确方式提供建议。 或选择基准 电压。 以下测试代码的预期结果是什么?

    此外、手册还说明"满量程范围是由 VFSR+=+VR/增益和 VFSR-=-VR/增益定义的;FSR = VFSR+- VFSR-= 2xVR/增益定义的。 如果 VR 由外部提供、则模拟输入范围不应超过 VFSR+或 VFSR-的80%;即 VID = 0.8 VFSR-至0.8 VFSR+。 如果 VR 由内部提供、则适用给定的 VID 范围。"  我完全不理解这个计算。 我是否必须设置 ADC 的增益? 以下代码没有任何位可设置增益。  

    #include  

    unsigned int 结果;// CTSD16转换结果

    void main (void){
    WDTCTL = WDTPW | WDTHOLD;//停止 WDT

    P6SEL |= BIT4 | BIC5;//选择 AD0+/-模拟输入引脚
    // P5OUT |= BIT3;

    CTSD16CTL = CTSD16REFS;//内部参考
    // CTSD16CCTL0 |= CTSD16SNGL | CTSD16DF;//单个样本、二进制补码
    CTSD16INCTL0 |= CTSD16INCH_9;//为 CH1选择 AD0+/ AD0-

    __DELAY_CYCLES (2000);//延迟~120us,1.2V 基准电压稳定

    while (1){
    CTSD16CCTL0 |= CTSD16SC;//将位设置为开始转换
    while (!(CTSD16IFG & CTSD16IFG));//轮询 IFG 直到转换完成
    结果= CTSD16MEM0;//保存 CTSD16转换结果
    // P5OUT = CTSD16MEM0;
    __no_operation();//在此设置断点

    提前感谢。  

    此致、

    Veena

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

    您好、 Veena、

    即 CTSD16

    1."如果我禁用输入基准电压、则默认基准电压将为3伏"。 如果禁用内部基准、则情况并非如此、CTSD16不会获得任何基准电压。

    2.您只需将电路板上的接地端连接到 ADC 输入电压的接地端。

    3.如果您想使用单端 ADC 输入、您仍然可以使用差分通道并将外部输入的接地端连接到通道的负极部分、或者直接使用单端输入通道。

    此致、

    Sanjeev

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

    您好、 Veena、

    使用  "msp430fg662x_ctsd16_04.c"时,应用 P6.4=500mV 和 P6.5=0伏特 ADC 值,对于偏移二进制输出,您将得到 CTSD16MEM0,即 CTSD16MEM0  ={(Vin * 32768)/1.16}+ 32776,这样您的情况 Vin = 32768M0 + 32768M0 = 32768M0*+32768 0*

    2.提供 ADC 电压并确保两者具有相同的接地(将 ADC 电压输入的接地端连接到您所使用的电路板上的电源接地端)。

    3. 如果您需要为 ADC 信号的输入电压提供增益,则只需设置增益即可。 增益可在 CTSD16INCTL0寄存器中设置。 除法增益= 1。 因此、您应该在公式中使用增益= 1来计算 VFSR。

    此致、

    Sanjeev

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

    您好 Sanjeev、

    非常感谢您的回答。 我将再次根据您的指导原则执行测量。  

    谢谢、此致、

    Veena