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/MSP430F5438A:具有定时器A的ADC12配置

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/573348/ccs-msp430f5438a-adc12-configuration-with-timer-a

部件号:MSP430F5438A

工具/软件:Code Composer Studio

您好,

我对定时器A触发的ADC12采样时间的设置方式非常困惑。我不理解ADC12SHT0x寄存器是如何工作的,以及它与定时器时间的关系。

我的代码的目标是从5个ADC通道获取5个不同的信号。 采样时间为1毫秒。  

我有不同的问题:

1.-计算1 kHz的ADCCLK周期,ADC12的频率应配置为3.2768万 Hz? 使用其他值时,我无法获得有效值。 使用此频率 时,我有33个CLK周期。

2.-通过这种方式,我是否必须将ADC12SHT0x配置为ADC12SHT0_4(64个周期)?

3.-是否也应将计时器配置为计数1毫秒?

4.-在本论坛的其他帖子中,我读到了对TA1CCTL0进行编程的不同方式,有些人使用OUTMOD_4,而另一些人使用OUTMOD_3,这是配置它的最佳方式?

我尝试对这些外设的配置进行编程,以便ADC具有1毫秒的采样时间。  

代码是否低于合适的方式?

//定时器A初始
化void Timer_init (void)
{
	TA1CCR0 =33-1;							//设置为1ms
	TA1CCR0=0;
	TA1CTL = tassel_1 + MC_1 + TCLR; // aclk,upmode,clear TAR
	TA1CCTL0=OUTMOD_4;
}//



ADC12 Initialization
void ADC12_init (void)
{//
	ADC12 on,S&H 64个周期,多个转换
	ADC12CTL0=ADC12ON+ADC12ON+ADC12MSC12_4+ADC1220;

	//ADC12定时器,ADC12CL=ADC1221,
	ADC1220通道,ADC1221,ADC12通道的12通道的12通道的12通道数,ADC12CL=ADC12CL=ADC1221,ADC12通道的12
	


	

	//通道= A7
	ADC12MCTL1 = ADC12INCH_12; //通道= A12
	ADC12MCTL2 = ADC12INCH_13; //通道= A13
	ADC12MCTL2 = ADC12INCH_14; //通道= A14
	ADC12MCTL3 = ADC12INCH_15+ADC12EOS; // Channel = A15,End seq.

	ADC12CTL0|=ADC12ENC;	// Enable conversion
}(通道= A15,结束序列ADC12CTL0|=ADC12ENC;//启用转换) 

提前感谢。

此致,  

米格尔

 

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

    Miguel,您好!

    让我们从触发ADC转换的选项开始。 此转换由SHI (采样和保持输入)信号的上升沿启动。 如 用户指南中的图28-1所示,有三个计时器源以及ADC12SC可用于SHI。 计时器的OUTMOD设置确实取决于计时器的模式以及ADC12ISSH位是否启用(反转SHI信号源的极性)。

    假设您要使用Timer_A触发SHI。 在扩展采样模式中(请参阅 用户指南中的28.2 .5.1 一节),Timer_A发出的SHI信号也控制SAMPCON,它直接控制采样周期的长度。 在脉冲采样模式下(请参阅28.2 用户指南中的SAMPCON. 5.2 一节),Timer_A发出的SHI信号将触发SHI,这将打开。 但是,此处的最大区别是,此模式中的SAMPCON由ADC12SHTx位定义,该位以ADC12CLK的4倍速指定采样时间。 ADC12SHT0x选择ADC12MCTL0到ADC12MCTL7的采样时间。 ADC12SHT1x选择ADC12MCTL8至ADC12MCTL15的采样时间。

    我建议您查看 《用户指南 》中的图28-4和28-5,以便轻松比较这些模式。

    此致,

    詹姆斯

    MSP客户应用程序

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

    您好,James:

    很抱歉 回答太慢。

    此信息对我更有用。 但是,如果我想使用“脉冲采样模式”模式,如何获得配置SHT0x寄存器所需的周期?

    此致,  

    米格尔

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

    没问题。 首先,您需要考虑采样时间。 要计算所需的采样时间,请参阅用户指南中的28.2 .5.3 一节。 然后,使用此值,您将需要根据ADC12CLK频率(由其来源及其分割方式决定)设置SHT0x寄存器。 正如我前面提到的,SHT0x寄存器中的每个位等于ADC12CLK频率的4倍。

    例如,假设您需要大于1毫秒的采样时间。 假设ADC12CLK频率为100 kHz,其周期为1 / 10万 Hz,等于10 us。 因此,您可能希望将SHT0x设置为0x6 (0110b),这是128 ADC12CLK周期的延迟,或者128 * 10 us等于1.28 ms (大于1 ms的采样时间)。



    这是否合理?

    此致,

    詹姆斯

    MSP客户应用程序

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

    非常感谢,我所有的疑虑都是为了ADC的结果。

    计时器,UART和ADC的频率之间是否存在一定的频率差异?

    此致,

    米格尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    UART不应影响Timer_A和ADC配置,除非您的波特率太快,以至于无法在命令之间进行足够快的采样等。显然,提供ADC12CLK的时钟模块需要比用于触发SHI位的计时器快得多。

    此致,

    詹姆斯

    MSP客户应用程序