讲讲我自己对ADC12模块的心得——MSP430f5529

发布者:阳关三迭最新更新时间:2021-05-13 来源: eefocus关键字:ADC12模块  MSP430f5529 手机看文章 扫描二维码
随时随地手机看文章

AD部分主要配置ADC12模块的时钟、参考源、采样通道、采样模式、存储和采样保持。


我就一个部分一个部分来。


第一个是ADC12模块的时钟,这个是模块运行时的时钟,跟采样定时器是两个概念,曾经我有一段时间被迷惑住了。这个由ADC12CTL1里面的ADC12SSEL和ADC12DIV配置,可以选择ADC12OSC/ACLK/SMCLK/MCLK,TI例程里面好像都是选择的ADC12OSC,这个是5MHZ,不过频率容易受外界影响而改变。这个部分配置好了就得到了ADC12CLK。


第二个参考源,这个部分可以用单片机的参考模块控制,也可以用ADC12模块控制,REFCTL0 &= ~REFMSTR;这句就是设置ADC模块直接控制参考源,ADC12REFON,ADC12REF2_5V打开参考模块,参考模块输出的参考电压为2.5V。ADC12CTL2 |= ADC12REFOUT;这句设置参考电压输出,可以输出也可以不输出。ADC12MCTL14 = ADC12SREF_1+ADC12INCH_14;这句是设置通道14的电压参考模式是:REF+:2.5V,REF-:AVSS.


第三个采样通道,跟这个有关的寄存器有ADC12MCTL和ADC12CTL1的ADC12CSTARTADD。第一种单通道采样,ADC12MCTL选择采样的输入通道,ADC12CSTARTADD的值选择这个通道采样的值存入哪个存储寄存器内。比如:


ADC12CTL1 |= ADC12CSTARTADD3+ADC12CSTARTADD2+ADC12CSTARTADD1;


ADC12MCTL14 = ADC12INCH_14;


上面这两句就是采样通道14,通道14采样的值存入到ADC12MEM14里面。如果你不设置ADC12CSTARTADD的值的话,采样的值默认存入ADC12MEM0里面。


第二种序列通道采样,ADC12MCTL选择采样的输入通道,ADC12CSTARTADD的值选择这个序列采样的值首个存入的存储寄存器。比如:


ADC12MCTL0 = ADC12INCH_0;

ADC12MCTL1 = ADC12INCH_1;

ADC12MCTL2 = ADC12INCH_2;

ADC12MCTL3 = ADC12INCH_3;

ADC12MCTL4 = ADC12INCH_4;

ADC12MCTL5 = ADC12INCH_5;

ADC12MCTL6 = ADC12INCH_6;

ADC12MCTL7 = ADC12INCH_7+ADC12EOS;


我并没有配置ADC12CSTARTADD的值,所以开始采样后,通道0的值存入ADC12MEM0,通道1的值存入ADC12MEM1里面,依次类推。


第四个采样模式,这个按照用户指导里面的模式示意图来写程序就可以,配置用ADC12CTL1里面的ADC12CONSEQ来配置。


第五个存储没什么要写的,在第三个采样通道里面提到的就可以了,我主要讲下最后一个采样保持,这个部分是我领悟的新的知识点。


采样保持是由采样定时器触发信号SHI信号引起的,这个部分曾经迷惑了我好长一段时间。SHI信号由ADC12CTL1的ADC12SHS配置,有4个选择:ADC12OSC/TIMERA.OUT1/TIMERB.OUT0/TIMERB.OUT1,这里由定时A指的是定时器A0,定时器B指的是定时器B0,我验证过A1/B1是不能用的,只能用A0或B0。红色部分我修改下(文章是之前写的,今天修改下红色的部分)这个定时器的选用是根据具体的片子用的,参考具体的数据手册。采样保持分两种模式,由ADC12CTL1的ADC12SHP位控制,ADC12SHP=0时是扩展模式,ADC12SHP=1时是脉冲模式。第一种扩展模式,SHI信号上升沿开始采样,上升沿后的高电平时间即为采样时间,SHI信号下降沿进行采样结果转换,转换需要13个ADC12CLK。第二种脉冲模式,SHI信号触发采样定时器,采样定时器就是控制你什么时候开始采样,什么时候开始转换,采样定时器由ADC12CTL0的ADC12SHT0和ADC12SHT1配置,在采样定时器时间内进行采样,采样后就立即进行采样结果转换。如果这时你的ADC12MSC=1的话,如果的单通道采样就会不停进行单通道采样转换,如果是序列通道,就会一直采样转换直到ADC12EOS=1.如果ADC12MSC=0,则采样结束,下一次采样的时间是下一个SHI信号的上升沿来临时。


好了,就这么多,以后如果有增加了再写了。


关键字:ADC12模块  MSP430f5529 引用地址:讲讲我自己对ADC12模块的心得——MSP430f5529

上一篇:MSP430中断c函数模板大全
下一篇:图解IAR开发MSP430项目建立设置和下载

推荐阅读最新更新时间:2024-11-12 12:01

MSP430F5529的P1.7、P2.2中断和频率设置
MSP430F5529单片机的P1.7、P2.2 io口中断和频率设置程序: #include "msp430F5529.h" #define P15_H (P1IN & BIT5); #define P15_L (P1OUT & (~BIT5)); int tt=0,temp,kk,i; void delay(int ns) { int kk; while(ns--) for(kk=0;kk 120;kk++); } //******A/D转换函数设置*****// void adc1() { P1SEL |=BIT6; //转换模拟信号从P1.6输入,内部集成了转换模块 ADC12CTL0 =ADC12O
[单片机]
MSP430F5529火箭板 --->基于定时器A的LED灯闪烁实验(含Timer_A分析)
一、定时器——Timer_A 在进入正题之前,我们先来了解一下MSP430F5529的定时器,本次实验我们使用Timer_A定时器,这里需要注意的是MSP430F5529一共有3个A类定时器,分别是Timer0_A5、Timer1_A3、Timer2_A3 在这里需要提一下的是Timer_A定时器有6种寄存器,都是以TAx开头,如果该寄存器涉及捕获比较单元的后面会有个n 上面我们大致了解了一下MSP430F5529有关定时器Timer_A的相关寄存器个数和A类定时器的个数,下面我们就寄存器配置方法进行分析: 1、Timer_A框图 在学习使用Timer_A之前我们一定要先大致了解一下Timer_A的流程框图,这有助于我
[单片机]
<font color='red'>MSP430F5529</font>火箭板 --->基于定时器A的LED灯闪烁实验(含Timer_A分析)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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