2905|1

6802

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

关于使用28335的ADC模块采样电流出现无法采样数据的问题 [复制链接]

1、调试情况说明:
使用DSP238335的ADC模块进行采样电流,使用EPWM模块触发ADC采样,ADC采样级联模式,EPWM采用up-down模式。
实现功能需要了解EPWM和ADC的基本工作原理,相关寄存器的设置,使用何种触发模式,ADC的采样方式等等。此次主要简单记录解决问题的思路和过程。
问题: 使用ADC中断读取采样数据,并进行数据转换计算,进行仿真调试时ADC采样没有采样到数值。

2、调试思路及过程:
1、第一步首先检查ADC中断是否产生,对于DSP的三级中断检查所有与ADC中断相关的标志位(如下图),ADC是INT1.6,利用仿真调试检查对应的PIEIFR、PIEIER、IER、IFR等标志位状态是否正确,经检查中断标志位无异常,ADC可以正常中断,怀疑ADC模块没有正常转换数据;

2、由于是EPWMxSOCA触发采样,第二步检查触发源(下图红线)是否正常,EPWM所用产生触发事件的方式如下图红框所示,CTR= CMPA时产生触发事件。检查EPWM模块触发ADC的触发源ETFLG.SOCA=0;所示并没有SOCA触发事件产生,故无法进行AD采样;


3、第三步检查ADC初始化的触发源部分的寄存器设置,仿真调试看变量发现TBCTR的值没有变化,一直为0,将CMPA=0后发现产生触发事件,由此可知时基(TB)模块并没有工作,使得TBCTR时基计数寄存器无法工作(计数),主要怀疑TB模块工作,具体如下图红圈所示。

4、 时基模块工作需要时钟信号,经检查,对系统时钟的分频得到时基时钟(红圈1)进行了设置,此处没有问题;
5、 检查TBCLK时基时钟是否使能,EPWM模块时钟是否使能(如下图),经检查发现并未对TBCLK时基时钟以及使用的EPWM1模块时钟进行使能,在程序中(DSP2833x_SysCtrl.c中)置1使能后ADC能够正常进行采样。


SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1; // ePWM1
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK within the ePWM

PCLKCR0寄存器的TBCLKSYNC使能:

PCLKCR1寄存器的EPWM1使能:


写在最后
时钟设置是TI官方的.DSP2833x_SysCtrl.c之后设置的,一般不会更改,我由于在检查其他模块的问题的时候将其关闭,后来使用的时候未打开,才出现这种情况,虽然后来解决了问题,却浪费了许多时间,以后一定要细心。

最新回复

好帖!好文! 学习了!   详情 回复 发表于 2020-6-15 09:38
 
点赞 关注

回复
举报

43

帖子

928

TA的资源

一粒金砂(初级)

沙发
 

好帖!好文!

学习了!

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表