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/MSP430FR5857:通过针对通道序列触发的计时器进行 ADC 采样不能正常工作

Guru**** 2507255 points
Other Parts Discussed in Thread: MSP430FR5857

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/858580/ccs-msp430fr5857-adc-sampling-by-timer-triggered-for-sequence-of-channels-are-not-working-properly

器件型号:MSP430FR5857

工具/软件:Code Composer Studio

尊敬的先生/女士:

我将 MSP430FR5857微控制器用于我的应用。 我感应交流电压感应、交流电流感应和 PWM 信号,这些信号分别由微控制器本身 在通道 A1、A2、A3上生成。 我已对通道序列模式中的所有三个通道使用相同的 PWM 信号计时器来进行 ADC 采样、甚至尝试了通道模式的重复序列、但未正确获取所有三个通道的 ADC 值。甚至是我在单次重复 序列中看到的示例代码 通道模式,但没有什么大的帮助。

我在下面给出了我的 ADC 配置和计时器配置,同样的计时器也用于生成中断以读取所有这些值。

   ADC12CTL0=ADC12SHT0_0 | ADC12ON | ADC12MSC   ;
   ADC12CTL1=ADC12SH_1 | ADC12SHP | ADC12CONSEQ_1 |ADC12SSEL_3 ;
   ADC12MCTL0 |= ADC12INCH_3;
   ADC12MCTL1 |= ADC12INCH_2;
   ADC12MCTL2 |= ADC12INCH_1 | ADC12EOS;
   ADC12CTL0 |= ADC12SC | ADC12ENC;

计时器配置

   TA0CCR0 = 16000; //设置定时器周期
    TA0CCTL1 = OUTMOD_3; //设置输出模式复位/置位
    TA0CCR1 = 11734;

   TA0CCTL0 =CCIE;

   TA0CTL = tassel_SMCLK | MC__UP

请尽快回复。 我将等待您的回复。

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

    在 CONSEQ=1和 SH>0的情况下,您需要在每个序列结束时切换 ENC (低电平然后高电平),以允许下一个触发器/序列发生。 [参考 UG (SLAU367O)秒 34.2.8.2]

    您还需要设置 P1SELx。[1-3]=0b11、以便从引脚获取合理的读数。 [参考 DS (SLASE34E)表6-48/49]

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

    我已经切换了 ENC,但是这仍然没有给出正确的值, 后来 ADC12SHT0_0我更改为 ADC12SHT0_4,这意味着采样保持周期是64个时钟周期,然后我得到了正确的值。

    但我还是没有获得如何实现的重复通道序列?

    P1SELx。[1-3]=0b11这些位我在端口初始化时配置

    希望您能尽快回复

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

    用户指南(SLAU367O)第34.2.6.3节中有一个公式用于估算适当的 SHT0时间。

    使用 CONSEQ=3请求"重复通道序列"模式[参考 UG 第34.2.8.4]节。 根据您所说的内容、此模式不会为您提供所需的内容。