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

怎样配置MSP432E401Y的ADC的最高采集速度

我通过数据手册了解到MSP432E401Y的ADC采集最高速率为2M,但我使用ADC+UDMA+TIM触发的配置时速率始终上不去,提高触发频率时,采样的波形变得很奇怪,如采样正弦波时,显示的波形为一段连续的正常波形后跳变到另一端连续的正常波形,如果我想提高采样频率,我该怎么配置

void ADC_UDMAInit()
{MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);MAP_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_0);MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);MAP_ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END);MAP_ADCSequenceConfigure(ADC0_BASE, 3, ADC_TRIGGER_TIMER, 2);MAP_ADCIntClearEx(ADC0_BASE, ADC_INT_DMA_SS3);MAP_ADCIntEnableEx(ADC0_BASE, ADC_INT_DMA_SS3);MAP_ADCSequenceDMAEnable(ADC0_BASE, 3);MAP_ADCSequenceEnable(ADC0_BASE, 3);MAP_IntEnable(INT_ADC0SS3);ADC0->SSTSH0 = 0x0;MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA);//使能DMA外设MAP_uDMAEnable();MAP_uDMAControlBaseSet(pui8ControlTable);MAP_uDMAChannelAssign(UDMA_CH17_ADC0_3);//为DMA分配外围映射//UDMA_ATTR_USEBURST失能仅使用突发模式,UDMA_ATTR_ALTSELECT失能选择备用控制结构//UDMA_ATTR_HIGH_PRIORITY失能将其通道设为高优先级,UDMA_ATTR_REQMASK失能屏蔽该通道外围设备的硬件请求信号。MAP_uDMAChannelAttributeDisable(UDMA_CH17_ADC0_3,UDMA_ATTR_ALTSELECT | UDMA_ATTR_USEBURST |UDMA_ATTR_HIGH_PRIORITY |UDMA_ATTR_REQMASK);//UDMA_PRI_SELECT使用主控制结构,//数据大小为16,源地址无增量,目标地址增量为16,仲裁数为1MAP_uDMAChannelControlSet(UDMA_CH17_ADC0_3 | UDMA_PRI_SELECT,UDMA_SIZE_16 | UDMA_SRC_INC_NONE | UDMA_DST_INC_16 |UDMA_ARB_1);//使用基础模式,sizeof(ADC_BUFF)/2为要传输的数据项的数量MAP_uDMAChannelTransferSet(UDMA_CH17_ADC0_3 | UDMA_PRI_SELECT,UDMA_MODE_BASIC,(void *)&ADC0->SSFIFO3, (void *)&ADC_BUFF,sizeof(ADC_BUFF)/2);MAP_uDMAChannelEnable(UDMA_CH17_ADC0_3);//通道使能MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);//使能定时器0外设MAP_TimerConfigure(TIMER0_BASE, TIMER_CFG_A_PERIODIC_UP);//配置定时器为半宽周期定时器MAP_TimerLoadSet(TIMER0_BASE, TIMER_A, (120000000/20000));//配置为定时器类型和装载值MAP_TimerADCEventSet(TIMER0_BASE, TIMER_ADC_TIMEOUT_A);//配置定时器作为ADC触发MAP_TimerControlTrigger(TIMER0_BASE, TIMER_A, true);//使能作为ADC触发MAP_TimerEnable(TIMER0_BASE, TIMER_A);//开启定时器
}

Susan Yang:

您可以参考下面的链接

e2e.ti.com/…/677767

user6378692:

回复 Susan Yang:

谢谢,这个链接给了我帮助,但是现在我遇到的主要问题是,当我调高ADC采样率时,采集的波形变成如下这样

我设置的采样率为100k,输入信号为1K的正弦波,为什么会有这种情况

Susan Yang:

回复 user6378692:

谢谢您的反馈!关于UDMA,您可以参考下面的代码以及链接

1373.dma_eusci_spi_loopback (1).c

 

Susan Yang:

回复 user6378692:

user6378692现在唯一想吐槽的就是CCS的debug,按了几次依旧调试失败。

能否请您详细说一下?看是否能帮到您

赞(0)
未经允许不得转载:TI中文支持网 » 怎样配置MSP432E401Y的ADC的最高采集速度
分享到: 更多 (0)