基于TLC5620的低频函数信号发生器设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4 结束语
图4 主程序流程图
采 用TLC5620和AT89C51设 计 的 信 号 发 生 器 可以很方便的选择信号的波形和频率。当选择的 信号波形为矩形波和三角波时, 还可以方便的选 择其占空比, 这对于需要脉宽调制 (PWM) 波形 控制的应用是很关键的。因为目前的信号发生器 大多数没有PWM功能, 而此设计产生的信号频率 非常稳定, 完全适合实验和科研应用。但是, TLC5620的性能决定了产生信号的频率不能很高, 所 以 , 建 议 本 设 计 最 好 应 用 于1 kHz以 下 的 低 频 信号。至于具体的频率控制档位数和占空比控制 档位数, 则可根据实际需要来设定。
2 低频函数信号发生器设计
基 于 TLC5620 的 低 频 函 数 信 号 发 生 器 具 有 如 下功能特点:
(1) 有3个波形选择按键, 可输出正弦波、矩 形波和三角波等三种波形;
(2) 有2个频率变换按键, 每按下 “+” “- ” 键后, 频率便向上或向下变化一个档位;
(3) 有2个占空比变换按键, 每按下 “Duty+” “Duty- ”后, 对应的矩形波占空比即向上或向下 变化一个档位;
3.2 系统算法设计
本系统的硬件电路非常简单, 关键在于软件
算法的设计。信号发生器的最重要指标就是频率
的稳定性, 因此, 如何通过单片机来产生精确的
控制信号以使频率稳定是其关键所在。本设计在
程序中已设计好数据表格, 每个周期的采样点数
为 40 个 。 这 样 就 将 频 率 稳 定 问 题 转 换 为 采 样 周 期
addr <<= 1; CLK = 0; CLK = 1; } while ( - - n ! = 0 ) ; //发送RNG位 DAT = rng; CLK = 0; CLK = 1; //发送8位DAC数据 n = 8; do { DAT = (bit) (dat & 0x80) ;
dat <<= 1; CLK = 0; CLK = 1; } while ( - - n ! = 0 ) ; //装载数据 LOAD = 0; LOAD = 1; //数据锁存到DAC转换器 LDAC = 0; LDAC = 1; }
0 引言
函数信号发生器是实验室中常用的仪器设备 之 一 通 常 可 用 RC振 荡 器 或 555 定 时 器 实 现 频 率 的 连续可调, 然后再经过各种波形变换电路来得到 各种所需要的波形。但是, 这些模拟方法得到的 信 号 频 率 往 往 不 是 很 稳 定 , 且 低 频 时RC的 体 积 很大, 对实现系统的微型化不利。随着目前直接 数 字 频 率 合 成 (DDS) 技 术 的 广 泛 使 用 , 特 别 是 在高精度的领域 (如雷达, 电子对抗等), DDS技 术具有频率稳定度高, 精度高, 操作快捷等优 点, 但是, DDS芯片成本也较高, 而且硬件设计 要占用较多的端口资源。为此, 本文介绍了一种 利 用 51 单 片 机 来 控 制 TLC5620 芯 片 以 产 生 各 种 函 数波形的新算法。该方法产生的具体函数波形主 要有正弦波、三角波、矩形波等, 且频率和占空 比可调。
参考文献
[1] 张 毅 刚 .单 片 机 原 理 及 应 用 [M]. 北 京 : 高 等 教 育 出 版 社, 2004.
[2] 求是科技.单片机典型模块设计实例 导 航[M]. 北 京:人 民 邮 电 出 版 社 ,2004.
[3] 黄仁欣.单片机原理及应用技术[M].北京: 清华大学出 版社, 2005.
的精确定位问题了。
本设计采用定时器中断方式来产生精确的采
样间隔, 具体的算法。
首先是设定一个定时器中断的基准时间, 然
后将采样时间 (间隔) 设置为定时器中断基准时
间的整数倍, 倍数参量del可根据频率按键扫描函
数的结果以及del初值来确定。其频率按键扫描函
数fre_scan ( ) 如下:
{ if (FA= =0)
[4] 谭 浩 强.C程 序 设 计(第 二 版)[M]. 北 京:清 华 大 学 出 版 社 出 版 ,1999.
[5] 戚 勇,等.数 字 式 低 频 信 号 发 生 器 的 软 件 设 计[J].山 东 理工大学学报, 2007,( 2) : 79- 83.
[6] 沈红卫.单片机应用系统设计实例与 分 析[M].北 京:北 京航空航天大学出版社, 2003.
[7] 黎 国 栋.信 号 发 生 器 专 业 基 础 知 识 问 答[J].上 海 计 量 测试,2004,(5):72- 74.
www.ecda.cn 2007.11
33
wk.baidu.com
3.3 系统主程序设计
根据上面介绍的算法可以看出, 系统主程序 的设计非常简单, 只需不断检测按键是否按下即 可, 其中对于波形按键的动作, CPU不需要检测 释放动作, 因为在波形选择中不会出现重复扫描 而影响波形选择参量sel的值。其系统程序流程图 如图4所示。
当有占空比选择按键和频率选择按键按下的 动作时, 必须等待其释放以后才能进行后续处 理。如果在主程序中没有检测按键释放, 就会导 致重复扫描的结果, 这会使得到的参量处于两个 极端, 即当按下 “频率+”时, 会使频率参量del 处于设计的极小值, 同理, 当按下 “频率- ”时, 会使得频率参量del处于极大值。占空比按键处理 方式与此相同。
(4) 可通过3个LED数码管显示信号频率; 本系统中的DAC转换芯片选用的是TLC5620, CPU则选用AT89C51来作为主控制器, 并在外部 接7个按键以完成各自的功能。此外, 系统还选
www.ecda.cn 2007.11
31
第9卷 第11期 2007年11月
Electronic Component & Device Applications
收稿日期: 2007- 07- 03
用简单3线串行总线接口方式, 因而与各种处理 器和微控制器的接口十分简单。TLC5620的11 bit 命令字包括8 bit数据、2 bit的DAC输出通道选择 位和1 bit的输出幅度控制位。图1所示是TLC5620 的工作时序图。
图1 TLC5620的工作时序
1 TLC5620的工作原理
TLC5620C包含四个独立的8位数 /模转换器、 (每一路均具有两级缓冲器, 即输入锁存器和DAC 锁 存 器 )、 一 个 输 出 量 程 开 关 、 一 个 8 位 DAC电 路 以 及 一 个 电 压 输 出 电 路 。 TLC5620 采 用 单 电 源 供 电, 数模转换后的电压幅度可编程调节。器件采
{ delays1 (150) ;
//按键消抖的延时
if (FA= =0)
{ del- - ;
//当 频 率+键 按 下 时 , 延
迟时间减少
if (del<=1) del=1; }
}
if (FD= =0)
{ delays1 (150) ; //按键消抖的延时
if (FD= =0)
{ del++;
//当频率- 键按下时, 延
第9卷 第11期 2007年11月
新特器件应用
Vol.9 No.11 Nov. 2007
基于TLC5 6 2 0 的低频函数信号 发生器设计
陈根华, 杨海清 (南昌大学信息工程学院 电子工程系, 江西 南昌 330031)
摘 要: 介绍了采用TI公司的串行数模转换芯片TLC5620和AT89C51单片机来产生低频函数 信号发生器的一种设计方法。利用该方案产生的波形包括正弦波、矩形波、三角波, 而且频 率可调, 当选择的波形是矩形波和三角波时, 还可调节占空比, 因而可满足PWM波形控制的 需要。 关键词: 低频函数; 信号发生器; TLC5620; 占空比; 中断服务程序
Vol.9 No.11 Nov. 2007
图2 LED显示硬件电路示意图
用3个LED数 码 管 来 显 示 频 率 , 具 体 的 硬 件 电 路 示意图如图2所示。
本 设 计 采 用 P2.4~P2.7 来 分 别 连 接 TLC5620 的 CLK、DATA、LOAD、LDAC, 以驱动TLC5620工 作, P0.0~P0.6分别接正弦波、矩形波、三角波波 形选择按键以及频率增减按键和占空比增减按 键 。 P2.0~P2.2 作 为 3 位 数 码 管 频 率 显 示 的 位 选 地 址, P1口则作为数据线。
迟时间增加
if (del>=10) del=10; } //设定了产生
10组频率信号
}
32
2007.11 www.ecda.cn
第9卷 第11期 2007年11月
新特器件应用
Vol.9 No.11 Nov. 2007
图3 定时器中断服务程序流程
} 上述程序中, del为倍数参量, 而且是一个全 局变量; FA为频率 “+”键, FD为频率 “- ”键。 占空比按键扫描函数Duty_scan ( ) 与频率按键扫 描函数同理, 改变的只是占空比参量Duty。 定时器中断服务程序 (ISR) 流 程 图 如 图3所 示。该程序主要完成如下任务: (1) 判断采样间隔是否达到; (2) 根据波形选择参量sel (全局变量) 并转到 不同程序位置, 当sel为2时, 还需要检测占空比 Duty参量; (3) 输 出 波 形 数 据 驱 动 TLC5620, 完 成 样 本 点的输出。
3 软件设计
3.1 TLC5620的驱动程序
TLC5620驱动程序的编写非常简单, 但它都 是整个系统设计的基础。在程序中先送通道地址 到TLC5620中, 再送RNG位, 之后再送8位数据, 最 后 通 过 触 发LOAD和 LDAC来 实 现 数 据 的 装 载 和 锁存, 同时启动模数转换。
其具体的程序代码如下: void Dac (unsigned char addr, bit rng, unsigned char dat) { unsigned char n; n = 2; do { DAT = (bit) (addr & 0x02) ;