TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] CCS/TM4C1294NCPDT:通道2和通道3的不同 ADC 不工作、只有 CH0和 CH1工作、否则其他通道不工作

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/923507/ccs-tm4c1294ncpdt-different-adc-for-channel-2-and-channel-3-not-working-only-ch0-and-ch1-are-working-else-other-channel-not-working

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

HII

我已经编写了代码来读取不同的 ADC 通道。

通道0和通道1的连接

PE3-AIN0-连接到外部电压

PE2-AIN1----短接 launchpad GND

外部电压接地与 launchad GND 短接

无论我施加到 AIN0上的电压是多少、我都会得到相同的电压、但当我在通道2和通道3上进行相同的连接时、它将无法正常工作

PE1-AIN2--连接到外部电压

PE0-AIN3--与 Launchpad GND 短接

以下代码我曾尝试过一次、如果我做了任何错误、请告知我

void DifferentialADCInit()

SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);

SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);

GPIOPinTypeADC (GPIO_PORTD_base、GPIO_PIN_6 | GPIO_PIN_7);  

ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_PROCESSOR、0);

ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH2 | ADC_CTL_D | ADC_CTL_IE | ADC_CTL_END);

ADCSequenceEnable (ADC0_BASE、3);

void DifferentialADCRead()


ADCIntClear (ADC0_BASE、3);
ADCProcessorTrigger (ADC0_BASE、3);
while (!ADCIntStatus (ADC0_BASE、3、false));
ADCSequenceDataGet (ADC0_BASE、3、Diff_Read);

DIFF_OUT1 =((Diff 读取[0]-2048)*3.3)/2048.0;

int main (空)

ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
DifferentialADCInit();

while (1)

DifferentialADCRead();
SysCtlDelay (4000000);

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

    您好!

     您编写了以下代码来为 ADC 配置 PD6和 PD7。 PD6和 PD7对应于 AIN5和 AIN4。 如果要使用 AIN2和 AIN3、则需要更改为 PE1和 PE0。  

    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);

    GPIOPinTypeADC (GPIO_PORTD_base、GPIO_PIN_6 | GPIO_PIN_7);  

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

    HII Charles

    感谢您的回答。 我对通道2和通道3进行了相同的配置、以实现差分模式

    PE1-AIN2--连接到外部电压

    PE0-AIN3--与 Launchpad GND 短接

    GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_1 | GPIO_PIN_0);

    它不起作用。 然后、我尝试检查通道4和通道5 (AIN4、AIN5)、它也无法正常工作。

    PD7-AIN4连接到外部电压

    PD6-AIN5---与 Launchpad GND 短接

    只有 AIN0和 AIN1在差分模式下工作正常。

    我的要求是 在差分模式下读取三个 ADC 通道。

    请提供一些示例代码。

    谢谢、致以诚挚的谢意

    Anamika

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

    HII Charles

    下面是我尝试过的示例代码、它用于通道4和通道5、但它不起作用

    PD7-AIN4连接到外部电压

    PD6-AIN5---与 Launchpad GND 短接

    void DifferentialADCInit()

    SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);

    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);

    GPIOPinTypeADC (GPIO_PORTD_base、GPIO_PIN_6 | GPIO_PIN_7);  

    ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_PROCESSOR、0);

    ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH4 | ADC_CTL_D | ADC_CTL_IE | ADC_CTL_END);

    ADCSequenceEnable (ADC0_BASE、3);

    void DifferentialADCRead()


    ADCIntClear (ADC0_BASE、3);
    ADCProcessorTrigger (ADC0_BASE、3);
    while (!ADCIntStatus (ADC0_BASE、3、false));
    ADCSequenceDataGet (ADC0_BASE、3、Diff_Read);

    DIFF_OUT1 =((Diff 读取[0]-2048)*3.3)/2048.0;

    int main (空)


    ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
    DifferentialADCInit();

    while (1)

    DifferentialADCRead();
    SysCtlDelay (4000000);

    谢谢、致以诚挚的谢意

    Anamika

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

    您好!

     当您使用差分模式时、ADC_CTL_CH1表示对应于 AIN2和 AIN3的对1。 如果您想使用 AIN4和 AIN5、则将 ADC_CTL_CH2指定为对2。 您为 与 AIN8和 AIN9相对应的对4指定 ADC_CTL_CH4。

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

    HII Charles、

    感谢您的回答。 通过选择正确的通道对选择其工作方式、

    感谢您的建议。

    谢谢、致以诚挚的谢意

    Anamika