查看: 263|回复: 1

[GD32F190方案分享] GD32F190 多路信号采集

[复制链接]

4

主题

0

好友

77

积分

童生

Rank: 2

  • TA的每日心情
    无聊
    2016-5-17 09:16
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2016-5-13 16:08:04 |显示全部楼层
    本帖最后由 wlf19890312 于 2016-5-13 16:14 编辑

    这一步是次要的 重要的是 前期的程序怎么写  怎么实现这个功能。
        原本是打算准备用190ADC的注入通道 为何要用注入通道  实际上注入通道好处大大的可以代替软件做一些事情 注入通道有个偏执寄存器 就是任何输入这个通道的ADC结果 都会被减去这个偏执 并且注入通道的寄存器是带有符号扩展位的 也就是说 加入你的偏移量设置的是 1000 如果你的ADC 采样结果是2000 那么通过注入通道之后的结果就是2000-1000=1000 再如果你的偏移量是3000 ADC采样结果2000那么结果就是 2000-3000=-1000  这么说我想大家都明白了

    GD32F190ADC.png

           很多人不明白 减去这个直流分量有什么用 那就举个例子 例如实际应用中很放大电路 为了节省板子面积 和成本 都会选择单电源放大电路 但是单电源不能放大双极性信号 所以这时候必须在交流信号叠加一个直流分量才能进入放大电路进行处理 但是在程序中你又需要去掉这个直流分量的时候 就可以在注入通道寄存器设置个偏移量来减去这个直流分量
           说了这么多已经可以开干了 我当初的设想是 定时器 触发ADC转换 然后用DMA 来吧ADC的数据发送至缓冲区 当然是使用注入通道 但是有个前提 注入通道只能最大支持四个通道 注入通道.png

    四个通道 对于190的小心脏 采样率已经够了 多了采样率只能做到非常低 也没什么必要 所以暂定两个通道来采样两路信号 一路正弦信号 一路余弦信号
           方案和思路好像都已经很清晰 那么就开始干了,
    规则通道.png


    以上是 ADC初始化部分  也就是写道这里的时候 我感觉前面的方案 就是呵呵哒 为何 最后我吃惊的发现 ADC注入通道有四个独立的数据寄存器  但是ADC规则通道只有一个数据寄存器 也就是说 规则通道你不管设置几个通道到最后每个通道的转换结果都是存在这个寄存器里面  这四个独立的寄存器有什么影响呢 影响就是到最后你即使用多个ADC注入通道采集数据 又使用DMA通道来传输采集的多通道结果 你只能使用一个通道并且每转换一次就要去重新切换DMA的源地址   因为DMA的源地址不能循环递增 DMA的源地址就是ADC转换后的数据寄存器地址(这个源地址取决于你使用什么通道  注入通道或者规则通道) 多个通道使用DMA传输数据没转换一个通道就切换一次源地址 这样做感觉CPU好累 这特么的跟不使用DMA也没什么区别了  用了 不但单片机累  心也累...
         上面都是扯皮 下面进入正题 什么注入通道多个通道 又DMA的大家就不要考虑了  果断放弃 还是老老实实的用规则通道来搞多路ADC 转换吧 规则通道具体什么代码之类的  去 搜索引擎 搜一下 一抓一大把 基本上都能用 为了不让大家养成随手拿来就用 出了问题也不知道出在哪里 我就不上传那几十行代码了
           最终的方案是 定时器触发ADC转换  ADC转换完成后把数据存放在缓冲区里面 别且打开DMA中断 在采集500个数据后进入DMA中断 注意两个通道的话 每个通道的结果在缓冲区里面 是交叉存在的  定时器的采样率为10KHZ  如下图信号源参数 QQ图片20160513155832.jpg

    采集出来的数据 用串口示波器软件绘图 没有用示波器观察(我想没这个必要 正确不正确一般自己算一下就知道了)
    曲线.png

    如果去掉软件的曲线平滑功能 可以看到下图 串口结果.png

    每个正弦或者余弦信号周期内基本上是刷新了10次 1KHZ的信号每个周期采样了10个结果 采样率=10×1K=10KHZ 跟程序的设置一样 是对的
          做完这个项目感觉真是很蛋疼 老纠结一些不太实用的功能 当然 我感觉那个注入通道如果每个通道都可以映射到注入通道的话 那么最后DMA就可以用一个源地址了 这样子感觉会方便很多 GD是中国的公司 接地气 如果是ST你这个想法 跟他们有鸟的关系
    补上测试图片 测试图片.jpg
    回复

    使用道具 举报

    195

    主题

    3

    好友

    9659

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2016-5-13 16:21:21 |显示全部楼层
    文章不错,请内容去经验频道一并发一下,复制粘贴即可,可以有双重奖励哟http://jingyan.eeboard.com/
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /5 下一条


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-11 02:24 , Processed in 0.121158 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部