查看: 153|回复: 0

[GD32F450方案分享] ADC采集+PWMDAC输出

[复制链接]

10

主题

0

好友

177

积分

童生

Rank: 2

  • TA的每日心情
    开心
    2017-6-14 23:30
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-6-17 11:25:21 |显示全部楼层
    GD32F450在硬件层面上对ADC的设计非常用心,采用与STM32F4系列配置相同的12位ADC,有19个多路复用通道,可以转换来自16个外部通道、2个内部通道和一个电池电压(Vbat)通道的模拟信号,这样标准的配置,在市面上的Cortex-M4F MCU市场上算是中规中矩。但是GD32F450的ADC官方例程却非常不走心,官方例程中同时开启ADC0和ADC1,并且开启了ADC0_CH3、ADC0_CH4、ADC1_CH3、ADC1_CH4四个通道,据坛友@zhjb1的原话描述,这四个ADC通道实际上只有ADC1_CH3是有效的,这个通道连接在PA3上面。因此,要做ADC实验,就需要在PA3引脚上面接一个电位器的输出端。函数中除了要初始化ADC硬件外设以外,还要设置过采样参数,数据对齐格式等等,由于我们只是采集单通道的ADC数据,因此直接按照官方例程来走就可以了,设置单通道采集时间为144,禁止触发,规则采样,向右对齐格式,禁止扫描等等。

    1.JPG


        再来说说PWMDAC,单片机的DAC外设分两种,一种是硬件DAC,另一种就是今天的主角PWMDAC。硬件DAC是单片机自带的外设,是通过直接改变引脚的输出电压来实现数模转换的功能,DAC的驱动库在GD32官方库里面的名字叫做gd32f4xx_dac.h。由于DAC的库并不完善,并且实际应用也不如PWMDAC好用,因此我这里只使用PWMDAC。

    2.JPG

                PWMDAC的原理是通过改变PWM波的占空比,来间接改变引脚的输出电压,PWM波是一种数字逻辑波而并不真正改变输出电压,引脚只有高电平和低电平的跳变,整个过程中只有高电平电压和低电平电压两种,没有别的任何电压存在。
        这个实验中,我们需要采集ADC通道的输入电压,并按一定比例转换成PWM波的占空比,来实现PWMDAC的效果。

    1.gif
        上传一份工程文件和头文件。 工程文件.zip (329.42 KB, 下载次数: 6)

    回复

    使用道具 举报

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

    关闭

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

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

    GMT+8, 2017-8-18 09:04 , Processed in 0.177841 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部