3207|1

85

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【AT32F421测评】+ COMP比较器使用 [复制链接]

  本帖最后由 dmzdmz666666 于 2021-4-30 23:33 编辑

本章测评我将进行对AT32F421内部比较器的测试,AT32F421内部有一个低功耗的比较器,可以作为独立器件(有IO口作为输入输出口),也可以和定时器进行联调.比较器的输入还可以使用内部的参照电压,这样就比较方便.同时,比较器支持可编程的迟滞,消隐输出,还可以控制工作的速度和功耗.

在这里,我将测试比较器的模拟信号调理功能,分别用内部参照电压和外部IO口(PA4)输入作为比较器的负极端,用PA1作为比较器的正极输入,用PA0作为比较器输出.

这里是参考官方提供的BSP中AT_START_F421中的COMP中的COMP_Out示例.

首先,在HARDWARE文件夹中新建COMP.c 及其对应的h头文件。然后在FWLIB中添加at32f4xx_comp.c、如下图所示

第二步,在COMP.c编写COMP_Configuration函数,首先跟之前的外设使用一样,配置GPIO和对应的时钟,我们将PA1和PA4配置为模拟输入输出模式,将PA0复用为COMP_OUT,部分配置如下图所示,

接下来,进行比较器的配置,首先,通过以下语句来使能比较器的时钟

RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_SYSCFGCOMP, ENABLE);

如果要将内部参照电压作为比较器负极输入,添加以下代码,同时AT32F421还支持1/4、2/4 、3/4倍参照电压输入

COMP_InitStructure.COMP_INMInput = COMP_INMInput_VREFINT;

如果要将IO外部电压作为比较器负极输入,添加以下代码,这里我选择PA4作为负极端,添加以下代码

COMP_InitStructure.COMP_INMInput = COMP_INMInput_IN1;//PA4

这里要说明一点,内部输入和外部输入只能二选一。

因为AT32F421比较器的输出不仅可以从IO口输入,还可以输入到定时器,但作为模拟信号调理,我这里配置为不输出到其他外设,见以下代码

COMP_InitStructure.COMP_Output = COMP_Output_None;

同时在实际测试过程中,我发现在模拟信号调理时,开启迟滞功能和不开启输出效果差距很多(当然了,可能是我的信号源问题)

COMP_InitStructure.COMP_Hysteresis = COMP_Hysteresis_High;

上面这句是开启高度迟滞,

COMP_InitStructure.COMP_Hysteresis =COMP_Hysteresis_No

上面这句是不开启迟滞

接下来,我会对比这两者的区别

具体的代码请参考我的附件,最后在main函数里调用COMP_Configuration();就可以使用比较器功能。

接下来,我将用示波器,信号发生器和万用表来进行测试比较器的实际效果。

我先用单片机内部参照电压作为比较器负极输入,同时不开启迟滞,可以观察到,在正极输入1KHZ的0-3.3V的正弦波时,比较器将输出0-3.3V的方波,正好可以证明其是轨到轨的,因为可以输出的高电平是工作电压;同时,通过示波器的光标进行测量,可以看到比较器是时1.2V时进行翻转的,因为通过之前的实验和数据手册展示,单片机的内部参照电压为1.2V左右,实验现象符合预期,就是当正极小于1.2V时,比较器输出低电平,高于1.2V,输出高电平.

但是将波形放大,会发现比较器在1.2V附近会反复比较,翻转,造成了实际波形的上升沿有多种波形重合,造成这种现象的原因,我以为一方面可能是我输入的波形不是理想的,存在一些毛刺,另一方面是单片机自身的原因,因为参照电压不是一个恒定值,它也是会变化的,同时比较器自身也是会存在一定的误差.

为了减少这种反复比较的波形产生,我开启了比较器的高度迟滞,果然,波形变的干净了不少

最后我测试了一下外部IO口作为比较器的负极输入端,我在PA4上输入电压2.000V,实际效果如下

通过改变外部输入电压的值,可以改变输出方波的占空比,接下来,通过一个gif来进行展示,

 

 

最新回复

COMP比较器使用,看示波器波形测评很完美 期待下来其他项目测试   详情 回复 发表于 2021-5-1 17:52
点赞 关注(1)
 
 

回复
举报

6802

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

COMP比较器使用,看示波器波形测评很完美

期待下来其他项目测试

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表