在Kinetis上使用DMA进行脉冲计数

Similar documents
Freescale Semiconductor, Inc. Document Number: AN4872 应用笔记 Rev. 0, 03/2014 使用 KE06 上的四线式 I 2 C 接口 作者 :Ben Wang 1 简介 本应用笔记将描述使用 Kinetis E 系列 KE06 上的四线式

i.MX 6SoloX产品使用寿命估算

使用FlexIO模块模拟I2S总线主机

EEPROM Emulation Driver for the Kinetis E Series Microcontrollers Application Note

ControlSafe TM ControlSafe ControlSafe CSC CPU ControlSafe CPU CPU CPU CPU CPU I/O I/O I/O I/O I/O I/O CPU CPU CSC CPU CSC CSC /ControlSafe ControlSaf

Kinetis KL1x – 通用超低功耗MCU

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

PIC16F F MPLAB 08 16F LED 15 LED

EMC® VNX® Series VNX8000™ Block 安装指南

FlexIO 外设模块的主要特性 2 FlexIO 外设模块的主要特性 FlexIO 是指灵活的输入和输出外设 具有多种功能的高度可配置模块 允许模拟标准通信接口 支持多种协议和外设, 包括 : UART I 2 C SPI I 2 S LCD RGB CMT( 载波调制发送器 ) PWM/ 波形生

Moto Z


,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

Panaboard Overlayer help

基于中断和阻塞机制的MQX I2C驱动程序

外围器件-new.cdr

2 控 制 面 板 控 制 面 板 控 制 面 板 显 示 打 印 机 的 工 作 状 态, 并 控 制 打 印 机 的 基 本 操 作 图 2 ZT230 控 制 面 板 图 3 ZT220 控 制 面 板

Logitech Wireless Combo MK45 English

B _02_ch.indd

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

IC芯片自主创新设计实验

Microsoft Word - Atmel-45136A-Pick-Best-Microcontroller-Strom-Eiland-Flodell_Article_CS

目录

发行说明, 版

PowerPoint Presentation

IBM 全 球 企 业 咨 询 服 务 部 中 国 五 矿 筑 起 人 力 资 源 信 息 大 厦 2 回 顾 篇 慎 选 巧 选 软 件 平 台 由 于 五 矿 集 团 下 属 的 很 多 公 司 是 最 近 几 年 才 加 盟 的 新 成 员 企 业, 这 些 公 司 所 应 用 的 人 力 资

Measurement Studio Expands Your Test and Measurement Programming Power

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二


宏电文档

加 快 审 阅 和 标 记 工 作 流 程 Acrobat X 通 过 提 供 一 种 可 靠 的 文 件 格 式 扩 展 了 Office 和 SharePoint 的 协 作 服 务, 可 以 使 用 大 多 数 桌 面 应 用 程 序 生 成 这 种 格 式 并 使 用 Acrobat 或 免

SA-CPCB81TRA-CN (Panduit INdustrial Automation Solutions).indd

FPGAs in Next Generation Wireless Networks WPChinese

xueshu004.doc

國立臺東高級中學102學年度第一學期第二次期中考高一國文科試題

Page 2 of 12

Microsoft Word - Sunday

鎶ョ焊0

秘密大乘佛法(下)

!! :!!??!!?!??!!!... :... :'?'?! :' ' :'?' :'?' :'!' : :? Page 2

<D2B0D0C4D3C5D1C52DC8CED6BEC7BF202D20BCC7CAC2B1BE>

Freescale Semiconductor Document Number: AN4985 应用笔记 Rev. 0,09/2014 使用 Kinetis K22F 和 KV31F MCU 的高速运行模式 本应用笔记针对最新一代 Kinetis K22F 和 KV31F 系列微控制器撰写, 旨在解

员工签到录

Kinetis SDK K64 Users Guide

邏輯分析儀的概念與原理-展示版

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

关于建立境内违法互联网站黑名单管理制度的通知

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

68369 (ppp quickstart guide)


audiogram3 Owners Manual

Application Note Transient Voltage Suppressors (TVS) for 表 1 VISHAY 的 SM6T 系列的电特性 25 C 型号 击穿电压 器件标识码 V BR AT I T I T 测试电流 (ma) 关态电压 V RM 漏电流 I RM AT V

Microsoft Word - AN3291_Chinese.doc

untitled

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA

Microsoft Word - AN3259C

USB解决方案.ppt

1.ai



