一般对于高速的ADC通用解决方案是ADC+FPGA+单片机。这里可以利用STM32的并行数据接口(DCMI)对高速ADC数据进行采样。

这里采用的是STM32H7B0 + AD9226。STM32H7B0通过MCO输出时钟到AD9226然后输入到STM32 DCMI 的PIXCLK口,另留两个IO控制DCMI的VCLK和HCLK。注意这里不能使用AD9226的时钟稳定器,不然数据输出不对。

利用正弦波对AD9226的波形进行检验,可以看出AD9226数据的输出稳定周期在时钟的下降沿,所以DCMI的PIXCLK有限性设置在时钟下降沿。然后DCMI开启DMA接收。

针对如此高的速率,必须充分利用片内的DMA资源。DMA需要开启循环接收和DMA的半满中断和满中断,半满中断复制前半部分数据到外部SRAM或存储器(存储器速率要跟上),满中断复制后半部分数据。STM32H7B0有强大的MDMA可以快速复制大量数据。

注意:复制需要用定时器对数据进行预估,加入半满中断没有完成任务,满中断就来了,就发生了数据的堆叠,由于中断嵌套排队最终导致数据乱码。这种说明【1】ADC速率过快 【2】stm32时钟频率不够 【3】中断时间过长 【4】DMA 缓存过小。

这里采用 STM32H7B0 系统时钟280MHz,AD9226输入时钟25M,DMA缓存长度64k,可以保证数据的不丢失。注意中断任务不要使用printf等长时任务!

STM32利用DCMI对并口ADC高速数据采样相关推荐

  1. 20180626 STM32 ---利用KILE5 仿真IO口的波形图

    每次调试STM32程序的时候都要将其导入到板子中看调试的结果,比较费时间.可以利用KILE5 里面自带的仿真来实现IO口的输出波形的查看. ①点击Options for target ②点击 Debu ...

  2. STM32 利用空闲中断接收数据

    STM32 利用串口空闲中断接收不定长数据 利用cubeMX打开DMA串口接收中断 利用CubeMX打开串口中断 HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); HA ...

  3. STM32利用STM32CubeMX驱动SDRAM

    STM32利用STM32CubeMX驱动SDRAM 本次发布FMC总线驱动SDRAM的博客,为下次发布LTDC外设驱动RGB屏的博客做准备.利用STM32CubeMX和HAL库,生成的工程代码具有很强 ...

  4. 如何巧妙利用4个IO口驱动12个LED灯

    在电路设计过程中有时经常遇到单片机的IO口不够用的情况.对于这样的问题,我们可以选择换单片机,也可以尝试一些巧妙的设计来避免IO口不够用的问题.例如当我们在设计中遇到许多LED灯需要控制的时候,而单片 ...

  5. STM32利用SPI读写SD卡的程序详解

    STM32利用SPI读写SD卡的一些程序详解 关于SD卡的基础知识这里不做过多陈述,如果有对这方面感兴趣的朋友可以直接百度一下,有很多讲SD卡的文章,这里主要是针对SD卡的读写程序实现做一些详细说明. ...

  6. 多功能按键设计——利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按

    看了一个晚上,结合了马潮老师的书,才搞懂这个程序,确实经典!原文: 题目:多功能按键设计.利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按. (amobbs.com 阿莫电子论坛 ...

  7. stm32利用TOFSense模块测距教程

    stm32利用TOFSense模块测距教程 TOFSense是什么 简单来讲,TOFSense就是一个激光测距模块,它前面那个小小的黑框框就是它测距的地方即发射激光的地方.它有两种通讯方式:串口和ca ...

  8. STM32入门指南(5)—ADC的使用

    STM32入门指南(5)-ADC的使用 文章目录 STM32入门指南(5)-ADC的使用 前言 ADC简要介绍 ADC主要特性 ADC通道映射 ADC数据对齐 ADC转换模式 ADC转换时间 ADC配 ...

  9. STM32利用FATFS文件系统给SD卡读写数据

    STM32利用FATFS文件系统给SD卡读写数据 注:FATFS文件系统官方网址(内含各种函数具体功能及参数配置): FATFS文件系统官方网址 1. 所需.c和.h文件 FATFS中的文件的作用如下 ...

  10. stm32利用mqtt与小程序通信

    stm32利用mqtt与小程序通信 stm32连接服务器端 小程序连接服务器 本项目实现的功能如下:通过stm32连接esp8266,然后利用mqtt协议连接到服务器,同时小程序端也连接到服务器,通过 ...

最新文章

  1. java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)...
  2. 回顾国产手机4年沉浮,仍然只是靠这三招翻身
  3. 如何阻止表单的默认提交事件
  4. ssh连接远程主机执行脚本的环境变量问题
  5. Python Lambda 的简单用法
  6. bootstrap的表单验证 vue_分享几个基于Vue的UI库和开源项目
  7. main函数参数解析
  8. HTML怎么写入形状,css3写各种形状(收集篇...)
  9. Python学习笔记—Dict和set
  10. java 虚拟机内存修改_Java虚拟机内存参数设置
  11. 基于马尔萨斯的人口模型的一个Logistic模型(MATLAB)
  12. 天行健,君子自强不息
  13. 本地Remix与私链节点相连
  14. 计算机语言分几级,计算机语言分为三类:机器语言、低级语言和高级语言。()...
  15. 关于python3.9安装Airtest跑脚本“jinja2”报错的问题说明
  16. 北京近期校园招聘java_JAVA研发工程师-校招,北京
  17. 理解Sortino索提诺比率及Python实现
  18. 《宅男的android开发指南》(翻译)--4
  19. 0328 - 一日三更
  20. SQLMAP插件tamper编写与使用

热门文章

  1. linux下安装sg11,Linux安装SG11加密扩展组件教程
  2. VScode使用element-ui插件准备
  3. html设置一级标题二级标题格式怎么弄,word如何设置一级二级三级标题格式
  4. mysql repair table_mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
  5. wps共享文档无法连接服务器,WPS云文档链接分享后对方没有访问权限?解决办法在此...
  6. 前程无忧解密 + 推送
  7. 风靡健身圈的生酮饮食居然有这么多好处,受教了
  8. java转换docx为doc文件_JAVA - 将doc文档转为docx文档
  9. 腾讯云服务器芯片,腾讯云星星海重磅发布首款自研GPU服务器 占据业界几宗“最”...
  10. 微信公众号留言功能开通流程