Freescale Semiconductor 应用笔记 Document Number: AN4978 Rev 0, 08/2014 采用 DAC 产生快速可控的波形 作者: Arpita Agarwal 内容 1 概述 本应用笔记讲述如何利用数模转换器(DAC)通过预定义的 一组数据产生快速可控的波形(上升时间和波形形状)。利 用自动模式产生波形的速度要比非自动模式快得多,但是 有些形状的波形不能通过自动模式来产生。自动模式只能 产生方波、三角波和锯齿波这三种输出波形。 在正常模式下使用 DAC 才能产生其他形状的波形。利用 直接存储器访问(DMA)将数据传输到 DAC。这实现了快 速数据传输,为在尽量减小处理器负载下搬运数据块提供 了一种高效的方式。 2 数模转换器(DAC) 12 位数模转换器(DAC)向片上模块提供参考电压,或向一 个片外引脚提供输出。它也可以用作波形发生器,通过自 动模式产生方波、三角波和锯齿波。根据需要,可以将 DAC 置于掉电模式。当输出从最小输出变为最大输出(或 反之)时,最大输出负载(3 kΩ || 400 pf)下的最大稳定时间 不会超过 2 毫秒。DAC 提供高速或低速模式选择功能,也 支持两种数据格式。它的毛刺滤波器可以在数据转换期间 抑止输出毛刺。 © 2014 Freescale Semiconductor, Inc. 1 概述........................................... ............................... 1 2 数模转换器(DAC).................................... ................1 3 直接存储器访问(DMA)控制器..........................2 4 设置........................................ .................................. 3 5 4.1 CPU 配置.............................. ........................ 3 4.2 DAC 配置.............................. ........................ 4 4.3 DMA 配置............................. ........................ 5 测试设置和结果................................... ................... 6 直接存储器访问(DMA)控制器 DAC 支持两种转换模式:异步和同步。 在异步转换模式下,当写入 DAC 缓冲数据寄存器时,数据可以立即出现在 DAC 中并转换为模拟输出。在同步转换模式下,将缓冲数据传送到 DAC 的输入时,缓冲数据寄存器中的数据将由 SYNC_IN 信号控制。 DAC 支持两种操作模式:正常和自动模式。在正常模式下,DAC 根据数据寄存器中的数字值输出对应的电压。在自 动模式下,无需 CPU 的干预即可产生锯齿波、三角波和方波,并支持设定周期、更新速率和范围。 可通过自动模式快速产生波形,但不是所有波形都可以产生。正常模式可以产生所有波形,但是由于需要 CPU 干 预,数据寄存器的直接写入将会很慢。不能实现快速上升时间,并且很难实现紧密控制。由于 DAC 还支持 DMA 模 式,可将 DMA 用于提升 DAC 输出非标准波形来提升波形产生速度。 PDN STEP MAXVAL 自动波形产生 MINVAL 缓冲 数据 寄存器 数据 格式 12 IPBus 数据 16 12 12 FIFO (支持 DMA) DAC 1 0 12 0 1 数据 寄存器 0 滤波器 DMA_EN VDD SYNC_IN 模拟 输出 0 1 AUTO FILT_EN 更新 1 SYNC_EN 图 1. DAC 结构框图 3 直接存储器访问(DMA)控制器 DMA 控制器模块可实现快速数据传输,为在尽量减小处理器负载的条件下移动数据块提供了一种高效的方式。 DMA 模块具有 4 个通道,允许 8 位、16 位或 32 位数据传输。每个通道具有专用的源地址寄存器(SARn)、目标地址 寄存器(DARn)、状态寄存器(DSRn)、字节计数寄存器(BCRn)和控制寄存器(DCRn)。每个 DMA 通道还拥有一个可编 程的传输控制块(TCD)寄存器组,用来配置 DMA 传输参数。 采用 DAC 产生快速可控的波形, Rev 0, 08/2014 2 Freescale Semiconductor, Inc. 设置 所有传输均为双地址,将数据从源存储器位置移动到目标存储器位置。 DMA 数据传输可由软件或外设硬件请求发起。术语“外设请求”和 DREQ 指的是来自片上外设或片外引脚上的条边 沿发起。 DMA 提供硬件握手信号:向外设返回 DMA 应答(DACK)或完成指示信号。 DMA 提供从软件或外设发起的连续传输模式或 Cycle-steal 传输模式。 从 16 个可用的外设请求(每个通道)中选择一个可编程输入。每个通道支持自动硬件应答/完成指示信号。DMA 具 有独立的源和目标地址寄存器。 其特性包括可选的 modulo 模式寻址、源和目标地址的自动更新,以及可独立设置的源和目标传输大小。 4 设置 本节说明如何在 DSC 中进行基本设置以实现快速可控的波形。示例基于 MC56F82748 DSC。用于演示此代码的软 件为 Code Warrior 10.5 及以上版本,以及 Processor Expert 实用程序。通过 Processor Expert 初始化 DAC 和 DMA。如 图 2 所示连接这些模块。 同步源 DAC 模块 请求 DAM 控制器 传输 DAC数据 寄存器 图 2. DAC 与 DMA 连接框图 4.1 CPU 配置 MC56F82XX 系列 DSC 支持两种速度模式。这里,将 CPU 配置为快速模式,因此内核与系统时钟均为 100 MHz。 采用 DAC 产生快速可控的波形, Rev 0, 08/2014 Freescale Semiconductor, Inc. 3 设置 在快速模式下 运行MCU 图 3. CPU 配置 4.2 DAC 配置 在同步模式下,于 DAC 中启用 DMA 操作以维持可控的上升速率。DAC 配置为高速模式。设置 WaterMark 阀值。 通过 XBar 启用同步源(如 PITx 和 TAx 等)。 采用 DAC 产生快速可控的波形, Rev 0, 08/2014 4 Freescale Semiconductor, Inc. 设置 图 4. DAC 配置 4.3 DMA 配置 将传输模式设置为“Cycle-steal”。启用外部请求和“传输完成后自动禁止外部请求”功能。分配一个用于 DAC FIFO 的 通道请求源。分配数据源地址(可以是存放波形的阵列地址)、大小、其他源属性、DAC 数据寄存器地址的数据目标 和其他数据目标属性。 该芯片上的大多数外设模块采用 16 位字的地址。不过,DMA 控制器希望每个模块采用字节地址。因此,在 SARn 和 DARn 寄存器中,用户必须始终指定一个字节地址(是 16 位字地址的两倍)。 DMA 传输完成 ISR 应通过向中断标志写入 1 来清除中断。例如,DMA_DSR_BCR0 |= DMA_DSR_BCR_DONE_MASK。 在 ISR 中重新初始化 BCR 值和源地址(如果未使用 modulo 地址模式),同时启用外设请求。 采用 DAC 产生快速可控的波形, Rev 0, 08/2014 Freescale Semiconductor, Inc. 5 测试设置和结果 图 5. DMA 配置 5 测试设置和结果 在设置中,PIT0 每隔 125 ns 向 DAC 提供一个同步信号。波形的预定义步长存储在 0x000 至 0xFFF 阵列地址中(其 中给出了 24 个步长)。水印级为 6。因此期望的上升时间等于 125 ns × 24 = 3 μs。图 6 提供了图形表示。 采用 DAC 产生快速可控的波形, Rev 0, 08/2014 6 Freescale Semiconductor, Inc. 测试设置和结果 图 6. 波形输出 采用 DAC 产生快速可控的波形, Rev 0, 08/2014 Freescale Semiconductor, Inc. 7 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support 本文档中的信息仅供系统和软件实施方使用 Freescale 产品。 本文并未 明示或者暗示授予利用本文档信息进行设计或者加工集成电路的版权许 可。 Freescale 保留对此处任何产品进行更改的权利,恕不另行通知。 Freescale 对其产品在任何特定用途方面的适用性不做任何担保、表示或 保证,也不承担因为应用程序或者使用产品或电路所产生的任何责任,明 确拒绝承担包括但不局限于后果性的或附带性的损害在内的所有责任。 Freescale 的数据表和/或规格中所提供的“典型”参数在不同应用中可能并 且确实不同,实际性能会随时间而有所变化。 所有运行参数,包括“经典 值”在内,必须经由客户的技术专家对每个客户的应用程序进行验证。 Freescale 未转让与其专利权及其他权利相关的许可。 Freescale 销售产 品时遵循以下网址中包含的标准销售条款和条件:freescale.com/ SalesTermsandConditions. Freescale 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. © 2014 Freescale Semiconductor, Inc. © 2014 飞思卡尔半导体有限公司 Document Number AN4978 Revision 0, 08/2014