RESET OSCO OSCI OSC CPU WDTEN RC RESET PRESCALER PORTA (4-BITS) WATCHDOG TIMER Power on PORTB (4-BITS) PORTA [0:3] PORTB [0:3] LPD PORTC (4-BITS) LPDO

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

CANVIO_AEROCAST_CS_EN.indd

MATLAB 1

Kinetis L系列功耗管理

基于 ARM Cortex-M0 的 ES32F033x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V VDD 5.

CSA SONET/SDH GR 253-CORE ITU-T G.703 ANSI T Ethernet IEEE Std ANSI X Fibre Channel Optical Fibre Channel Electrical U

上海华虹宏力半导体制造有限公司 - Shanghai Huahong Grace Semiconductor

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

一 调 研 说 明 中 商 情 报 网 全 新 发 布 的 年 中 国 养 老 产 业 前 景 预 测 与 投 资 商 机 评 估 报 告 主 要 依 据 国 家 统 计 局 国 家 发 改 委 商 务 部 中 国 海 关 国 务 院 发 展 研 究 中 心 行 业 协 会 工

User’s Manual

SAPIDO GR-1733 無線寬頻分享器

DataNet_Solution2.ai

KDC-U5049 KDC-U4049 Made for ipod, and Made for iphone mean that an electronic accessory has been designed to connect specifically to ipod, or iphone,

幻灯片 1

ebook20-8

Microsoft Word - SDL600-zh-CN_V1.5.doc

untitled

1 TPIS TPIS 2 2

Microsoft Word - MAN2011A_CH_RTT.doc

T

利用MC56F84789的PWM和ADC驱动双PMSM电机FOC

Tel:


ESD.xls

1. 請 先 檢 查 包 裝 內 容 物 AC750 多 模 式 無 線 分 享 器 安 裝 指 南 安 裝 指 南 CD 光 碟 BR-6208AC 電 源 供 應 器 網 路 線 2. 將 設 備 接 上 電 源, 即 可 使 用 智 慧 型 無 線 裝 置 進 行 設 定 A. 接 上 電 源

JLX

<4D F736F F F696E74202D2034A1A2B4B4D0C2B8DFD0A3D2BBBFA8CDA8D0C5CFA2B7FECEF12DD5E3BDADB8DFD0A3D0C5CFA2BBAFBBE1D2E92D E >

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

TX-NR3030_BAS_Cs_ indd

中文手册

目录 1 H3C R4900 G2 服务器可选部件与操作系统兼容性列表 控制卡 GPU 卡 网卡 FC HBA 卡 TPM/TCM 模块 NVMe SSD PCle 加速卡 1-31 i

AI-AUTO-011 Saflex® Advanced PVB - Color Interlayer (Chinese)

PowerPoint Presentation

2 1 安 全 資 訊 有 觸 電 的 危 險 請 勿 開 啟 : 為 了 減 低 觸 電 風 險, 切 勿 把 蓋 ( 或 背 板 ) 移 去 機 內 並 無 使 用 者 可 自 行 修 理 的 部 份 等 邊 三 角 形 內 含 有 一 個 箭 頭 的 閃 電 符 號 主 要 用 於 警 告 使

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

目 錄 使 用 者 介 面... 3 檔 案 頁 籤... 3 配 置... 4 狀 態 列... 4 功 能 區... 5 說 明... 5 文 件... 7 修 訂 雲 形... 7 標 註... 8 文 字... 9 幾 何 中 心 點 的 物 件 鎖 點 等 角 製 圖 格 線.

IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I

Transcription:

Freescale Semiconductor Document Number: AN5083 应用笔记 Rev 0, 01/2015 在 Kinetis 上使用 DMA 进行脉冲计数 1 简介 本应用笔记阐述了如何使用 DMA 和通用 IO 模块进行脉冲计数 许多 Kinetis 系列微控制器具有低功耗定时器 (LPT) 和 FlexTimer, 可用于脉冲输入捕捉 然而, 当应用程序需要对多个脉冲输入进行计数时, 低功耗定时器则无法满足需求 例如,LPTMR( 低功耗定时器模块 ) 内部只有一个计数器 该计数器只能用作单脉冲计数器 本应用程序旨在使用通用 IO 来捕捉多脉冲输入, 并且使用 DMA 模块通道倒计数寄存器来进行脉冲计数 通过使用该方法, 在无 CPU 干预的情况下,Kinetis 芯片最多可同时对 5 个通道的脉冲输入进行计数 由于 Kinetis MCU 的兼容性, 不同的 Kinetis 子系列 (K60 除外 ) 芯片上均可使用该应用程序 所有 Kinetis K 系列共用相同的模块 (IP blacks), 因此在整个 K 子系列中实现代码复用比较简单 内容 1 简介...... 1 2 功能说明... 1 3 初始化和应用程序... 2 4 结论...... 4 5 功能限制...5 5.1 最大 DMA 速率...... 5 5.2 DMA 主循环计数器...... 5 2 功能说明 2015 Freescale Semiconductor, Inc.

