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.

[参考译文] MSP430FG6626:具有内部基准的 ctsd16输入电压范围

Guru**** 2524550 points
Other Parts Discussed in Thread: MSP430FG6626

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/652945/msp430fg6626-ctsd16-input-voltage-range-with-internal-refernce

器件型号:MSP430FG6626

我使用 msp430fg6626、因为 ADC 模块是具有内部基准电压(Vref=1.16V)的 ctsd16、其中差分通道的输入电压范围为-VR/增益至+VR/增益。

因此、根据我对偏移二进      制的理解、当增益= 1时、最小电压-Vfsr 为-VR/GAIN=-1.16V/1=-1.16V、由此得出 CTSD16MEM0=0x0000、最大电压+Vfsr 为+VR/GAIN=1.16V/1=1.16V、从而得出 CTSD16MEM0=0xFFFF。

但是、对于 -0.6V、我得到 CTSD16MEM0 = 0x0000; 对于+0.6V、我得到 CTSD16MEM0 = 0xFFFF。

有人能帮我解释为什么我会获得这些价值观吗?

请参阅以下代码以供您参考。

#include
#include

#include

/**
* main.c
*

uint32_t adccount1;

int main()


WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

P6SEL |= BIT4 | BIC5;//将 P6.4、P6.5设置为 AD0+、AD0-

CTSD16CTL |= CTSD16REFS;//选择内部基准
CTSD16CCTL0 |= CTSD16SC | CTSD16OSR_256 | CTSD16SNGL;//开始转换、OSR = 256、单次转换
CTSD16INCTL0 |= CTSD16GAIN_1 | CTSD16INCH_9;//通道选择 AD0+/ AD0-
CTSD16IE |= CTSD16IE0;//启用中断


_enable_interrupt ();

for (;;)

CTSD16CCTL0 |= CTSD16SC;
DisplayNumber (adccount1);

#pragma vector=CTSD16_vector

_interrupt void CTSD16_ISR (void)

开关(CTSD16IV)
案例4:

adccount1 = CTSD16MEM0;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请尝试通过设置 CTSD16INCTL0寄存器的 CTSD16RRI 位来启用轨到轨输入。

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

    您好!

    Ryan Brown1感谢您的回复。

    我通过设置 CTSD16INCTL0的 CTSD16RRI 位尝试了轨到轨输入、但仍然显示了 CTSD16MEM0  = 0x0000 (对于-0.6V)和 CTSD16MEM0 = 0xFFFF (对于+0.6V)的相同行为。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经解决了问题、因为我发现我错误地将端口5.0重新分配为 LCD 初始化函数内的数字 I/O。
    void init_lcd()

    LCDBCTL0 = LCDON + LCD4MUX + LCDPRE_4 + LCDDIV_7;// LCD ON、MUX4、ACLK/128
    LCDBPCTL0 = 0x3FFF; //在0-13上显示 LCD 段
    P5SEL = 0x38; //设置 LCD P5.3/COM1、P5.4/COM2、P5.5/COM3的 COM 引脚


    最后一行应该是
    P5SEL |= 0x38; //设置 LCD P5.3/COM1、P5.4/COM2、P5.5/COM3的 COM 引脚

    感谢您的支持。