查看: 3479|回复: 2

ECBC实战营:Freescale四色板初体验

[复制链接]
  • TA的每日心情
    奋斗
    2015-5-7 09:02
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2015-5-6 15:13:52 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 短发小黄毛 于 2015-5-8 09:02 编辑

    本文引用自 爱板网 经验频道作者: ECBC_LYX
    ECBC电子工程师实战训练二期学员招募活动现正如火如荼地进行,我们也为您带来ECBC课堂上的实时报道,欢迎大家踊跃报名。加入ECBC实战训练营,3个月的集中训练,海内外名师的倾心授课,资深工程师的贴身辅导,用三个月换一个美好将来!值!
    首家ECBC电子工程师实战训练二期开营:从无到有,全程介入新产品诞生过程:调研论证、竞争分析、方案确定、器件选型、工具使用......在实战中解读理论、提炼经验、培养习惯;全面了解职场生存的必备技能:商业思维、技术型项目立项与管理、团队协作、专业英语、项目答辩技巧与规范;三个月高强度实战训练,锻造工程精英,成就行业领袖——ECBC电子工程师进阶实战训练营(http://www.ecbcamp.com/camp)。

    下面为大家带来ECBC实战营Freescale四色板初体验:

    实验一:

    实验目标:利用板载电位器控制LED的亮度变化。

    实验原理:

    (1)FTM(弹性定时器模块)是一个支持输入捕捉、输出比较、产生可用来控制电机的PWM信号和电源管理应用的通道定时器。

    每一个通道都可配置为输入捕捉、输出比较或者边缘对齐的PWM模式。

    (2)K60的ADC模块支持差分模拟输入和单端输入模式。其中单端支持16位、12位、10位以及8位模式。

    知识点1:ADC部分

    (1)SIM_SCGC6使能ADC的时钟:这里选择第27位ADC0=1


    (2)配置ADC配置寄存器(CFG)


    7.ADLPC: 低功耗选择;

    6-5.ADIV: 时钟分频选择,1/2/4/8分频;

    4.ADLSMP:采样时间配置;

    3-2.MODE:转换模式选择,单端或差分,不同的精度选择

    1-0.ADICLK:输入时钟选择,总线时钟或交替时钟等;

    (3)配置ADC状态和控制寄存器(SC1n)


    7.COCO:转换完成标志

    6.AIEN:中断使能

    5.DIFF:差分输入使能

    4-0.ADCH:输入通道选择

    知识点2:FTM的PWM部分

    (1)状态和控制寄存器(FTMx_SC)


    7.TOF:定时器溢出标志

    6.TOIE:定时器溢出中断使能

    5.CPWMSWM中间对齐选择

    4-3.CLKS:时钟源选择

    2-0.PS:预分频系数选择

    (2)计数器寄存器(FTMx_CNT)


    15-0.COUNT:16位计数器,主要由向上计数和向上向下计数

    (3)通道n控制和状态寄存器(FTMx_CnSC)


      (4)模寄存器(FTMx_MOD)


    实验步骤:

    1.电路图引脚

    飞思卡尔四色板板载两个可调电位器用来模拟ADC输入信号,我们选择其中的RV1来作为信号源:


    另外我们选择PORTA7作为FTM控制输出边缘对齐的PWM波形的引脚。

    2软件编程

    主要分为两个部分,分别是ADC采样可调电位器电压部分和FTM受控制输出PWM波形

    (1)ADC部分

    ADC配置与初始化:采用ADC0通道单端模式,12位分辨率,其他参数采用默认设置

    adc_calibration_param_t MyAdcCalibraitionParam;//calibration parameters

    adc_user_config_t MyAdcUserConfig;//ADC parameters

    adc_state_t MyAdcState;

    volatile int32_t adcValue;//the value we get

    /* Auto calibration.自动校准 */

    ADC_DRV_GetAutoCalibrationParam(HW_ADC0, &MyAdcCalibraitionParam);

    ADC_DRV_SetCalibrationParam(HW_ADC0, &MyAdcCalibraitionParam);

    /* Initialization for interrupt mode.中断模式初始化 */

    ADC_DRV_StructInitUserConfigForOneTimeTriggerMode(&MyAdcUserConfig);//set as one time trigger mode

    MyAdcUserConfig.resolutionMode = kAdcResolutionBitOf12or13;//12位单端分辨率,13位为差分模式

    ADC_DRV_Init(HW_ADC0, &MyAdcUserConfig, &MyAdcState);

    (2)FLM的PWM模式

    配置:

    ftm_pwm_param_t ftmParam = {

    .mode = kFtmEdgeAlignedPWM,//边沿对齐PWM模式

    .edgeMode = kFtmLowTrue,

    .uFrequencyHZ = 240000,

    .uDutyCyclePercent = 50,//占空比

    .uFirstEdgeDelayPercent = 0,

    };

    configure_ftm_pins(BOARD_FTM_INSTANCE);//FTM0通道输出

    ftm_user_config_t ftmInfo;

    memset(&ftmInfo, 0, sizeof(ftmInfo));

    FTM_DRV_Init(BOARD_FTM_INSTANCE, &ftmInfo);//初始化

    (3)主循环

    //获取AD值

    adcValue = getVoltage(0, false, MyAdcUserConfig.resolutionMode);

    //PWM输出

    FTM_DRV_PwmStart(BOARD_FTM_INSTANCE, &ftmParam, BOARD_FTM_CHANNEL);

    OSA_TimeDelay(50); //delay 50ms

    FTM_DRV_PwmStop(BOARD_FTM_INSTANCE, &ftmParam, BOARD_FTM_CHANNEL);

    //AD转换值作为PWM占空比输出

    float a=adcValue;

    float b= a/4095;

    ftmParam.uDutyCyclePercent =(b*100);

    实验现象:

    如下图所示

    (1)RV2电位器调到最小的时候,LD1灯不亮


    (2)RV2逐渐调大至最大值,LD1灯的逐渐变亮


    MAPS四色板专业评测
    图片素材.jpg

    ECBC实战营:国内外知名电子技术专家、资深工程师和研发经理贴身指导…… 了解高校电子专业相关教育特点, 熟悉行业产品设计、项目管理的开发流程与技术规范, 对教育有情结,对育人有情怀,借助名师指点,榜样同行, 让你迅速抛弃迷茫,清晰方向,积累技能,默化素养, 积累人脉,做好一切准备——为梦想!详情关注ECBC电子工程师进阶实战训练营(http://www.ecbcamp.com/camp)。


    本文为ECBC实战营独家授权爱板网经验频道发布,未经允许,谢绝转载。



    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 15:56
  • 签到天数: 2675 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-5-6 15:36:57 | 显示全部楼层
    感谢分享,希望能继续连载
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-8-14 14:10:00 | 显示全部楼层
    感谢分享,希望能继续连载
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 03:30 , Processed in 0.137585 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.