717|1

5800

帖子

0

资源

五彩晶圆(初级)

关于使用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模块没有正常转换数据;

image.png

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

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

15.png

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

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

PCLKCR0寄存器的TBCLKSYNC使能:

PCLKCR1寄存器的EPWM1使能:

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


回复

49

帖子

5

资源

一粒金砂(初级)

好帖!好文!

学习了!


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

最新文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

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

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

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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