微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 基于KL25的ADC乒乓模式采样——上篇

基于KL25的ADC乒乓模式采样——上篇

时间:10-02 整理:3721RD 点击:

ADC 与 TPM 是 Kinetis 的 L 系列 MCU 的重要模块, ADC 可为开发者提供最高精度可达

16 位的 A/D 采样,而 TPM 可用于输入捕捉、比较输出以及 PWM 输出等,俩模块功能强大﹑

性能优越,早已让飞粉们垂涎三尺,但 ADC 与 TPM 的寄存器繁多,加上工作模式多样,常让

小伙伴们望而却步(心里那个恨啊)。飞思卡尔中文论坛支持小组与飞粉们心有灵犀,知道大

家在使用 ADC 与 TPM 过程中遭了不少罪,所以果断推出此文,通过 PE+ADC+TPM 的强强联

合,实现 ADC 的 Ping-Pong 模式。

①运行平台     

  • FRDM-KL25Z
  • CW10.4或10.5


②预备知识

1.   ADC特性介绍:

  • 采用高达16位精度的线性逐次逼近算法(速度比Sigma  Delta有优势,精度还能达到如

此程度,实属不易);

  • 具有多达4对的差分模拟输入和24个单端模拟输入引脚(应该能满足一般工业要求啊);
  • 输出模式支持:差分为16位、13位、11位以及9位模式,单端为16位、12位、10位以及8位模 式;
  • 输入时钟种:bus_clock、bus_clock/2、ALTCK、ADACK,且ADC可配置不同的采样

速率和转换速度。

  • 硬件平均功能(可节省代码量,感觉挺实用);
  • 具有小于、大于、等于、范围内、范围外和可编程值的自动比较中断;
  • 内置温度传感器(用于监控芯片温度);
  • 具有自校准模式;


但就罗列出的特性即可看出ADC功能是很强大的,应付一般的工业应用是没有任何问题的,

如果小伙伴想更深入的了解ADC模块的原理结构(如图1所示)、应用细节,可查阅参考手册

的ADC章节。



图 1 ADC内部结构框图


2.   TPM特性介绍:


  • 可选择不同的时钟源:MCGIRCLK、OSCERCLK、MCGFLLCK、MCGPLLCK;
  • 具有16位的计数器,可以自由计数,计数方向可加亦可减;
  • 包含有6个通道,可配置为输入捕捉、输出比较和边缘对齐或中心对齐PWM模式;
  • 所有通道都可产生中断和DMA请求;
  • 可选的输入触发源用于复位或启动计数;

TPM的时钟模式是相当多样的,能胜任大多数客户对时钟模式以及PWM输出的要求,而K

系列MCU的FTM模块作为其增强版,其性能更加优越、功能模式也更加丰富,能满足更多用

户的要求(在以后的文档中会有介绍)。TPM内部结构原理图如下所示。



图2 TPM内部结构框图

③ 例程功能

配置TPM1的CH0和CH1为Edge-Aligned PWM模式,并以CH0F,CH1F标志作为ADC0硬件

触发源(工作原理如图3所示),使得ADC0形成Ping-Pong模式,采样内置温度传感器和Bandgap

的值,并将采样的数据通过串口传出。



图 3 CH0F,CH1F触发ADC

   ④ PE配置说明

例程使用下列 IO 引脚资源,以及每个 IO 引脚的功能描述如下:




为了节省小伙伴们创建新工程的时间,避免创建工程中的重复劳动,建议大伙好好利用

Processor  Expert的导出及载入特性,在此例程中,本人首先将例程hello  world的工程配置导出,

接着在新建的工程中导入hello world的工程配置,避免重新配置Processor和Components操作。


工程建立

小伙伴们可采用两种方法建立自己所需要的工程,第一种(最简单易懂)即从零开始,利

用PE工具建立新工程,本例程就是采用这种方法;而第二种即是导入现有工程,然后在此基

础上根据所需工程要求做修改。这些应该对小伙伴们来说应该不陌生吧,所以也不做过多的介

绍,如有对工程建立有疑惑的童鞋们可查阅本文末尾的参考资料。


Components 配置

1)   Processor 配置

如上所述,本例程建立采用工程建立的第一种方式,至于对 Processor 配置,则是利用

Processor Expert 的导出及载入特性,直接导入 hello world 的工程配置。



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top