初始化和应用程序 当外设请求使能并且触发信号到来时, 会产生一个 DMA 请求 ; 当 DMA 完成一次循环传输后,DMA 通道计数器会从重载值开始向下计数, 直到为零为止 如果将 DMA 主循环计数器设置为一个适当的值, 并且将 DMA 触发源设置为来自 GPIO 的外部边沿捕捉, 我们可以通过读取 DMA 通道的向下计数寄存器, 在该端口上进行脉冲输入捕捉 Kinetis K 系列集成了一个 DMA 请求多路复用器, 最多可允许 64 个 DMA 请求信号映射至任何一个 DMA 通道 因此, 我们安排 PORTA-PORTE 的上升 / 下降触发源到 DMA 通道 0-5 表 1. 通道请求源 DMA 通道编号 DMA 请求源编号源描述 DMA 通道 0 49 PORTA 请求 DMA 通道 1 50 PORTB 请求 DMA 通道 2 51 PORTC 请求 DMA 通道 3 52 PORTD 请求 DMA 通道 4 53 PORTE 请求 以下代码片段显示了将 DMA 通道请求源配置为相应的 PORT 请求 DMAMUX0_CHCFG0 = DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(49); //PORTA request DMAMUX0_CHCFG1 = DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(50); //PORTB request DMAMUX0_CHCFG2 = DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(51); //PORTC request DMAMUX0_CHCFG3 = DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(52); //PORTD request DMAMUX0_CHCFG4 = DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(53); //PORTE request 注由于 DMA 触发源基于 PORT, 一个 PORT 实例只能有一个引脚用作 DMA 脉冲输入 因此, 脉冲输入的最大通道数与芯片的 PORT 模块实例数相等 3 初始化和应用程序 若要初始化 DMA 多脉冲计数功能, 需执行以下步骤 : 对于 DMA 模块 : 1. 使能 DMAMUX 和 DMA 时钟, 配置 DMAMUX 请求源 2. 将 DMA 源和目标地址设为虚拟变量地址 3. 将 DMA 源和目标的主 / 次地址的调整值和偏移量设为零 4. 将每个 DMA 通道的向下计数计数器 (CITER 和 BITER) 设为相应值 5. 使能 DMA 通道请求等待外部触发器的信号 对于通用 IO 和 PORT 模块 : 1. 设置 PORT 引脚对通用 IO 复用 2. 在 PORT_MUX 寄存器上使能 DMA 的上升沿 / 下降沿请求 对于应用程序 : 1. 初始化 DMA 和通用 IO 模块 2. 在应用程序中读取 DMA 通道计数器以获取脉冲计数值 示例代码如下所示 : /* clock gate initialization */ SIM->SCGC5 = SIM_SCGC5_PORTA_MASK, SIM->SCGC5 = SIM_SCGC5_PORTB_MASK, SIM->SCGC5 = SIM_SCGC5_PORTC_MASK, SIM->SCGC5 = SIM_SCGC5_PORTD_MASK, 2 Freescale Semiconductor, Inc.

