完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子论坛今天为大家带来的是一个基于PSOC3的函数信号发生器示例,通过本例,大家可以了解DAC的使用技巧,下面来跟随电子论坛一起来深究这个方案实例。
示例方案简介:PSOC3系统内置了电压输出型(简称VDAC)和电流输出型(简称:IDAC)两种DAC。图是PSOC Creator开发系统内置的DAC模组。这两种DAC除了输出模拟量的性质不同以外,其余特性和配置方法大同小异,为此本文以电压输出型为例来说明DAC的使用和配置。PSOC3内置的VDAC组件是8位电压输出型数模转换器。模拟电压输出范围可以从0V到1.020V(4Mv/bit)或从0到4.08V(16mV/bit)。可以受硬件、软件或软件和硬件配合控制,数据源可以为CPU、DMA or UDB两种方式。 从图可以看出,VDAC主要配置参数有:Output Range、 Speed、 DataSource、 StrobeMode四个参数,每个参数的功能分别是: (1)Output Range—模拟电压输出范围,有两个选项可供选择,分别是:0-1.020V和0-4.080V。此参数允许您将两个电压范围之一设置为默认值。在运行时可以随时使用VDAC8_SetRange()函数更改范围。 表1 模拟电压输出范围关系表
l 1V范围---Vout = (值/256)*1.024V l 4V范围---Vout = (值/256)*4.096V 需要特别说明的是,如果选择最大输出模拟电压是4V的话,Vdda一定要选择5V。如果Vdda电压低于5V,输出模拟电压将会出错。 (2)Speed ---转换速度,此参数提供两种设置:“低速”和“高速”。在“低速”模式下,设置时间较慢,但是使用的工作电流较小。在“高速”模式下,电压处理速度快得多,但是代价是工作电流较大。 (3)DataSource—数据源,此参数选择要写入DAC寄存器的数据源。如果CPU或DMA将数据写入VDAC,则选择“CPU or DMA”。如果数据直接从UDB或基于UDB的组件写入,则选择“DAC Bus”。 (4) StrobeMode,此参数选择当前数据写入VDAC数据寄存器时数据是否立即写入DAC。当选择“寄存器写入”选项时,选择此模式。当选择“外部”选项时,来自UDB的时钟或信号控制数据何时从DAC寄存器写入实际DAC 实例:设计一个正弦波形信号发生器,要求电压幅度在0—4V 波形信号发生电路有好多种,比较常见的有:DDS数字直接合成技术、RC振荡电路及单片机控制数模转换来实现等三种技术。本文将采用第三种技术来实现一个正弦波发生电路。 实现方法:将一个完整的正弦波(1个周期)离散化采样,将所得数据存储在一个数组中,然后通过VDAC顺序循环输出,即可实现波形的回放,在这里有两点需要注意:1)采样点数,即对一个完整的波形采样的点数,点数越多,波形回放时失真度越小,但影响输出波形的频率。2)输出相邻两点数据的时间间隔,时间间隔越大,输出一个完整波形所需的时间越长,输出波形的频率越小。 实现这个例程,仅需要一个VDAC和一个模拟信号pin,即可实现。具体实验过程如下: 1) 打开 PSOC Creator ,创建一个项目,命名为PSOC3-DAC; 2) 创建原理图,打开TopDesign.cysch,放置一个Voltage DAC (放置路径:Cypress Component Catalog -–-> Analog -–->DAC—Voltage DAC (8-bit),一个(模拟)信号输出端子(放置路径:Cypress Component Catalog -–->Port and pin -–-> Analog Pin[V1.50]),先将信号输出端子水平旋转180度,然后用连线工具 将VDAC的输出端与模拟信号输入端连接起来,如图3, 配置如下: Voltage DAC: l Name: VDAC8_1 l Output Range : 0-4.080V l DataSource: CPU or DMA l StrobeMode : Register Write Analog Pin : l Name: DAC_1 l Type : Analog 3)打开main.c文件,输入以下代码:
(5)编译和调试,连接硬件,将编译后的程序下载到PSOC开发板,将开发板上的电源选择开关拨在5V的位置,用接插线将P0.0和示波器连接好,通电观察示波器上的现象,是不是一个很漂亮的正弦波形呈现在您的面前?图5是本人捕获到的实验现象,是不是跟您的一样啊? 到这一步,相信很多朋友已经明白了波形发生器的工作原理,我们用同样的办法也可以实现诸如方波、三角波、锯齿波等多种波形信号发生器。下面给出这三种波形的实验程序代码,感兴趣的朋友可以动手试一试。待我们以后学习了键盘电路以后,我们将这几个函数关联起来,实现任意波形信号发生器。
|
|||
相关推荐
5 个讨论
|
|||
顶顶呀
|
|
|
|
|
|
顶顶呀
|
|
|
|
|
|
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 18:56 , Processed in 0.642412 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号