HPM5300EVK开发板优秀测评报告(一)

电子说

1.3w人已加入

描述

#1

ADC读取

今天来看看先楫HPM5361的ADC读取例程,先楫HPM5361的ADC是支持16位的模数转换的,精度比一般的MCU 12位/10位的ADC都要高;采样精度更高。

打开了HPM5361的ADC16的程序

PWM输出

程序实例包括了ADC的四种读取模式

/** @brief Define ADC16 conversion modes. */

typedef enum {

    adc16_conv_mode_oneshot = 0,     单次转换

    adc16_conv_mode_period,

    adc16_conv_mode_sequence,

    adc16_conv_mode_preemption

} adc16_conversion_mode_t;

PWM输出

查看程序中使能的ADC口,可以在board.h里找到定义的ADC 口;这里使用的是ADC0.11;也可以自行修改。

PWM输出

ADC0.11在板子上是左边接口的ADC-A

PWM输出

程序默认输出是16位的数,为了直观点输出电压,我这里在第一种转换下修改了读取的处理,将读到的ADC值转化为电压值;

PWM输出

修改后通过串口的返回值就可以很直观的看到测试的电压值啦。

PWM输出

#2

互补PWM生成

PWM的全称是脉冲宽度调制,常用于设备控制,例如驱动电机,LED调光,无源蜂鸣器发声等等。

HPM5361硬件上PWM的引脚参考原理图是以下的引脚

PWM输出

首先是初始化IO口配置成PWM输出

PWM输出

板上配置PWM的PWM0 ,时钟,PWM输出的通道

PWM输出

PWM的时钟是连接在AHB外设的频率160MHz,从规格书上查到

PWM输出

PWM输出

加载reload是PWM的周期时间,设置为20 Khz的载波周期时间是50us,其他PWM周期可以调整参数

PWM输出

PWM输出

PWM输出

我想配置输出PWM互补模式,带死区输出;参考了例子的

generate_central_aligned_waveform_in_pair】

对于PWM需要配置好STA起始寄存器,RLD重载寄存器,比较寄存器CMP,互补的配置,死区时间

PWM输出

PWM输出

具体的配置程序

PWM输出

PWM 互补占空比更新程序;配置CMP1,CMP2的值;CMP1~CMP2的差值是正占空比的大小。

PWM输出

PWM输出

PWM输出





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分