TI中文支持网
TI专业的中文技术问题搜集分享网站

连续采样ADC怎样通过DMA将数据传送到外部SRAM?

AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS;
 AdcRegs.ADCTRL3.bit.SMODE_SEL = 0x1; // Setup simultaneous sampling mode
 AdcRegs.ADCTRL1.bit.SEQ_CASC = 0x1; // Setup cascaded sequencer mode
 AdcRegs.ADCMAXCONV.all = 0x0007; // 8 double conv's (16 total)
 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup conv from ADCINA0 & ADCINB0
 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; // Setup conv from ADCINA1 & ADCINB1
 AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2; // Setup conv from ADCINA2 & ADCINB2
 AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x3; // Setup conv from ADCINA3 & ADCINB3
 AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x4; // Setup conv from ADCINA4 & ADCINB4
 AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x5; // Setup conv from ADCINA5 & ADCINB5
 AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x6; // Setup conv from ADCINA6 & ADCINB6
 AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x7; // Setup conv from ADCINA7 & ADCINB7

 AdcRegs.ADCTRL1.bit.CONT_RUN = 1;       // Setup continuous run
 //AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1;       // Enable Sequencer override feature

 AdcRegs.ADCCHSELSEQ1.all = 0x0;         // Initialize all ADC channel selects to A0
 AdcRegs.ADCCHSELSEQ2.all = 0x0;
 AdcRegs.ADCCHSELSEQ3.all = 0x0;
 AdcRegs.ADCCHSELSEQ4.all = 0x0;

 

DMADest   = &DMABuf1[0];              //Point DMA destination to the beginning of the array
 DMASource = &AdcMirror.ADCRESULT0;    //Point DMA source to ADC result register base
 DMACH1AddrConfig(DMADest,DMASource);

 DMACH1BurstConfig(3,1,1);
 DMACH1TransferConfig(9,1,0);

 DMACH1WrapConfig(1,0,0,1);
 DMACH1ModeConfig(DMA_SEQ1INT,PERINT_ENABLE,ONESHOT_DISABLE,CONT_DISABLE,SYNC_DISABLE,SYNC_SRC,
   OVRFLOW_DISABLE,SIXTEEN_BIT,CHINT_END,CHINT_ENABLE);

 StartDMACH1();

接下来的ADC启动?

Tony Chopper:

把DMABuf1[0]定义在外部地址空间不就可以了吗?

赞(0)
未经允许不得转载:TI中文支持网 » 连续采样ADC怎样通过DMA将数据传送到外部SRAM?
分享到: 更多 (0)