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/MSP430FR5969:MSP430 ADC12 -在 ADC 输入端生成信号

Guru**** 2589300 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/627250/ccs-msp430fr5969-msp430-adc12---generates-signal-on-adc-input

器件型号:MSP430FR5969

工具/软件:Code Composer Studio

你(们)好。

我尝试在重复通道序列模式下设置 ADC 转换。 首先、它看起来工作正常、但在重新启动后、它会接线。 这些值出错了、似乎会被占用(即使 LSB 也不会改变)。 一个通道最终达到饱和。

因此、我用示波器来查看通道上的内容。 除了预期的电压、还有一个不错的矩形脉冲。

如果操作正确、线路上没有脉冲。

ADC12CTL0 &=~ADC12ENC; 

PxSEL1 |=设置一些引脚
PxSEL0 |=设置一些引脚
while (REFCTL0和 REFGENBUSY); //如果参考生成器忙,请等待 REFCTL0 |= REFVSEL_3 | REFON; //选择内部基准= 2.5V //内部基准打开 ADC12CTL0 = ADC12SHT0_10 | ADC12SHT1_10 | ADC12ON | ADC12MSC; ADC12CTL1 = ADC12PDIV__64 | ADC12DIV_7 | ADC12SHP | ADC12CONSEQ_3 | ADC12SSEL_3; ADC12MCTL0 = ADC12VRSEL_1 | ADC12INCH_0;// A0;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL1 = ADC12VRSEL_1 | ADC12INCH_2;// A2;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL2 = ADC12VRSEL_1 | ADC12INCH_3;// A3;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL3 = ADC12VRSEL_1 | ADC12INCH_4;// A4;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL4 = ADC12VRSEL_1 | ADC12INCH_6;// A6;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL5 = ADC12VRSEL_1 | ADC12INCH_7;// A7;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL6 = ADC12VRSEL_1 | ADC12INCH_8;// A8;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL7 = ADC12VRSEL_1 | ADC12INCH_9;// A9;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL8 = ADC12VRSEL_1 | ADC12INCH_10;// A10;VR+= VREF 缓冲、VR-= AVSS ADC12MCTL9 = ADC12VRSEL_1 | ADC12INCH_11;// A11;VR+= VREF 缓冲、VR-= AVSS //启用片上温度传感器 ADC12CTL3 |= ADC12TCMAP; ADC12MCTL10 = ADC12VRSEL_1 | 0x1E; ADC12MCTL10 |= ADC12EOS; //序列结束 while (!(REFCTL0 & REFGENRDY)); //等待基准发生器 //稳定 ADC12IER0 = ADC12IE10; ADC12IFGR0 = 0; ADC12CTL0 |= ADC12ENC | ADC12SC; //采样和转换开始

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

    除了时钟分频外、您的设置代码看起来是正确的。 您将 ADC 输入时钟除以8 * 64 = 512。 即使 SMCLK 为16MHz、这仍然是运行 ADC 所需的相对较低的时钟频率。 这是目的吗?

    此外、您在什么硬件上运行此功能? 如果您能提供重现问题的最小代码版本以及有关如何逐步重新创建问题的说明、我会很高兴、这样我就可以在我的设置中测试这一点。

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

    您是否能够解决此问题? 如果是、您能否将解决方案发布到论坛、以供可能遇到类似问题的其他人使用?

    此致、
    Caleb Overbay