初始化和应用程序 SIM->SCGC5 = SIM_SCGC5_PORTE_MASK, /* set pin to GPIO function and enable DMA request source */ /* enable DMA and DMAMUX clock */ SIM->SCGC6 = SIM_SCGC6_DMAMUX_MASK; SIM->SCGC7 = SIM_SCGC7_DMA_MASK; 在配置 DMA MUX 触发器和源数量之前, 禁用 DMAMUX->CFG[ENBL] 位 /* clears register for changing source and trigger */ DMAMUX->CHCFG[1] = 0; DMAMUX->CHCFG[2] = 0; DMAMUX->CHCFG[3] = 0; DMAMUX->CHCFG[4] = 0; /* set DMA channel request source */ DMAMUX->CHCFG[0]= DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(49); DMAMUX->CHCFG[1]= DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(50); DMAMUX->CHCFG[2]= DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(51); DMAMUX->CHCFG[3]= DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(52); DMAMUX->CHCFG[4]= DMA MUX_CHCFG_ENBL_MASK DMA MUX_CHCFG_SOURCE(53); 在初始化 DMA 寄存器之前, 需要向 DMA 的源和目标地址寄存器填入一个无用变量的地址值 DMA 模块初始化 例如, 仅使用 DMA 通道 0 /* source configuration */ DMA0->TCD[0].SADDR = &dummy; DMA0->TCD[0].ATTR = DMA_ATTR_SSIZE(0); DMA0->TCD[0].SOFF= 0; /* no address shift after each transfer */ DMA0->TCD[0].SLAST = 0; /* destination configuration */ DMA0->TCD[0].DADDR = &dummy; DMA0->TCD[0].ATTR = DMA_ATTR_DSIZE(0); DMA0->TCD[0].DOFF= 0; DMA0->TCD[0].DLAST_SGA= 0; /* set CITER and BITER to maximum value */ DMA0->TCD[0].CITER_ELINKNO = DMA_CITER_ELINKNO_CITER_MASK; DMA0->TCD[0].BITER_ELINKNO = DMA_CITER_ELINKNO_BITER_MASK; DMA0->TCD[0].NBYTES_MLNO = 1; /* transfer one byte on each trigger arrived */ /* enable auto close request */ DMA0->TCD[0].CSR = DMA_CSR_DREQ_MASK; /* start transfer */ DMA0->SERQ = DMA_SERQ_SERQ(0); 在应用程序中读取 DMA 通道计数器 脉冲计数值为 BITER 减 CITER 的值 注主迭代计数耗尽 ( 即 CITER 达到零 ) 之前, 可在任意时刻从应用程序中读取 DMA 通道计数器 一旦 CITER 达到零, 用户需要将 CITER 寄存器的值重置为 BITER, 然后重新开始计数操作 Uint32_t value; value = DMA0->TCD[0]. BITER_ELINKNO - DMA0->TCD[0].CITER_ELINKNO; Freescale Semiconductor, Inc. 3

结论 4 结论 DMA 多脉冲计数器完全由内部硬件逻辑实现 用户只需要读取 DMA 通道向下计数寄存器以获取脉冲计数值 整个过程不占用任何 CPU 资源 图 1 显示了使用 DMA 捕捉 3 种不同频率 (10 KHz 20 KHz 和 1 KHz) 方波的结果 输入方波 : 若要测量方波频率 : 图 1. 输入方波 1. 使能 PIT 定时器以产生中断 2. 在中断服务程序中读取每个 DMA 通道计数器, 并复位计数器 3. 在串行终端上显示计数结果 4 Freescale Semiconductor, Inc.

功能限制 图 2. 串行终端上的计数结果 5 功能限制 在实现过程中必须考虑几种限制 本文档中针对某些限制提供了解决方案 5.1 最大 DMA 速率 用于 DMA 硬件请求 ( 特别是单字节传输 ) 的最大传输速率受到一些因素的限制 对于 100 MHz 的器件, 可实现的最大速率为 8.7 MHz, 因此其最大输入频率不能超过该速率 5.2 DMA 主循环计数器 在不使用 DMA 通道链接特性的情况下,DMA 寄存器 DMA_TCDn_CITER_ELINKNO 的主循环计数器限为 15 位 ( 请参见参考手册中的 DMA 章节 ) 因此, 主循环计数限为 32K 用户必须检查 CITER 寄存器并确保其未达到零 如果 CITER 达到零, 则 BITER 将重载 BITER 寄存器中的数值 Freescale Semiconductor, Inc. 5

How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support 本文档中的信息仅供系统和软件实施方使用 Freescale 产品 本文并未明示或者暗示授予利用本文档信息进行设计或者加工集成电路的版权许可 Freescale 保留对此处任何产品进行更改的权利, 恕不另行通知 Freescale 对其产品在任何特定用途方面的适用性不做任何担保 表示或保证, 也不承担因为应用程序或者使用产品或电路所产生的任何责任, 明确拒绝承担包括但不局限于后果性的或附带性的损害在内的所有责任 Freescale 的数据表和 / 或规格中所提供的 典型 参数在不同应用中可能并且确实不同, 实际性能会随时间而有所变化 所有运行参数, 包括 经典值 在内, 必须经由客户的技术专家对每个客户的应用程序进行验证 Freescale 未转让与其专利权及其他权利相关的许可 Freescale 销售产品时遵循以下网址中包含的标准销售条款和条件 :freescale.com/ SalesTermsandConditions. Freescale, Kinetis, and the Freescale logo are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. All other product or service names are the property of their respective owners. 2015 Freescale Semiconductor, Inc. 2015 飞思卡尔半导体有限公司 Document Number AN5083 Revision 0, 01/2015