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

DSP28335 ADC采样率及采样窗口的问题

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

mangui zhang:

ePWM触发ADC整体就是用途就是可以做到在PWM波的高电平时的某个阶段去采集AD值

确保PWM控制的模块的电压值达到一个稳定的状态后去采集

关于采样频率就直接与PWM波的频率有关了

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

Eric Ma:

如果用PWM的方式去启动ADC,假设使用PWM周期事件去启动ADC,那么PWM的频率就是采样率,即隔多久去采样启动ADC模块进行采样。

采样窗会影响的是采样保持到转换结果的时间。

Eric

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

zhu zhou:

回复 Eric Ma:

问题描述: 应用的平台是TMS320F28335; 应用其片内外设ADC对模拟信号进行采样处理; 使用方式: ADC使用级联方式,工作于启动/停止方式,SOC启动通过ePWM触发,片内ADC的工作时钟配置为1.171875MHz,采样窗大小为3个;其中配置源程序如下: AdcRegs.ADCTRL1.bit.RESET = 1; /* 复位片内ADC外设 */ AdcRegs.ADCTRL1.bit.SUSMOD = 0; /* 忽略仿真挂起 */ AdcRegs.ADCREFSEL.bit.REF_SEL = 0; /* 采用内部基准电压处理 */ AdcRegs.ADCTRL3.bit.ADCBGRFDN = 3; /* 能带隙电路和参考电路上电 */ DELAY_US(10000); AdcRegs.ADCTRL3.bit.ADCPWDN = 1; /* ADC内核中模拟电路上电 */ DELAY_US(2000); AdcRegs.ADCTRL1.bit.ACQ_PS = 2; /* SOC脉冲宽度为3ADCLK*/ AdcRegs.ADCTRL1.bit.CPS = 1; /* Fclk = HSPCLK/2 */ AdcRegs.ADCTRL1.bit.CONT_RUN = 1; /* 工作于启动-停止模式 */ AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; /* 工作于"级联模式" */ AdcRegs.ADCTRL3.bit.ADCCLKPS = 15; /* ADCLK = HSPCLK/ 15*2 */ AdcRegs.ADCTRL3.bit.SMODE_SEL = 0; /* 采用顺序采样模式采样 */ AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0; /* 4路采样,提高其精度 */ AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; /* ADCINA0作为第1路SEQ1序列 */ AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; /* 清除SEQ1中的中断标志位INT_SEQ1 */ AdcRegs.ADCST.bit.INT_SEQ2_CLR = 1; /* 清除SEQ2中的中断标志位INT_SEQ2 */ AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; /* 立即复位发生器到CONV00状态(手动) */ AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; /* 使能INT_SEQ1的中断请求 (every EOS) */ AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2 = 0; /* 禁止SEQ2的中断请求 */ AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1 = 0; /* 在每一个SEQ1序列结束时设置INT_SEQ1 */ AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;/* 由ePWM SOCA触发信号启动SEQ1 */ AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 0; /* 清除一个不确定的SOC触发 */****************************************************************************************其中ePWM则采用递增计数模式,直接产生方波信号进行处理运算,其配置如下: EALLOW; /* 在 InitSysCtrl()中已经将ePWM1的时钟进行了使能 */ /* 用来配置ADC的采样率 */ SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // Disable TBCLK within the ePWM /* ePWM1的相关配置,以供片内ADC的启动 */ EPwm1Regs.TBCTL.bit.CLKDIV = 0; EPwm1Regs.TBCTL.bit.HSPCLKDIV = 1; /* TBCLK = SYSCLK/2 = 75MHz*/ EPwm1Regs.ETSEL.bit.SOCAEN = 1; /* 使能ADC开始转换A脉冲,使能ePWMxSOCA脉冲 */ EPwm1Regs.ETSEL.bit.SOCASEL = 2;/* 使能,ePWMxSOCA脉冲当定时器递增时时间基准计数器等于CMPA */ EPwm1Regs.ETPS.bit.SOCAPRD = 1; /* 在第一个事件上生成ePWMxSOCA脉冲 */

EPwm1Regs.TBPRD = 0x493E; /* 设置时间基准计数器的周期,决定 PWM1的频率 */ EPwm1Regs.TBCTR = 0; /* 清空计数器 */ EPwm1Regs.TBCTL.bit.CTRMODE = 0; /* 设置计数器模式为递增计数模式 */ SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK within the ePWM EDIS; 按理讲,TBPRD的值是产生SOCA信号的关键,实际上当把ePWM用于自身中断时已经进行了试验,对其进行的是驱动IO口翻转处理,试验证明TBPRD的值能够实现周期计数的变化;但是当把ePWM用于ADC时,在ADC中断函数中同样驱动IO口翻转处理,但是IO口翻转的频率和TBPRD的值没有关系,反倒是更改ADC的SOC窗口的大小对ADC的采样率有一定的影响。 各中原因尚不明确,望高手给与指导建议!

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

zhu zhou:

回复 mangui zhang:

您好,您所说的上述情况理论上是这样,但是在采集过程中,AD的采样率的确是不受控制了,这一块儿现在不是很明白,希望能给予指导!

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

Lucy Alexender:

回复 Eric Ma:

您好,我用的ccs5.2版本,利用controlsuite的28335A/Dsoc例程采样时,当输入采集电压值0-3v时,我在watch窗口的expression添加电压变量值观看采集进来的的电压数值是否有变化,结果一直是0没有数值变化,请教原因。

另外有人推荐看波形窗口,我从网上找这个窗口没有找到,请教那个窗口是观看采集进来的电压值波形呢?

谢谢指导!急求

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

Bruce_旋:

回复 zhu zhou:

AdcRegs.ADCTRL1.bit.CONT_RUN = 1; /* 工作于启动-停止模式 */          这一句是连续运行模式,赋值0才是启动停止模式

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

tengfei wan:

回复 zhu zhou:

请问问题解决了吗,我也发现ADC通过EPWM触发方式,ADC采样率!=PWM频率??请问楼主解决没有

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

Bruce_旋:

回复 tengfei wan:

ADC采用时候,采样频率不一定等于EPWM的周期,这取决于你的出发方式以及PWM波形。只有比如你可以设置上升沿触发,可以设置下降沿触发,也可以设置上升下降沿均触发。在不同的方式下,两者的关系不同。当设置上升沿触发时候,ADC与PWM的频率相同

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

tengfei wan:

回复 Bruce_旋:

你好,我EPWM频率60K,向上计数,Counter=CMP,触发ADC采样,ADC进入中断,我在AD中断里翻转IO口,波形如下

DSP28335 ADC部分的转换启动有三种方式:1.软件方式启动;2.ePWM方式启动;3.外部管脚启动。

我想了解的是:应用ePWM方式启动ADC,如何确定该部分的采样率就是自己配置的,如10K大小的采样率。

还有就是,ADC中的采样窗口对序列转换的时间有什么影响,因为序列转换完成后才会触发中断,进而进行相应的 操作处理,而ePWM方式给出采样率是触发启动的ADC转换,此处的关系有些不太清晰?

望高手给予指点!谢谢!

jing zhang7:

回复 tengfei wan:

请问 你是想说 ADC采样率!=PWM频率??,即 ADC采样率不等于PWM频率吗??

赞(0)
未经允许不得转载:TI中文支持网 » DSP28335 ADC采样率及采样窗口的问题
分享到: 更多 (0)