打印

关于DSP的AD周期等知识求解答

[复制链接]
914|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhiqingdianzi|  楼主 | 2016-4-6 20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, DSP, dc, ADC, se
大家好。最近刚学到DSP2812的AD部分,学着AD有些不懂得的问题,请求给与开导。
1、AD的ADCLK也就是AD的时钟吧,这个和AD的转换周期是一样的吗?AD的转换周期是指一个通道的转换还是所有通道都转换完的周期?
2、AD的采样和AD的周期。采用频率,是啥意思。
3、AD进入中断一次的时间如何计算。
4、AD采样时候,在同一通道采用好几次,度数据时候需要延迟吗?延时时间如何计算】
这个程序的采用周期如何计算的
void Init_adc()
{

    int i;

    EALLOW;
    SysCtrlRegs.HISPCP.all = 0x05;    //预定标时钟
    // HSPCLK = SYSCLKOUT/ADC_MODCLK=100/(2*5)=10M  ADC的基准时钟
    EDIS;
    AdcRegs.ADCTRL1.bit.RESET=1;//使ADC模块复位
    delay_ms=5;
    while(delay_ms!=0);
    //adcclkps 内核时钟分频器,连续采样

    AdcRegs.ADCTRL3.all = 0x00E0;//0111 0000/  // Power up bandgap/reference/ADC circuit
    //ADCCRTL3 有采样方式选择,是第0位。0表示顺序采样
    //【1:4】ADCLKPS-内核时钟分频器 HSPCLK被2*ADCCLKPS分频,当为0时HSPCLK直接输出  8分频
    //ADCLK=HSPCLK/【16*(ADCTRL1[7]+1)】=10/1
    //[5]ADC电源控制。0表示除带隙和参考电路外的ADC其他模拟电路掉电

    delay_ms=5;
    while(delay_ms!=0);
    AdcRegs.ADCTRL1.bit.CPS=0;//内核时钟预定标器,对外设高速HSPCLK分频ADCLK=HSPCLK/CPS+1=10Mhz

    AdcRegs.ADCTRL1.bit.ACQ_PS = 0x03;  //采集窗口大小3,用于控制采样过程中SOC脉冲宽度SOC=(ACQ_PS+1)*ADCLK


    // Sequential mode: Sample rate   = 1/[(2+ACQ_PS)*ADC clock in ns]
    //                     = 1/(2+3) =HSPCLK/5 MHz//顺序采样10/5=2MHz====0.5um 采样频率
    // If Simultaneous mode enabled: Sample rate = 1/[(3+ACQ_PS)*ADC clock in ns]并发采样

    if(fren)       AdcRegs.ADCTRL3.bit.ADCCLKPS = 500/(unsigned char)fren;
    //级联方式seq1和seq2作为一个16状态序列发生器seq   
    AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;        // 1  Cascaded mode级联系列发生器工作方式
    //  AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;
    AdcRegs.ADCTRL1.bit.CONT_RUN = 1;       // Setup continuous run连续工作方式

    AdcRegs.ADCTRL1.bit.SEQ_OVRD = 0;       // Enable Sequencer override feature//不用关心

    if(soft_switch[DEBUG])//如果在诊断下就4个通道都采样
    {
        AdcRegs.ADCCHSELSEQ1.all = 0x09b8a;     // Initialize all ADC channel selects to A0
//选择八个通道                        0000 1001 1011 1000 1010
//                                           1   3    0     2
    }

    else //其他时候只有两个通道  A通道信号值和B通道信号值
    {
        AdcRegs.ADCCHSELSEQ1.all = 0x08a8a;//第四位为1时选择B通道采样
        //六个通道                 //0000 1000 1010 1000 1010
                                   //      0     2     0脚  2脚
    }
    AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x03;  // convert and store in 8 results registers最大转换通道

    AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;//seq1中断使能
    AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0; //中断方式,每个序列转换完结束时置位中断
    for (i=0; i<BUF_SIZE; i++)
    {
        SampleTableb0[i] = 0;
        SampleTableb1[i] = 0;
        SampleTableb2[i] = 0;
        SampleTableb3[i] = 0;

    }

    msg="\r\nInit adc OK!\r\n";
    buf_FIFO(&sci_send_fifo,msg,16);

}

相关帖子

沙发
zhangmangui| | 2016-4-6 22:32 | 只看该作者
时钟和转换周期不一样    时钟指这个外设配置的工作时钟
转换一次可能需要多个时钟   
进入中断的时间   与你在中断中要处理的事有关
同一通道  开始转换到转换完成后可以进行下一次转换   这就是采样率

使用特权

评论回复
板凳
zhangmangui| | 2016-4-6 22:32 | 只看该作者
时钟和转换周期不一样    时钟指这个外设配置的工作时钟
转换一次可能需要多个时钟   
进入中断的时间   与你在中断中要处理的事有关
同一通道  开始转换到转换完成后可以进行下一次转换   这就是采样率

使用特权

评论回复
地板
zhangmangui| | 2016-4-6 22:32 | 只看该作者
时钟和转换周期不一样    时钟指这个外设配置的工作时钟
转换一次可能需要多个时钟   
进入中断的时间   与你在中断中要处理的事有关
同一通道  开始转换到转换完成后可以进行下一次转换   这就是采样率

使用特权

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

本版积分规则

5

主题

27

帖子

0

粉丝