ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。采样周期一般来说=转换时间+读取时间
。而转换时间=采样时间+12.5个时钟周期。采样时间是你通过寄存器告诉STM32采样模拟量的时间,设置越长越精确
一 STM32 ADC采样频率的确定
1. :先看一些资料,确定一下ADC的时钟:
(1),由时钟控制器提供的ADCCLK时钟和PCLK2(APB2时钟)同步。CLK控制器为ADC时钟提供一个专用的可编程预分频器。
(2) 一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
(3)在时钟配置寄存器(RCC_CFGR) 中 有 为ADC时钟提供一个专用的可编程预分器
位15:14 ADCPRE:ADC预分频
由软件设置来确定ADC时钟频率
00:PCLK2 2分频后作为ADC时钟
01:PCLK2 4分频后作为ADC时钟
10:PCLK2 6分频后作为ADC时钟
11:PCLK2 8分频后作为ADC时钟
我们可对其进行设置 例如:
RCC_ADCCLKConfig(RCC_PCLK2_Div4);
另外 还有 ADC 时钟使能设置
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2 |
RCC_APB2Periph_GPIOC, ENABLE);
(4)16.7 可编程的通道采样时间
ADC 使用若干个ADC_CLK 周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位而更改。每个通道可以以不同的时间采样。
总转换时间如下计算:
TCONV(转换时间) = 采样时间+ 12.5 个周期
例如:
当ADCCLK=14MHz 和 1.5周期的采样时间:
TCONV = 1.5 + 12.5 = 14周期= 1μs
SMPx[2:0]:选择通道x的采样时间
这些位用于独立地选择每个通道的采样时间。在采样周期中通道选择位必须保持不变。
000:1.5周期100:41.5周期
001:7.5周期101:55.5周期
010:13.5周期110:71.5周期
011:28.5周期111:239.5周期
注:
– ADC1的模拟输入通道16和通道17在芯片内部分别连到了温度传感器和VREFINT。
– ADC2的模拟输入通道16和通道17在芯片内部连到了VSS。
2. 具体分析如下:
(1)我们的输入信号是50Hz (周期为20ms),初步定为1周期200个采样点,(注:一周期最少采20个点,即采样率最少为1k) ,每2个 采样点间隔为 20ms /200 = 100 us
ADC可编程的通道采样时间 我们选最小的 1.5 周期,则 ADC采样周期一周期大小为
100us /1.5=66us 。 ADC 时钟频率为 1/66us =15 KHz。
ADC可编程的通道采样时间 我们选71.5 周期,则 ADC采样周期一周期大小为
(100us /71.5) 。 ADC 时钟频率为 7.15MHz。
(2)接下来我们要确定系统时钟:我们 用的是 8M Hz 的外部晶振做时钟源(HSE),估计得 经过 PLL倍频 PLL 倍频系数分别为2的整数倍,最大72 MHz。为了 提高数据 计算效率,我们把系统时钟定为72MHz,(PLL 9倍频)。则PCLK2=72MHz,PCLK1=36MHz;
我们通过设置时钟配置寄存器(RCC_CFGR) 中 有 为ADC时钟提供一个专用的可编程预分器,将PCLK2 8 分频后作为ADC 的时钟,则可知ADC 时钟频率为 9MHz
从手册可知: ADC 转换时间:
STM32F103xx增强型产品:ADC时钟为56MHz时为1μs(ADC时钟为72MHz为1.17μs)
(3)由以上分析可知:不太对应,我们重新对以上中 内容调整,提出如下两套方案:
方案一:我们的输入信号是50Hz (周期为20ms),初步定为1周期2500个采样点,(注:一周期最少采20个点,即采样率最少为1k) ,每2个 采样点间隔为 20ms /2500 = 8 us
ADC可编程的通道采样时间 我们选71.5周期,则 ADC采样周期一周期大小为
8us /71.5 。 ADC时钟频率约为 9 MHz。
将PCLK2 8 分频后作为ADC 的时钟,则可知ADC 时钟频率为 9MHz
方案二:我们的输入信号是50Hz (周期为20ms),初步定为1周期1000个采样点,(注:一周期最少采20个点,即采样率最少为1k) ,每2个 采样点间隔为 20ms /1000= 20 us
ADC可编程的通道采样时间 我们选239.5周期,则 ADC采样周期一周期大小为
20us /239.5 。 ADC时钟频率约为 12 MHz。
将PCLK2 6 分频后作为ADC 的时钟,则可知ADC 时钟频率为 12MHz
上一篇:stm32PWM输入模式测量脉冲速度和占空比
下一篇:STM32F103RCT6之FLASH读写操作
推荐阅读
史海拾趣
背景:随着业务的不断增长,Force Technologies Ltd意识到单一市场已无法满足其发展需求。于是,公司制定了明确的国际化战略,旨在将产品和技术推向全球。
发展:通过在欧洲、北美和亚洲等地设立研发中心和生产基地,Force Technologies Ltd成功构建起全球化的运营网络。同时,公司还积极参与国际展览和交流活动,不断提升品牌知名度和影响力。在国际市场的推动下,公司的销售额和市场份额均实现了快速增长。
近年来,电子行业面临着技术更新迅速、市场需求多变等挑战。B&B公司积极应对这些挑战,不断调整和优化产品结构,加强技术创新和人才培养。同时,公司也密切关注行业动态和市场需求变化,为未来的发展做好充分准备。
这些故事虽然无法涵盖B&B公司发展的全部细节,但可以从不同侧面反映出公司在电子行业中的成长轨迹和发展脉络。作为一家在电子行业中具有一定影响力的公司,B&B公司的发展历程无疑是一个充满挑战和机遇的过程。
ASC Capacitors的创始人,凭借对电子行业的深厚情感和对电容技术的独到见解,于XXXX年创立了这家公司。他们深知电容在电子行业中的重要性,因此立志要打造一家专业制造高质量电容器的企业。从最初的几间厂房和几名员工,ASC Capacitors凭借坚韧不拔的精神和对技术的执着追求,逐渐在电子行业中崭露头角。
在电子设备的制造过程中,螺线管是不可或缺的元件之一。然而,传统的螺线管生产方式存在效率低下、质量不稳定等问题。Deltrol Controls通过引进先进的生产设备和技术,实现了螺线管的精细化生产。这一举措不仅提高了生产效率,而且保证了螺线管的质量稳定性。凭借这一优势,Deltrol Controls在电子行业中的竞争力得到了显著提升。
德芯半导体在发展过程中,积极拓展合作伙伴关系。公司与国内外多家知名企业建立了长期稳定的合作关系,共同开展技术研发和市场推广。这些合作伙伴不仅为公司提供了技术支持和市场渠道,还为公司带来了更多的商业机会和发展空间。通过与合作伙伴的紧密合作,德芯半导体在半导体行业中树立了良好的口碑和形象。
为了进一步扩大市场份额,义隆电子积极实施国际化战略。公司在台湾新竹科学园区设立了全球营运总部,并在亚、美等二大洲建立了密集的行销暨技术中心。通过不断拓展国际市场,义隆电子的产品已经销售到全球各地,赢得了广泛的客户认可和信赖。同时,公司还积极寻求与国际知名企业的合作机会,共同推动行业技术的发展和创新。
这段代码中,为什么case 0x1B: 时就会报错:F11EX.c (156):error c175 :0x1b :duplicate case value 呢? switch (keyboard_data) { case 0x45: //0 {;} break ...… 查看全部问答∨ |
|
关于51的一段小程序请大家帮帮忙不知道怎么弄了两个程序结果不一样 for(i=0;i<10;i++) { ad=read2543(0x80); //0x80第九通道 ad1=ad; k=k+ad1; } k/=10; a=k; 我用数码管显示如果直接显示k是正确的值如果加上a=k;结果显示是错误的为 ...… 查看全部问答∨ |
|
具体来说:比如我按下a键,只进行一次a输入的相应并且只显示一个a,必须a键弹起后再按第二次,才会进行第二次响应。 我知道windows下改很简单,不知但在vxWorks中要用程序怎么实现。希望高手帮忙!… 查看全部问答∨ |
|
在vxworks操作系统下 建立一个socket后,使用rc=connectwithtimeout(5秒),如果返回rc==error 则close掉socket连接 但是每次调用close后,总是返回-1失败。在shell下察看,socket描述符已经被释放了 但是通过netStackSysPoolShow察看,socket ...… 查看全部问答∨ |
|
在LPC2103上移植的UCOS II ,为什么下载至RAM时会出现下面的问题: Fatal Error[e72]: Segment FIQ_STACK must be defined in a segment definition option (-Z, -b or -P) 但是下载到flash时完全正常; 还有一个问题,flash模式下调试 ...… 查看全部问答∨ |
【M4开发板Hanker试用狂-Shower.Xu】5、myPaint-我的小画板 折腾了一天,总算搞完了。自从参看例程代码,弄明白了触摸屏驱动后,觉得触摸屏的操作太方便了,而且没有之前想象的那么难用,我们只要设置好AD和定时器触发采样,驱动程序就会把采样值分析并生成三个参数(unsigned long ulMessage,long lX, l ...… 查看全部问答∨ |