stm32教程之三重ADC交错采样
ps:本文基于stm32F407ZGT6单片机
stm32F4单片机单通道采集的最大采样率为2.4M,所以有时会难以满足较高频率的采样,于是查阅芯片手册,发现stm32F4支持多重ADC采集,利用每个通道的转换时间,错位采样,从而提高采样率,最大把采样率开到2.4*3=7.2M. (去年初学ADC时研究的,基于cube和HAL库的三重ADC交错采样参考资料不多,我也是研究了一段时间,写下这篇博客希望可以帮助到更多人。)
示意图如下:
以下是官方例子的说明,
In this example, the system clock is 144MHz, APB2 = 72MHz and ADC clock = APB2 /2.
Since ADCCLK= 36MHz and Conversion rate = 5 cycles
==> Conversion Time = 36M/5cyc = 7.2Msps
这是利用软件触发ADC连续采样的,我试了一下,是可行的。网上为数不多的参考资料也是按上述连续转换模式下的。
但是我是比较习惯使用定时器触发采样的,因为采样率连续可调,比连续转换灵活一些。
所以我开始尝试定时器触发三重ADC!
配置如下:打开TIM8,挂在APB2上,为144M
时钟频率配置多少呢?
打开芯片手册:
由此可知 触发源只需要触发ADC1 ADC2和3是根据芯片设定好的三重模式固有时间后自动开启采集的
故ADC1只需配置2.4M 144M/60=2.4M
ADC如何配置呢?
再看芯片手册!
DMA mode2 !
ADC1配置如下:
(选通道12是因为它纯净 干扰少)
记得打开DMA !
配置类似单通道ADC+定时器触发!
ADC2/3 同上 这里就不赘述了!
完成!
生成代码!
代码里如何写呢?
再再再次打开芯片手册!!
原来如此!我感觉我可以!
开启ADC123和TIM8:(注意三重ADC交替模式下,ADC1有固有开启函数)
编译!烧录!
去年测试的,疫情在家就不给测试图了QAQ
去年测试时是用信号发生器给了100khz正弦波信号,一个周期采到了72个点左右。
ps:据学长说这种方式不稳定,单片机工作量大时可能会出bug。
stm32教程之三重ADC交错采样相关推荐
- STM32F4系列探究1——三重ADC扫描连续采样+DMA双缓冲区存储
文章目录 前言 一.STM32F4的ADC理论知识学习 1.基础知识 2.扫描模式与连续模式 3.单ADC模式下双缓存机制的实现 4.三重同步采样模式 二.由定时器触发的单缓冲区模式 1.时钟树配置 ...
- STM32学习笔记一一ADC
前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. github:my github 注:博客所涉及的关于 stm32 的代码 ...
- STM32F103C8T6制作舵机测试仪详细图文教程 | 定时器触发ADC | DMA传输 | PWM输出 | RTC实时时钟 | USART串口输出 | OLED IIC显示
自主学习STM32已有一周,先实现一个小demo,算是给自己一个动力叭,有目标的学习收获会更多.虽然本科也修了嵌入式课程,但那种走马观花式的学习,最后真正得到的知识实在寥寥无几.个人理解,学习STM3 ...
- STM32单片机实现DMA+ADC+UART功能
突然想测试一下STM32单片机ADC采样速率问题,按照常规方法,可以通过ADC采样,然后将采样值打印出来.但是这种方法在处理和打印数据的时候会占用很多时间,导致处理数据的时间超过了ADC的采样时间.于 ...
- STM32 C++编程 004 Adc (数模转换)类
使用 C++ 语言给 STM32 编写一个 Adc 类 我使用的STM32芯片:STM32F103ZET6 我们使用的STM32库版本:V3.5.0 注意: 想学习本套 STM32 C++编程 的专栏 ...
- STM32F407三重ADC配置
#include "adc.h" #include "stm32f4xx.h" __IO uint16_t ADC_ConvertValue[3]={10,10 ...
- STM32 CubeMx LL库-ADC操作
STM32 CubeMx LL库-ADC操作 硬件选型 stm32f103c8t6 USB-TTL 关于STM32的ADC介绍这里有时间再补充,直接进入代码编写. 1. CubeMx-ADC配置 2. ...
- STC单片机通过ADC分段采样读按键实现方法
STC单片机通过ADC分段采样读按键实现方法 ✨在阅读官方FreeRTOS for STC32G12K128开源工程当中有使用到ADC键盘计算键码功能块,底层实现原理也很简单,就是通过串联电阻分压的方 ...
- STM8S系列基于IAR开发单通道ADC连续采样示例
STM8S系列基于IAR开发单通道ADC连续采样示例
- STM8学习笔记---ADC多通道采样
STM8S003单片机ADC采样通道总共有5个,从AIN2---AIN6,多通道采样时需要将ADC转换设置为单次转换模式,每次切换采样通道后,需要重新初始化 ADC,采样结果在中断中读取. IO口初始 ...
最新文章
- Numpy入门教程:练习作业01
- 【python】Series和DataFrame的简单介绍
- SICP 1.21 1.22 1.23 1.24
- 我所理解cocos2d-x 3.6 lua --使用Cocos Studio
- PHP快还是HTML快,PHP_HTML-加速、再加速,web开发人员是否必须掌握复杂 - phpStudy...
- c均值算法的设计与实现_如何使用C链表实现 LRU 算法
- 在ASP.NET中防止注入攻击[翻译]
- meteor 结合mysql_Meteor集合
- 自动化测试--testNG
- SAP SolMan 严重漏洞的自动化 exploit 代码遭公开
- 使用MSDN学习ASP.NET的工作流程
- javascript 模板
- 面试题:synchronized的底层实现(偏向锁,轻量级锁,重量级锁)
- hitool java_第三章:使用HiTool下载程序
- 创建asp网站iis发布网站用IP地址进行访问
- 电影院票务管理系统数据库设计
- mzy对于枚举的理解
- 二十一世纪“新元宇宙”奇幻小说作品系列连载
- 转贴一个关于DTO DAO VO BO PO POJO的^_^
- C++ STL源码剖析 笔记