⑴ PIC18单片机的AD采样频率是怎么计算的(要具体)
AD的采样总时间为采集时间+转换时间:
每位的A/D转换时间定义为TAD。
最小采集时间TACQ为1.4us,但与你在ADCON2中的ACQT2:ACQT0有关:
ACQT2:ACQT0
111=20个TAD
110=16个TAD
101=12个TAD
100=8个TAD
011=6个TAD
010=4个TAD
001=2个TAD
000=0个TAD,这个是手动采样,
TAD的最小时间为0.7us,TAD由ADCON2的ADCS2:ADCS0设置:
ADCS2:ADCS0:A/D转换时钟选择位
111=FRC(时钟来自A/D模块RC振荡器)
110=FOSC/64
101=FOSC/16
100=FOSC/4
011=FRC(时钟来自A/D模块RC振荡器)
010=FOSC/32
001=FOSC/8
000=FOSC/2
这个还是有点复杂,用一个图来说明采样的时间过程,图中假设采集时间TACQ=4TAD
⑵ 单片机最高采样频率
这个问题不能泛泛回答,你问的问题没有答案,你要加限定条件,什么单片机,什么型号,多大晶振,甚至可以设置晶振分频的单片机多少分频,这样才能确定单片机的采样频率,比如你用最简单最原始的51,12MHz晶振,12分频的话就是1MHz,但是如果你用STM32实现,那IO的时钟你都可以设置到50MHz东西不一样属性就不一样
⑶ 需要用51单片机做一个数据采集系统,但是要求采样频率达到至少每秒2000次以上,请问51单片机可以做到么
肯定要速度快的单片机,比如带ADC的STC12单片机,用定时器设置好每秒中断2000次,每次启动ADC转换一次,这样就得到数据了。
当然要存储2000个数据还是问题,如果是8bit的结果,那需要2000字节,12bit结果要4000字节。所以要求单片机本身有很大的RAM或者要扩展RAM才行。但STC12内部才1024字节的RAM,肯定不够用,所以这时要用STC90C58AD了,4096字节的RAM。
如果用C8051F单片机,那更简单。比如C8051F的ADC0是100ksps,就是说连续转换时每秒能采样100000个数据,转换2000个是小菜一碟,只要设置好定时器以0.5毫秒触发一次ADC转换,再设置好ADC中断,这样1秒采集2000个数据没问题。
⑷ 单片机怎样进行频率采样
如果被测信号频率远大于单片机工作频率(机器周期),可以通过外部可编程分频器降到单片机可以接受的频率范围。
如果被测信号频率稍低于单片机工作频率,可以采用单片机定时器从计数引脚输入信号,程序设定计数门限时间的方法来测量频率。
如果被测信号频率远低于单片机工作频率,那么可以采用信号输入外部中断引脚作为单片机定时器的计数门限时间,定时器以工作频率计数来测量频率。
⑸ 单片机A/D采样
假设一个系统使用12位的ADC,每秒输出一个温度值(1Hz)。为了将测量分辨率增加到16位,我们按下式计算过采样频率:
因此,如果我们以fs=256Hz的采样频率对温度传感器进行过采样,我们将在所要求的采样周期内采集到足够的样本,对这些样本求均值便可得到16位的输出数据。为此,我们先累加(将256个连续样本加在一起),然后将总和除以16(或将总和右移4位)。这样的过程通常被称为抽取。这样得到的结果是16位的有用数据,所做的操作被称为累加和抽取。一旦我们计算得到由256个样本(对本例而言)所产生的结果,我们将对数据进行保存或处理,然后开始为下一个输出字采集样本。
注:用于累加过采样数据和进行除法运算的存储器单元所占的字节数必须足够多,以免发生溢出或产生截断错误。