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/LAUNCHXL-F280049C:F280049C

Guru**** 2589300 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/897057/ccs-launchxl-f280049c-f280049c

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

我有一个新项目、正在使用 F280049C LaunchPad。  我也不熟悉 C2000微控制器。  我的 ADC 测量有问题。  它始终返回4095作为原始 ADC 值(来自此函数- ADC_readResult (ADCBRESULT_base、ADC_SOC_NUMBER0);)。  当我测量一系列通道以及来自板载温度传感器的通道时、我会得到这种结果。

我的代码是基于 ADC_ex3_temp_sensensor 示例的位、该示例位于我的系统的 C2000 ware 文件夹(C:\ti\C2000Ware_2_00_00_02_Software\driverlib\f28004x\examples\ADC)。  此示例还会在每次运行时提供相同的值。 我查看了我的所有代码、但未找到原因。

温度测量的初始化代码如下:

/**< ADC 测量器件温度*/

SYSCTL_resetPeripheral (SYSCTL_PERIPH_RES_ADCB);
ADC_DisableConverter (ADCB_BASE);

/**<此示例中使用的中断被重新映射到此文件中的 ISR 函数。 *
interrupt_register (INT_ADCB1、&adcBIISR);

/**<将 VREF 设置为内部*/
ADC_setVREF (ADCB_BASE、ADC_reference_external、ADC_reference_3_3V);

/**<将 ADCCLK 分频器设置为/4 */
ADC_setPrescaler (ADCB_BASE、ADC_CLK_DIV_4_0);

/**<将脉冲位置设置为晚期*/
ADC_setInterruptPulseMode (ADCB_BASE、ADC_PULSE_END_of _CONV);

/**<启动 ADC、然后延迟1ms *
ADC_enableConverter (ADCB_BASE);

DEVICE_DELAY_US (1000);

/**<配置 ADCB 的 SOC */
/**<SOC0将转换引脚 C0、C1、C2、C3、其采样窗口为10个 SYSCLK 周期。 *
ADC_setupSOC (ADCB_BASE、ADC_SOC_NUMBER0、ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN14、45);

/**<设置 SOC1以设置中断1标志。 启用中断并使*/
/**<确保其标志已清除。 *
ADC_setInterruptSource (ADCB_BASE、ADC_INT_NUMBER1、ADC_SOC_NUMBER0);
ADC_enableInterrupt (ADCB_BASE、ADC_INT_NUMBER1);
ADC_clearInterruptStatus (ADCB_BASE、ADC_INT_NUMBER1);
ADC_enableContinuousMode (ADCB_BASE、ADC_INT_NUMBER1);

//
//启用温度传感器并为其加电500us
//
ASysCtl_enableTemperatureSensor();
DEVICE_DELAY_US (500);

INTERRUPT_ENABLE (INT_ADCB1);
ADC_setInterruptSOCtrigger (ADCB_BASE、ADC_SOC_NUMBER14、ADC_INT_SOC_TRIGGER_NONE);
ADC_forceSOC (ADCB_BASE、ADC_SOC_NUMBER0);

测量 ADC 通道序列的初始化代码如下:

/**<模块 c 上电压和电流的 ADC 测量值*

SYSCTL_resetPeripheral (SYSCTL_PERIPH_RES_ADCC);

ADC_DisableConverter (ADCC_BASE);

/**<将 VREF 设置为内部*/
ADC_setVREF (ADCC_BASE、ADC_reference_internal、ADC_reference_3_3V);

/**<将 ADCCLK 分频器设置为/4 */
ADC_setPrescaler (ADCC_BASE、ADC_CLK_DIV_4_0);

/**<将脉冲位置设置为晚期*/
ADC_setInterruptPulseMode (ADCC_BASE、ADC_PULSE_END_of _CONV);

/**<配置 ADCA 的 SOC */
/**<SOC0将转换引脚 C0、C1、C2、C3、C4、 C5、采样窗口为10个 SYSCLK 周期。 *
ADC_setupSOC (ADCC_BASE、ADC_SOC_NUMBER0、ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN0、10);
ADC_setupSOC (ADCC_BASE、ADC_SOC_number1、ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN1、10);
ADC_setupSOC (ADCC_BASE、ADC_SOC_number2、ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN2、10);
ADC_setupSOC (ADCC_BASE、ADC_SOC_Number3、ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN3、10);
ADC_setupSOC (ADCC_BASE、ADC_SOC_Number4、ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN4、10);
ADC_setupSOC (ADCC_BASE、ADC_SOC_Number5、ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN5、10);

ADC_setSOCPriPriority (ADCC_BASE、ADC_PRI_All_ROUND);

/**<设置 SOC1以设置中断1标志。 启用中断并使*/
/**<确保其标志已清除。 *
ADC_enableContinuousMode (ADCC_BASE、ADC_INT_NUMBER1);
ADC_setInterruptSource (ADCC_BASE、ADC_INT_NUMBER1、ADC_SOC_Number5);
ADC_clearInterruptStatus (ADCC_BASE、ADC_INT_NUMBER1);
ADC_enableInterrupt (ADCC_BASE、ADC_INT_NUMBER1);

/**<此示例中使用的中断被重新映射到此文件中的 ISR 函数。 *
interrupt_register (INT_ADCC1、&adcCIR);
INTERRUPT_ENABLE (INT_ADCC1);

ADC_setInterruptSOCtrigger (ADCC_BASE、ADC_SOC_Number5、ADC_INT_SOC_TRIGGER_NONE);

/**<启动 ADC、然后延迟1ms *
ADC_enableConverter (ADCC_BASE);

DEVICE_DELAY_US (1000);

ADC_forceSOC (ADCC_BASE、ADC_SOC_NUMBER0);
ADC_forceSOC (ADCC_BASE、ADC_SOC_number1);
ADC_forceSOC (ADCC_BASE、ADC_SOC_number2);
ADC_forceSOC (ADCC_BASE、ADC_SOC_Number3);
ADC_forceSOC (ADCC_BASE、ADC_SOC_Number4);
ADC_forceSOC (ADCC_BASE、ADC_SOC_Number5);

我还没有将我的硬件连接到 LaunchPad。

请注意问题可能是什么、解决方案是什么。

谢谢

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

    您好!

    ADC 基准引脚是否按照示例代码中的配置正确连接至3.3V?

    谢谢

    Vasudha

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

    我还建议访问 https://training.ti.com/c2000-mcu-device-workshops 并查看针对 F280049的专题讨论会。 ADC 以及一个出色的实验。

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

    Vasudha、您好!

    感谢你的答复。

    否、我没有将引脚连接到3.3V

    我已经这么做了、它工作得很好。

    对于 ADCC 模块上的其他 ADC 测量、一旦我禁用 ADCB 模块、它就能正常工作。

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

    您好!

    感谢您的回复。

    实际上、我已经完成了培训、但我会更详细地进行介绍。  我还完成了 ADC 外设的实验8。

    谢谢