打印

{求助帖}MSP430如何提高AD采样频率

[复制链接]
1473|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gjun027|  楼主 | 2011-6-6 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个问题请教下大家,msp430怎么样提高AD采样频率,datesheet上说最高可达200kps,但是我做出来4k左右就失真了。有知道的提供点线索吧,谢谢,端午节快乐

我分别试过用timer_A触发ADC12,和软件ADC12SC位控制触发,但是结果都差不多,采样都很低。晶振有个32k的,还有个8m的,我使用的应该是DCO倍频以后的频率作为MCLK=SMCLK=32*32k~=1M.

相关帖子

沙发
gjun027|  楼主 | 2011-6-6 22:44 | 只看该作者
下面是源程序:
#include  <msp430xG43x.h>

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  ADC12CTL0 = SHT0_2 + ADC12ON;             // Set sampling time, turn on ADC12
  ADC12CTL1 = SHP+ADC12SSEL_3;                    // Use sampling timer,ADC12clok=smclk;
  ADC12IE = 0x01;                           // Enable interrupt
  ADC12CTL0 |= ENC;                         // Conversion enabled
  P6SEL |= 0x20;                            // P6.0 ADC option select
  P3DIR |= 0xb0;                            // P5.1 output
   P3OUT = 0x00;
   
  DAC12_0CTL = DAC12IR + DAC12AMP_2;        // Internal ref gain 1  
  DAC12_0CTL |= DAC12ENC;                   // 使能dac


  for (;;)
  {
    ADC12CTL0 |= ADC12SC;                   // Sampling open
    _BIS_SR(CPUOFF + GIE);                  // LPM0, ADC12_ISR will force exit
  }
}

//ADC12 interrupt service routine
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR (void)
{
    DAC12_0DAT = ADC12MEM0;
     _BIC_SR_IRQ(CPUOFF);

}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

21

帖子

1

粉丝