MSP430F4250 AD解读

news/2025/2/12 9:10:14/

引用请标明出处:http://blog.csdn.net/callon_h/article/details/51307809


1.关于MSP430F4250:


2.关于MSP430F4250 AD:

参考MSP430X4XXFamily User’s Guide:

关于16位AD采样有两种:


2.1 MSP430F4250选的是哪种?




其实并不是软件设置哪种,而是型号决定,由上述可知,MSP430F4250使用的是SD16_A

2.2 MSP430F4250 AD的输入电压范围是多少?

此时参考的手册需要更换为MSP430F42X0手册:


2.3 MSP430F4250 AD的转换结果在哪?数据格式是什么?

继续参考MSP430X4XX Family User’s Guide手册:


AD的转换结果就在SD16MEMx这个寄存器里保存,数据格式和设置有关:


其中SD16UNI和SD16DF都是SD16CCTLx(其中x是用户选择的通道编号)寄存器中的两位。

另外补充,关于FSR:

MSP430F4250 AD有内部参考电压1.2V,如果设置了选取内部参考电压,那么FSR = 1.2V/2/GAIN= 0.6V(当GAIN = 1时)。

如果没有选取内部参考电压,那么FSR = Vref/2/GAIN(想得到最大的输入范围,就把AVcc[3.3v]接到单片机的Vref引脚上)。(纯属个人理解和设置,最高只试过1.6V的,但是手册上的意思应该可以0-3.3V,暂时没有尝试)。

是否选择内部参考电压,在SD16CTL寄存器中的:


2.4 MSP430F4250 AD的转换速率?

参考MSP430X4XX Family User’s Guide手册,AD转换速率和单片机时钟配置有关:


可知如果使用32768-Hz的外部晶振,则CPU主时钟MCLK=外设时钟SMCLK=1MHz左右(默认值,如果想要改变则可以通过设置SCFQCTL和SCFI0进行倍频)。AD设置时钟源可以选择是ACLK(32768Hz)和SMCLK(1MHz),AD时钟选择上选择SMCLK(SMCLK=MCLK为最快)即可得到最快的转换速率,下面是一种设置下的转换速率的说明:


256的过采样率,并且每四次采样触发一次中断,那么约244us进行一次AD转换。

AD代码如下:

#include  #define   Num_of_Results   80
/* Arrays to store SD16_A conversion results */
/* NOTE: arrays need to be global to       */
/*       prevent removal by compiler       */
static unsigned int results[Num_of_Results];
void main(void)
{
volatile unsigned int i;                  // Use volatile to prevent removal
// by compiler optimization
WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
FLL_CTL0 |= XCAP14PF;                     // Configure load caps
for (i = 0; i < 10000; i++);              // Delay for 32 kHz crystal to
// stabilize
P1SEL = 0;                                //GPIO
P1DIR = 0xff;                             //out
SD16CTL = SD16REFON+SD16SSEL0;            // 1.2V ref, SMCLK
SD16INCTL0 |= SD16INTDLY_0;               // Interrupt on 4th sample
SD16CCTL0 |= SD16IE ;                     // Enable interrupt
for (i = 0; i < 0x3600; i++);             // Delay for 1.2V ref startup
_EINT();                                  // Enable general interrupts
SD16CCTL0 |= SD16SC;                      // Set bit to start conversion
_BIS_SR(LPM0_bits);                       // Enter LPM0
}
#pragma vector=SD16_VECTOR
__interrupt void SD16ISR(void)
{
static unsigned int index = 0;
switch (SD16IV)
{
case 2:                                   // SD16MEM Overflow
break;
case 4:                                   // SD16MEM0 IFG
results[index] = SD16MEM0;              // Save CH0 results (clears IFG)
P1OUT = 0x03;                           //Pin 0,1 out 1
if (++index == Num_of_Results)
{
index = 0;                            // SET BREAKPOINT HERE
//SD16CCTL0 &=~ SD16SC;
P1OUT = 0x00;                         //Pin 0,1 out 0   
}
break;
}
}

AD代码的示波器测试:(通过观察P1.0输出)



连续转换的每次转换时间为224us,转换80次为19.6ms。


以上纯属个人见解,初学者可以参考但一切以官方手册为准。



http://www.ppmy.cn/news/164585.html

相关文章

i5 6600 HD530联想扬天S5250黑苹果

i5 6600 HD530联想扬天S5250黑苹果 一个中学生的折腾日记 我&#xff0c;一个普普通通&#xff0c;一个没钱买白苹果&#xff08;原生Mac&#xff09;的中学生。而就在前几天&#xff0c;我在网上看到了这样一种操作——黑苹果。简单来说就是把macOS安装在WindowsPC上 我的手…

MSP430GPIO

1.GPIO 1.1概述&#xff1a; 通用输入/输出端口&#xff0c;每个I/O引脚都可以被独立地设置为输入或者输出引脚&#xff0c;并且每个I/O引脚都可以被独立地读取或者写入&#xff0c;所有的端口寄存器都可以被独立地置位或者清零。 P1和P2具有终端能力&#xff0c;可以设置为…

msp430低功耗芯片概述

为什么会选msp430 低功耗&#xff0c;msp430可以灵活设置CPU与外设的休眠状态&#xff08;使用过的人应该了解是AM LPM0-4 LPM3.5 LPM4.5&#xff0c;对于新手理解为不同的休眠模式就好&#xff09;。例如&#xff1a;通过配置可以使低频时钟工作&#xff0c;高频时钟不工作&am…

AI的应用前景和对人类发展的影响

一、你平时会使用这类AI工具吗&#xff1f;你对这类型的工具有什么看法&#xff1f; 答: 会&#xff0c;我认为这类AI工具的发展对于实际生活和工作中的许多问题都具有重大意义。例如&#xff0c;在医学领域&#xff0c;利用AI技术进行图像识别和病症诊断可以帮助医生更加准确地…

配置husky

配置 husky 配置 husky 之前先在码云创建新仓库 本地创建空文件夹 vue3_admin 在 git bash 中 cd 到 vue3_admin 路径&#xff0c;执行 git init 使用 git remote add origin https://gitee.com/你的码云用户名/XXXX //添加远程仓库 使用 git pull origin master 命令&#xf…

常用的git指令

git clone xxx 克隆远程代码到本地 git checkout xxx 切换到xxx分支 git checkout . 修改的部分代码清理掉不修改了 git branch -vv 查看本地对应远程的分支对应关系 git branch -a 查看本地和远程的所有分支 git branch -d xxx 删除分支&…

Android scroller学习总结

一、关键在于View的scrollTo scrollBy方法 scrollTo scrollBy 滑动的是view的内容&#xff0c;而不是view本身&#xff0c;这也是和动画的区别 怎么滑动内容呢&#xff1f;通过滑动view的画布&#xff0c;然后重绘 mScrollX mScrollY分别代表画布相对初始位置滑动的距离&am…

技术分享-向电池巨头批量供货的芯驰-E3系列的实际用法案例

芯驰首席架构师孙鸣会上表示&#xff0c;仅单个800M的CPU内核&#xff0c;如果用来做BMS&#xff0c;可以同时精准地监控40&#xff5e;60个电芯的状态&#xff1b; 如果用来做电机控制&#xff0c;可以同时做4个电机的高精度的闭环控制&#xff0c;而如果用来做网关路由&#…