MAPS四色板系列K64学习笔记——配置ADC和PWM

分享到:

第一次接触四色板,飞思卡尔FAE在ECBC授课完以后,正式开始学习K64了。今天跟大家分享的是关于K64的ADC模块和PWM模块的一些配置问题。
 
飞思卡尔MAPS系列四色板提供了ADC的实验模块,具体电路如下
FpC2dP9lhD4m-GySA5wDmRggHRAr
 
 
其中Ain0与Ain1直接连接到MCU的两路ADC引脚,
 
Ain0连接ADC0_DP0,Ain1连接ADC_DM0,通过采集其中任一一路ADC的数值,来调节LED亮度。
 
FtEnQRYZBYOqneGtfjQbqqYiWBdB
 
 
MCU的ADC配置
飞思卡尔官方提供了两种配置ADC模块的方法,一种为外设Driver层配置方法,一种为HAL(硬件抽象层)配置方法。
 
Driver层配置方法:
 
Fqv_g1kASMAGpMr46v8Lrx2tyfct
 
HW_ADC0在系统头文件M64F12_adc.h中已经宏定义,定义如下:
 
FvKG1-zaUBsElWkb9bYfxaoDbbuC
 
具体是HW_ADC0代表ADC0,HW_ADC1代表ADC1。在Driver层配置时,先定义两个结构体
 
 
 
Fv_r007QFN3NsmzM2jpyhPXejHp7
将MyAdcCalibraitionParam结构体地址传送至
 
ADC_DRV_GetAutoCalibrationParam (uint32_t instance, adc_calibration_param_t *paramPtr)
 
可以直接从Driver层的代码中得到ADC的标准配置,以下Driver层部分代码的截选
 
 
 
Fo7Br2p-hYWxFojjirjtXSdv-_Re从上面代码可以看出,Driver层的标准配置其实是调用了HAL层代码,自动配置了寄存器,
 
这样用户直接调用Driver层即可以依照标准配置ADC模块。在Maximum Average配置中可以看出,其采样32此后取平均值,Lowest ADC Frequency中的代码表示ADC时钟频率为总线频率的8分频,然后设置了参考电压以及是否为触发模式。
 
在得到以上标准化参数后,通过
 
ADC_DRV_SetCalibrationParam(uint32_t instance, adc_calibration_param_t *paramPtr)
 
来设置标准化参数。然后通过结构体MyAdcUserConfig来设置用户自定义的参数
Fg_B0BFB_FMV_KXMW0QnI_XOfQzw
 
 
 
 
在这个结构体中可以设置很多参数,飞思卡尔提供的Driver层中,设计了三种可供选择的模式参数。分别如下,
 
FsyCmX3zfdL-3Ucp3IE_VeRjZuU6
 
其中分别为阻塞模式,中断模式以及触发模式,在不同的函数中,将自动配置userConfigPtr结构体。
 
在本次实验中,我们选用的是触发模式。最后
 
FsXOGYSFV-nxnulBSX7d73G060Ot
 
初始化ADC即完成了ADC模块的配置。
 
最后通过以下代码段,可以得到ADC返回的值。
 
FjW9NaRcjL3KpQJtCyazH6U65p3W
 
将得到的MyAdcValue通过转换得到最终的电压值。
 
 
MCU的PWM配置
本次实验的PWM模式同样是通过Driver层函数编写的初始化。其初始化代码如下,
 
FnIADaaTgsEykBSDHI8TYJE3Tc9-
 
通过configure_ftm_pins函数完成引脚的复用功能。而memset函数完成对ftmInfo的初始化,通过FTM_DRV_Init对BORAD_FTM_INSTANCE引脚的功能进行初始化。此时的初始化是对FTM的初始化,还未对PWM的功能进行初始化。下面的结构体和函数对FTM的PWM功能进行了初始化
 
FqFSuFBC8EcIrzLD3L2MRhLErEVa
 
 
通过改变uDutyCyclePercent的数值可以改变PWM的占空比。以下是占空比设置成50的输出波形。
 
Fp0XL5kTBvIq01EemNex_CWAot-a
 
 
最终效果
贴上主程序中的部分代码段
Fo1hYoAsNtgy7w_tUR1PVcaElfXV
 
 
最后的效果~
 
Fq9gL-2xniXkmwCcEYC3bpiz1gSP
 
谢谢大家,后续继续分享一些关于四色板的学习资料,敬请期待!
继续阅读
LPC公布2017新产品路线图,并推出LPC54608官方开发板活动

自十多年前首次发布以来,LPC就一直引领着32位ARM MCU的潮流。其无以伦比的简单易用性、设计灵活性和先进的集成度,不断改变着MCU市场的蓝图。

恩智浦推出全新Kinetis KE1xF与KE1xZ MCU进一步扩展5V MCU产品阵容

恩智浦半导体(NASDAQ:NXPI)今日宣布推出全新KE1xF和KE1xZ MCU,进一步扩展了其Kinetis E系列产品线。全新MCU产品采用ARM® Cortex®-M内核,不仅具备更加强大的性能,还拥有更高的存储容量,并集成了更多的抗干扰IP。

恩智浦MAPS四色板体验:MAPS四色板认知

我们先来认识一下飞思卡尔最新推出的这套四色板,四色板分为四个模块:MCU板,外设 板,特殊功能板和桥接板。我们拿到的这一套件包括MCU板和外设 板,MCU板以一款ARM Cortex M4内核的K64芯片为核心构建了基本系统和对外接口,外设板集成了我们在一般嵌入式产品设计和评估中用到的所有基本模块。

MAPS K64教程之恩智浦四色板MAPS K64神奇的摇杆

本实验用四色板的的摇杆键(上、下、左、右、选中5个键)控制显示屏输出相应指示图片,比如按摇杆的左键,图片显示向左。实验准备:四色板(MCU主板和外设板),安装好的IAR,烧录并安装好Jlink驱动,串口调试助手Putty,Image2LCD.exe程序。

MAPS K64教程之恩智浦四色板MAPS K64神奇的LED灯

恩智浦的FAE介绍了利用四色板开发应用的软硬件环境,并安排了两个迷你Project,运用IAR编程实现。本实验的目的是用四色板上的电位计模拟ADC,用其电位并控制PWM输出,调节板上LED亮度。经过调试,程序基本上调通,总结下调试过程。