采用级联/同时adc采样率模式,同时adc采样率ADCINA0和ADCINB0,ADCINB0和ADCINB1要求

后使用快捷导航没有帐号?
查看: 3478|回复: 11
使用定时器0来ad采样问题
在线时间8 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
定时中断 ad采样问题
写了一个定时中断函数,将AD采样写在定时中断中,结果不能得到正确的AD值,定时时间为0.1ms,采用dsp2806,系统时钟为50MHz,外部引脚ADCIN已经连接到1.6V直流电压,为什么我的AD值却总是零呢?能够进入到定时器的中断里,就是AD=0,难道AD没启动吗?
请高手帮帮忙!!
void ADC_Init(void)& {&&& AdcRegs.ADCTRL1.bit.RESET = 1;&&& //Reset ADC module&&& asm(" RPT #20||NOP");&&& AdcRegs.ADCTRL3.all = 0x00E2;&&&& // Power up bandgap/reference/ADC circuits&& &&& AdcRegs.ADCTRL1.bit.RESET = 0;&&& AdcRegs.ADCTRL1.bit.SUSMOD = 1;&& // 模式3&&& AdcRegs.ADCTRL1.bit.ACQ_PS = 0x4; // SOC脉宽&&& AdcRegs.ADCTRL1.bit.CPS = 1;&&&&& // ADCCLK=FCLK/2 &&& AdcRegs.ADCTRL1.bit.CONT_RUN =0;& // ???&&& AdcRegs.ADCTRL1.bit.SEQ_OVRD = 0;&&& AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // cascade mode &&&
&&& AdcRegs.ADCMAXCONV.all = 0x07; &&& AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup ADCINA0 as 1st SEQ1 conv&&& AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x0; // Setup ADCINB0 as 2nd SEQ1 conv&&& AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x8;&&& AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x8;&&& &&& AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x1;&&& AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x1;&&& &&& AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x9; // Setup ADCINA1 as 3st SEQ1 conv&&& AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x9; // Setup ADCINB1 as 4st SEQ1 conv&& &&&&&&&&& &&& AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0;& // disable SEQ1 interrupt (every EOS)&&& AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 0;// disable SOCA from ePWM to start SEQ1&&&&& &&& AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; &&& asm(" RPT #4||NOP");&&& AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;&& }
interrupt void& TINT0_ISR(void)&&&&& // CPU-Timer 0&&&& P=0.1ms{&&&& i= AdcRegs.ADCRESULT0;&&&& result[0]=i&&4;&&&& i= AdcRegs.ADCRESULT1;&&&& result[1]=i&&4;&&&& i= AdcRegs.ADCRESULT2;&&&& result[2]=i&&4;&&&& i= AdcRegs.ADCRESULT3;&&&& result[3]=i&&4;
&&&& i= AdcRegs.ADCRESULT4;&&&& result[4]=i&&4;&&&& i= AdcRegs.ADCRESULT5;&&&& result[5]=i&&4;&&&& i= AdcRegs.ADCRESULT6;&&&& result[6]=i&&4;&&&& i= AdcRegs.ADCRESULT7;&&&& result[7]=i&&4;&&&&& &&&i=result[0]+result[1]+result[2]+result[3];&&&& i=i&&2;&&&& g_uSample[g_uNum]=i;
&&i=result[4]+result[5]+result[6]+result[7];&&i=i&&2; &&g_uSample1[g_uNum]=i; &&g_uNum++;&&if(g_uNum&255) g_uNum=0;&&AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;&&& //Restart the ADC&&asm(" RPT #4||NOP");&&CpuTimer0Regs.TCR.bit.TIF=1;& &&PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;& &&&&&&& AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1; & &&&& EINT; &}void main(void)
{ &&& InitSysCtrl();& &&& Config_Gpio();&&& ADC_Init();&&& GPIO_Init();&&& DINT;&&& IER = 0x0000;&&& IFR = 0x0000;&&& InitPieCtrl();&&& InitPieVectTable();&&& InitCpuTimers();&& //Initialize the Cpu Timers&&& PieCtrlRegs.PIEIER1.bit.INTx7 = 1;&& //Timer0&&& IER |= M_INT1;&&& //Timer0& 1.7&&& EINT;&& // Enable Global interrupt INTM&&& ERTM;&& // Enable Global realtime interrupt DBGM &&& ConfigCpuTimer(&CpuTimer0, 50, 100000);&&& StartCpuTimer0();&for(;;)&{
在线时间147 小时
威望4939 分
芯币3264 枚
E金币100 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
用TI例程包中的例程试一下,如果还有问题就检查硬件。
否则比对例程检查软件。
在线时间8 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
回复 沙发 hlx3012 的帖子
你好,我用例程ADCSOC试了一下,采集到的数据还是零,但是硬件应该没问题,我用万用表测试过,输入电压值为1.6V,为什么呢?
在线时间147 小时
威望4939 分
芯币3264 枚
E金币100 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
如果程序没问题。那就只能是硬件问题。
比如焊接,比对一下芯片厂家的参考电路吧。
在线时间8 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
硬件应该没问题吧?
我用万用表测试过ADCINA0&&ADCINA1的电压值,是1.6V,这是不是就已经说明硬件没有问题了呢?
在线时间523 小时
威望2754 分
芯币7158 枚
TA的帖子TA的资源
五彩晶圆(初级), 积分 2754, 距离下一级还需 746 积分
五彩晶圆(初级), 积分 2754, 距离下一级还需 746 积分
仔细看看,你实际硬件电路和你采样设置是否相同。另请检测下AD是否正常供电。一般不会是DSP的问题
工程 = 数学+物理+经济
在线时间8 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
回复 6楼 安_然 的帖子
你好,我读AD的标志位可以发现AD的确启动了转换,但是结果却一直为0,为了防止我采样的管脚错了,我设置采样为级联顺序采样,采样通道为16,将所有管脚的值都读出来,但是一直是0,请问还有可能是哪方面的原因错了呢?
在线时间147 小时
威望4939 分
芯币3264 枚
E金币100 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
我猜测就是硬件问题。
楼主可以看看ADCLO引脚是否有接地,ADC的ACDDREFBG,AVSSREFBG....有没有正确连接,如果用的是内部参考那么ADCREFP有没有按要求接地。
如果都有,那我建议楼主卸下芯片重新焊一下
在线时间523 小时
威望2754 分
芯币7158 枚
TA的帖子TA的资源
五彩晶圆(初级), 积分 2754, 距离下一级还需 746 积分
五彩晶圆(初级), 积分 2754, 距离下一级还需 746 积分
楼主,外部硬件确实有电压,但是采集的时候却采不到。那么我觉问题集中在DSP上。DSP 硬件及软件。楼主用例程也采不到,那说明很可能是硬件问题。看看DSP供电什么的。不行的话,换一块DSP试试
工程 = 数学+物理+经济
在线时间8 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
解决了,是我DSP芯片坏掉了。
<p id="rate_879" onmouseover="showTip(this)" tip="不同意,应该是焊接问题&威望 + 10 分
" class="mtn mbn">
在线时间147 小时
威望4939 分
芯币3264 枚
E金币100 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
五彩晶圆(中级), 积分 4939, 距离下一级还需 1061 积分
是芯片坏掉了?
楼主你是不是换块芯片就好了,那块&坏掉&芯片不要丢了,那块芯片应该没有坏,很少会出现芯片上某一模块损坏,其他功能完好的现象。
我估计就是楼主的焊接问题。
在线时间8 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
回复 11楼 hlx3012 的帖子
应该是芯片的问题或者你说的焊接问题吧,我目前认为是芯片上的AD坏了,因为我的板子是焊死的,不方便直接更换芯片,我又重新换了一套板子,功能就正常了。软件程序没有改动过的。
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
Powered by
逛了这许久,何不进去瞧瞧?TMS320F28027中两种A/D采样方式的实现
内容摘要:以TMS320F28027为代表的TI C28x PiCColo系列微处理器采用了以SOC为基础的ADC,其配置方式不同于TI其他系列MCU基于Sequencer的ADC。在TMS320F28027的基础上,详细介绍了其ADC的工作原理,以及顺序采样和同步采样两种采砰方式的配置方法。
TI C28x PICcolo系列微处理器,因其低功耗、高性能的特点,被广泛应用在太阳能逆变器、白色家电设备、混合动力汽车电池、电力线通信和LED照明等控制领域。A/D转换实现了模拟量到数字量的转换,是控制应用中必不可少的环节之一。A/D转换的精度和速度直接关系到控制系统的准确性和快速性。
相比于TI其他类型微处理器,TI C28x Piccolo系列内部集成了新一代的基于SOC的ADC。此ADC的内核包含一个12位转换器,此转换器由两个采样保持电路供源。这两个采样保持电路可同时或者顺序采样。对于用户来讲,可以很容易地从一个单触发来创建一系列的转换。但此ADC在寄存器没置和配置方式上与基于Sequencer的ADC有很大的不同,主要体现在控制寄存器ADCCTRL的数量和功能位设置、中断和丁作方式的配置方式等方面,更新后的寄存器设置可以参见TI的相关文献。
1 ADC的工作原理和初始化
1.1 工作原理
对基于SOC的ADC,其核心在于对16个SOC(Start Of Conversion)的配置,单个SOC对应单个A/D转换过程,SOC的配置数量取决于应用中需要A/D转换的数目。每个SOC中都有三种配置项:启动转换的触发源、采样通道以及采样窗口时间。
其中,触发源可选择软件、PWM、GPIO,以及CPU定时器等多种触发方式,采样通道可根据采样方式的不同选择ADCINA1~8、ADCINB1~8共16个或8对采样通道,采样窗口时间也可根据需要设置。
对于单个转换,ADC的工作过程为:在收到相应的触发信号后,即开始按设置的采样窗口时间对指定通道进行采样,随后,采样值与参考电压进行比较,得到转换值。同时,在转换开始时或转换完成时触发与SOC编号对应的EOC(End Of Conversion)脉冲,标志转换结束。转换的结果存储在与SOC编号对应的ADCRESULT寄存器中。
1.2 转换结果的计算
若在初始化中选择内部参考,ADC将会选择其内部的带隙电路产生参考电压。此时ADC的转换范围为0~3.3 V,转换结果的计算公式如下:
若选择外部电压参考,则需要从VREFHI/VREFLO引脚引入参考电压,此时ADC的转换范同为0~VREFHI,转换上限为参考电压值,转换结果的计算公式如下:
1.3 初始化和中断设置
使用ADC时,应进行4步初始化操作:设置ADC校准;内部各电路上电;选择内部或外部采样参考;打开ADC。一般情况下ADC校准可使用厂家设定值,调用函数Device cal()即可。
若选择默认校准值和内部参考电压,ADC的初始化程序如下:
以上设置在TI C2000系列v129版本的头文件DSP2802x_Adc.c中被编译成了函数InitAdc(),可在程序中直接调用。
ADC的每次转换完成后都可触发中断,若需要使用ADC中断,则可进行如下步骤的设置:设置中断触发时刻,可选择开始转换时触发或转换结果产生时触发;选择中断编号;设置中断产生与中断标志的关系,可选择在中断产生与中断标志状态无关或在存在中断标志时不产生中断;选择触发中断的EOC信号。
若需要在SOC2的转换结果产生后触发ADCINT1中断,且在存在中断标志时不再产生中断,配置程序如下:
在完成对ADC的初始化设置后,即可根据应用需要配置采样方式和单次转换。
2 顺序采样方式的实现
2.1 顺序采样方式
顺序采样是最常用的采样方式,即单次转换按照触发-采样-转换的顺序进行。顺序采样只要按需求配置SOC即可。
ADC中共有16个SOCCx,x表示编号为0~15。每个SOC可没置由不同或相同的触发源触发,对任意采样通道进行可调时间的采样和转换。用户在设置好3个配置项后,ADC按照SOC0~SOC15的默认优先级进行转换。SOC的优先级也可通过优先级控制寄存器SOCPRICTL进行设置。
顺序采样方式的时序可以参见TI的相关文献。
在实际应用中,通常可设置多个SOC对同一通道进行采样,并对采样结果取平均值,即可有效地消除模拟信号中高频噪声的影响,提高A/D转换的精度。
若要在收到定时器Timer0的触发信号后按照通道ADCINA4、ADCINA2、ADCINA6的顺序进行转换,SOC的配置程序如下:
ADCINA4通道的采样结果存储在ADCRESULT0中,ADCINA2通道采样结果存储在ADCRESULT1中,ADCINA6的采样结果存储在ADCRESULT2中。
此外,需要指出的是,此类ADC的采样通道在空闲时也可以作为普通I/O端口使用,这也是与其他系列不同的地方。
2.2 采样和转换时间的计算
通过ADCSOCxCTL寄存器的ACQPS位,可设置采样窗口大小,即采样时间。采样时间设置的基本单位为一个时钟周期,ACQPS可设置为6~63的任意数值,采样时间可通过如下公式计算:
采样时间=(ACQPS+1)×时钟周期
Related Articles
09/28 08:26
本文分析了数控制码系统中数据处理的特点,讨论了数控系统中两种传统的数据处理方法及三种改进方法.综合分析各种方法的优缺点,结合制码系统中数据处理的特点,提出了一种更适用的数据处理新方法.该方法即节约了系统资源,又提高了制码速度和工作效率. 数控系统的数据处理是指NC程序送入零件缓冲区之后.插补之前的准备工作,主要包括译码.运动轨迹计算.进给速度计算三部分.选用合理的数据处理方法将大幅提高编程的正确性和工作效率,且便于数据校对,尤其适合批量零件和有规律零件程序加工.数据处理方法是否合理主要取决于其连
08/26 22:44
In SigXplorer, Buffer Delays Specifies how the simulator o^ains buffer delays for the simulation. We CAN select one of the following options from the drop-down liST: From Library: Specifies that the simulator o^ain buffer delays stored with the model
07/26 21:51
按一般照明与特殊情况设置两组方案.例如书房用一盏小灯和一亮度较大的台灯.按特殊情况设置一组方案:例如书房只设置一盏大灯. 在装修中,灯具是必不可缺的一样东西,与其说是装修的项目,倒不如说是最基本的生活需求. 一.人工照明的基本概念 要说人工照明,首先要先了解一下照明的基本概念: 光通量:人的眼睛所能感觉到的辐射能量.每一波段的辐射能量与该波段相对视见率之乘积的总和.单位符号为lm. 照度:射到一个表面的光通量密度,符号为lx. 一盏40W白炽灯的光通量约为340一盏40W荧光灯的光通量约
03/07 11:14
近年来,在音响技术的相关文章中,经常用到&电流反馈&一词,有两种大不相同的含义. 第一种&电流反馈&电路组成如图l所示,其特点是:负反馈放大器的反馈网络与负载电阻RL相串联,输出电流流经取样电阻R形成反馈信号,因此反馈信号取自放大器的输出电流,&电流反馈&因此而得名.电流负反馈可以稳定放大器的电流增益,且当负载特性发生变化时,可以起到稳定输出电流的作用,因此电流负反馈放大器又称为恒流输出放大器. 众所周知,动圈式扬声器是感性器件,对不同的频率呈现
06/15 07:40
SoC(Systemon Chip,片上系统)以其能提高产品性能.缩小产品体积等优点,逐渐成为嵌入式系统发展的主流趋势.SOPC(System On a Programmable Chip,可编程片上系统)利用可编程逻辑器件来实现SoC,具有设计方式灵活,可裁减.可扩充.可升级,并具备软硬件在系统可配置的性能.将处理器IP(Intellectual Property,知识产权)内核嵌入到可编程逻辑器件是SOPC设计的前提条件. 在ALTEra的FPGA器件上嵌入处理器等IP核可实现SOPC,设计
09/25 11:17
摘要:对比分析了逆变器控制中的电容电流反馈和电感电流反馈两种控制方式.推导了控制器的控制模型,分析了控制器的设计方法,给出了各种突加负载及恒定负载状态下的实验结果,指出了两种控制方法的特点以及优缺点.实验在800VA的逆变器中进行,逆变器的开关频率是30kHz,输出电压是400Hz,115V有效值的正弦波. 关键词:电容电流:电感电流:控制器 0 引言 逆变器可以采用的控制方法种类繁多,不同的控制方法都有其独特的优点及适用场合[1][2].从控制环路的角度看,可以分为开环控制.单环控制.双环控制
07/17 06:10
Word里的艺术字是大家平时常用的一项功能,尤其是我们在制作一些个人简历表格时经常使用,但有时我们可能需要制作一些繁体艺术字,而这个看似简单的要求,实现起来却不是那么容易,因为Word里的繁简转换功能对艺术字并不起作用.笔者经过几次尝试,总结了两种方法,在这里介绍给大家. (注:以下技巧已于Word 2003环境下测试通过) 方法一. 使用第三方汉字输入法实现 第三方汉字输入法一般功能都很强大,就拿极点五笔来说,它就有一项直接输出繁体字的功能.使用方法很简单,先打开Word软件,然后点击&插入&
10/28 11:22
传感器网络中一种基于两阶段睡眠调度的目标跟踪协议
01/23 18:28
本文主要探讨了16层螺旋CT两种成像方法在脑血管成像中的应用. 对20例采用Bolus-tracking自动触发扫描技术组(A组)病例与20例采用经验延迟扫描组(B组)病例的脑动脉CTA图像进行对照分析.结果:A组成功率及图像质量优于B组.其中9例同时接受DSA检查的脑动脉CTA图像以DSA图像为标准在动脉分支及对疾病的显示方面进行比对分析结果与DSA相同,无明显差别.结论脑动脉CTA检查采用Bolus-tracking自动触发扫描技术,可获得更高的成功率和更好的图像质量并在很大程度上可取代DS28335_ADC_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于||文档简介
&&个&#8203;人&#8203;总&#8203;结&#8203;D&#8203;S&#8203;P&#03;8&#03;3&#03; &#8203;A&#8203;D&#8203;C&#8203;各&#8203;种&#8203;工&#8203;作&#8203;模&#8203;式&#8203;详&#8203;细&#8203;介&#8203;绍&#8203;,&#8203;看&#8203;不&#8203;懂&#8203;官&#8203;方&#8203;p&#8203;d&#8203;f&#8203;和&#8203;专&#8203;业&#8203;书&#8203;籍&#8203;的&#8203;可&#8203;以&#8203;看&#8203;看&#8203;。
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢第7章 ADC(_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第7章 ADC(
上传于||文档简介
&&合&#8203;工&#8203;大&#8203;d&#8203;s&#8203;p&#8203;课&#8203;件
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩35页未读,继续阅读
你可能喜欢漫谈TMS320F28027中两种A/D采样方式的实现方法
> 漫谈TMS320F28027中两种A/D采样方式的实现方法
漫谈TMS320F28027中两种A/D采样方式的实现方法
摘要:以为代表的TI C28x Piccolo系列微处理器采用了以SOC为基础的ADC,其配置方式不同于TI其他系列MCU基于Sequencer的ADC。在的基础上,详细介绍了其ADC的工作原理,以及顺序采样和同步采样两种采砰方式的配置方法。本文引用地址:
关键词:TI C28x Piccolo系列微处理器:基于SOC的ADC;顺序采样;同步采样
TI C28x Piccolo系列微处理器,因其低功耗、高性能的特点,被广泛应用在太阳能逆变器、白色家电设备、混合动力汽车电池、电力线通信和LED照明等控制领域。A/D转换实现了模拟量到数字量的转换,是控制应用中必不可少的环节之一。A/D转换的精度和速度直接关系到控制系统的准确性和快速性。
相比于TI其他类型微处理器,TI C28x Piccolo系列内部集成了新一代的基于SOC的ADC。此ADC的内核包含一个12位转换器,此转换器由两个采样保持电路供源。这两个采样保持电路可同时或者顺序采样。对于用户来讲,可以很容易地从一个单触发来创建一系列的转换。但此ADC在寄存器没置和配置方式上与基于Sequencer的ADC有很大的不同,主要体现在控制寄存器ADCCTRL的数量和功能位设置、中断和丁作方式的配置方式等方面,更新后的寄存器设置可以参见TI的相关文献。
1 ADC的工作原理和初始化
1.1 工作原理
对基于SOC的ADC,其核心在于对16个SOC(Start Of Conversion)的配置,单个SOC对应单个A/D转换过程,SOC的配置数量取决于应用中需要A/D转换的数目。每个SOC中都有三种配置项:启动转换的触发源、采样通道以及采样窗口时间。
其中,触发源可选择软件、PWM、GPIO,以及CPU定时器等多种触发方式,采样通道可根据采样方式的不同选择ADCINA1~8、ADCINB1~8共16个或8对采样通道,采样窗口时间也可根据需要设置。
对于单个转换,ADC的工作过程为:在收到相应的触发信号后,即开始按设置的采样窗口时间对指定通道进行采样,随后,采样值与参考电压进行比较,得到转换值。同时,在转换开始时或转换完成时触发与SOC编号对应的EOC(End Of Conversion)脉冲,标志转换结束。转换的结果存储在与SOC编号对应的ADCRESULT寄存器中。
1.2 转换结果的计算
若在初始化中选择内部参考,ADC将会选择其内部的带隙电路产生参考电压。此时ADC的转换范围为0~3.3 V,转换结果的计算公式如下:
若选择外部电压参考,则需要从VREFHI/VREFLO引脚引入参考电压,此时ADC的转换范同为0~VREFHI,转换上限为参考电压值,转换结果的计算公式如下:
1.3 初始化和中断设置
使用ADC时,应进行4步初始化操作:设置ADC校准;内部各电路上电;选择内部或外部采样参考;打开ADC。一般情况下ADC校准可使用厂家设定值,调用函数Device cal()即可。
若选择默认校准值和内部参考电压,ADC的初始化程序如下:
以上设置在TI C2000系列v129版本的头文件DSP2802x_Adc.c中被编译成了函数InitAdc(),可在程序中直接调用。
ADC的每次转换完成后都可触发中断,若需要使用ADC中断,则可进行如下步骤的设置:设置中断触发时刻,可选择开始转换时触发或转换结果产生时触发;选择中断编号;设置中断产生与中断标志的关系,可选择在中断产生与中断标志状态无关或在存在中断标志时不产生中断;选择触发中断的EOC信号。
若需要在SOC2的转换结果产生后触发ADCINT1中断,且在存在中断标志时不再产生中断,配置程序如下:
在完成对ADC的初始化设置后,即可根据应用需要配置采样方式和单次转换。
2 顺序采样方式的实现
2.1 顺序采样方式
顺序采样是最常用的采样方式,即单次转换按照触发-采样-转换的顺序进行。顺序采样只要按需求配置SOC即可。
ADC中共有16个SOCCx,x表示编号为0~15。每个SOC可没置由不同或相同的触发源触发,对任意采样通道进行可调时间的采样和转换。用户在设置好3个配置项后,ADC按照SOC0~SOC15的默认优先级进行转换。SOC的优先级也可通过优先级控制寄存器SOCPRICTL进行设置。
顺序采样方式的时序可以参见TI的相关文献。
在实际应用中,通常可设置多个SOC对同一通道进行采样,并对采样结果取平均值,即可有效地消除模拟信号中高频噪声的影响,提高A/D转换的精度。
若要在收到定时器Timer0的触发信号后按照通道ADCINA4、ADCINA2、ADCINA6的顺序进行转换,SOC的配置程序如下:
ADCINA4通道的采样结果存储在ADCRESULT0中,ADCINA2通道采样结果存储在ADCRESULT1中,ADCINA6的采样结果存储在ADCRESULT2中。
此外,需要指出的是,此类ADC的采样通道在空闲时也可以作为普通I/O端口使用,这也是与其他系列不同的地方。
2.2 采样和转换时间的计算
通过ADCSOCxCTL寄存器的ACQPS位,可设置采样窗口大小,即采样时间。采样时间设置的基本单位为一个时钟周期,ACQPS可设置为6~63的任意数值,采样时间可通过如下公式计算:
采样时间=(ACQPS+1)&时钟周期
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一}

我要回帖

更多关于 stm32 adc采样时间 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信