基于STM32的简易信号发生器
基于STM32F103单片机的函数发生器设计

数据 口相连接 , 并将 三个控 制端 口与在 S T M3 2 定 义的 R S 、 R W、 E N连 接。此外按 照使用手册连接好液晶 的电源 、 背光和对 比度 引脚 。
【 关键词】 S T M3 2 F 1 0 3 ; 液晶 1 2 8 6 4 ; 矩 阵键盘 ; D A转换
函数发 生器作 为一种 多波形信 号源 , 能够产生 正弦波 、 方波 、 三角 或者 “ 正 弦波 ” 按键才可 以进入下一状态。 这样的程序架构可 以有效避 波等任 意波形 . 是 重要 的电路实验设计用仪器设备 。运用单片机技术 免误操作 , 提高程序 的稳定性和实用性。 设计开 发函数 发生器 其性能 和经济价值更 为优 良 3 . 2程序框 图
角波、 正弦波、 方波三种波形 , 并通过其 内部 DA转换器输 出模拟信 号 , 最终 可以由示波器观察 , 波形周期范 围是 卜 9 9 9 9 9 9 ms 。 通过矩阵键盘选 择三种波形的类型和周期 , 并能在液晶屏 1 2 8 6 4显示其各 自的类型以及数值 , 人机 交互界 面友好 。
1 . 设 计 方 案
1 . 1 信号发生设计方案 方 案一 : 通过模拟器件 实现正弦 波 、 方波 、 三 角波的产生 . 可通过 调整 电阻、 电容 等外部器件改变信号 的周期 。但是该 方案器件分散程 度高 , 导致外部器件对效果影 响大 , 波形不稳定 , 抗干扰能力差 。 方 案二 : 通过单片机 编程实现正 弦波 、 方波 、 三角波 的产生 , 引入 人机交互 . 可 由键 盘等外部设备选择信号类型和信号 周期 利用单片 机 自带的 D A转换器 进行 D A转换 , 外 围设备简单 , 系统稳定 . 实现起 来 比较容易 经 比较 . 选择方案二进行波形的产生 1 . 2处理器选型设计方案 方案一 : 使用 A T 8 9 C 5 2 单片机 . 此单 片机具有 价格便 宜 、 资料 丰 富等优点 . 但是外设不够多且主频较低 方案二 : 使用 S T M3 2 F 1 0 3 , 是搭 载 A R M 内核的 3 2位处理 器 , 具 有强大 的处理 能力 , 自带 D A C 模块 且主频高达 7 2 M H Z 。缺点是价 格 较贵。 经 比较 . 选择方案二能大大提高函数发生器的频率范 围并能 简化 外围 电路 . 所 以处理器选择方案二
基于单片机制作高频DDS信号发生器

基于单片机制作高频DDS信号发生器在现代科学和电子技术的不断进步下,数字信号发生器(DDS)已经成为了频率控制和生成的重要工具。
尤其是高频DDS信号发生器,其在雷达、通信、电子对抗等领域的应用具有不可替代的地位。
本文将介绍如何使用单片机制作高频DDS信号发生器。
一、DDS技术概述DDS,全称Direct Digital Synthesizer,即直接数字合成器,其工作原理是将数字信号通过数模转换器(DAC)转换成模拟信号。
DDS 技术的核心是相位累加器,它将输入的数字信号的相位进行累加,从而生成新的频率信号。
二、硬件设计1、单片机选择:本设计选用具有高速、低功耗、高集成度的单片机,如STM32F4系列。
2、频率控制字:通过设置频率控制字(FCW),可以控制输出信号的频率。
频率控制字由一个16位二进制数组成,表示了相位累加的步进大小。
3、存储器:使用Flash存储器存储预设的频率波形数据。
4、DAC:数模转换器将存储器中的波形数据转换成模拟信号。
本设计选用具有高分辨率、低噪声、低失真的DAC芯片。
5、滤波器:使用LC滤波器对DAC转换后的信号进行滤波,以得到更加纯净的信号。
三、软件设计1、相位累加器:相位累加器是DDS的核心,它将输入的数字信号的相位进行累加,从而生成新的频率信号。
2、波形查找表:将所需的波形数据存储在波形查找表中,通过查表的方式获取波形数据,可以大大提高DDS的工作效率。
3、控制逻辑:控制逻辑负责处理输入的控制信号,如启动、停止、频率控制字等。
4、通信接口:为了方便远程控制,需要设计通信接口,如SPI、I2C 等。
四、性能测试1、频率范围:测试DDS输出信号的频率范围是否满足设计要求。
2、频率分辨率:测试DDS输出信号的频率分辨率是否达到设计要求。
3、信号质量:测试DDS输出信号的信噪比、失真度等指标是否满足设计要求。
4、稳定性:长时间运行后,测试DDS输出信号的频率是否稳定。
5、远程控制:测试通信接口是否正常工作,可以通过计算机或者其他控制器对DDS进行远程控制。
基于STM32F429的音频信号发生器

以太网远距离控制是整个控制系统中的一个重要部分。该发生器通过以太网与PC连接,操控PC控制面板,按照要求输入所需的幅度、频率值,通过以太网把控制命令远距离地传输给音频信号发生器,达到远程控制的目的[3]。
该以太网接口芯片DP83848CVV是一个全功能自适应网络连接速度10/100 Mb/s的单端口物理器件,允许设备使用所需操作电源的绝对最小值,提供低功耗性能。该芯片包括一个25 MHz的时钟输出,使应用程序含有最少的外部器件,进而降低成本;同时支持10BASE-T和100BASE-TX的以太网协议,以确保与其他基于以太网标准解决方案的兼容性和互操作性。
信号采样频率为48 kHz,每个样点采用16 bit量化,如果最小频率分辨率为1 Hz,所需查表的大小为48 k×16 bit,共需48 k×16 bit的RAM空间。显然SDRAM的存储空间足够使用,也便于以后该发生器对方波、三角波等波形的扩展。
3 软件设计
整个系统采用模块化设计,除主程序外,各功能子程序分别执行PC端输入控制命令、以太网传输、SDRAM内存扩展、正弦查询表映射、数模转换等相应功能,系统主程序流程。
针对传统音频信号发生器的缺点,本文采用一款性价比高、功耗低的ARM Cortex-M4控制芯片[1],制作了一台智能音频信号发生器。该发生器的频率、幅度连续可调,按步进1 Hz、1 mV线性变化,兼具频率、幅度稳定的优点;通过PC端控制面板,直接输入幅度、频率值,就能快速地得到所需要的音频信号,精度高[2];一改信号发生器必须近距离调试的缺点,可通过以太网直接远距离操控。
2.3 SDRAM
同步动态随机存储器SDRAM与系统总线同步,无等待周期,而且是双存储体结构,读取效率得到成倍提高。SDRAM体积小、速度快、容量大、价格低,是比较理想的内存扩展器件[4-5]。
基于STM32和AD9851的多功能信号发生器

3.2 FSMC简介
3.2.1 FSMC型号
在STM32中,FSMC拥有四种型号,主要是根据闪存存储器的容量进行区分,不同的型号对应不同的处理器。闪存存储器的容量在16k-32k之间的称为小容量产品,闪存存储器的容量在64k-128k之间的称为中容量产品,闪存存储器的容量在256k-512k之间的称为大容量产品。最后还有一种特殊型号是互联型,主要针对于STM32F105XX和STM32F107XX系列的微控制器。
⑥每一个存储器块都有独立的片选控制、每一个存储器块都可以独立配置。⑦时序可编程以支持各种不同的器件。⑧等待周期可编程(多达15个周期)、总线恢复周期可编程(多达15个周期)。⑨输出使能和写使能延迟可编程(多达15周期)、独立的读写时序和协议,可支持宽范围的存储器和时序。
2.3按键方案
本应用系统需通过按键来完成功能的选择,包括波形的选择和频率值得选择。
方案一,按键模块采用矩阵式键盘电路,矩阵键盘电路当今使用最为广泛的按键电路。矩阵式键盘电路的电路复杂程度高,软件编写和识别较为困难。它的驱动方式主要是利用不同的I/O口分别作为键盘的行线和列线,在行线和列线的交叉点上设置为按键。这种方法提高了I/O口的使用效率,但也相应的增加了电路和软件编程的复杂程度,由于本系统所需按键较少,如果使用该方案,会造成大量资源浪费。
「用单片机实现多功能频率信号发生器」

「用单片机实现多功能频率信号发生器」使用单片机实现多功能频率信号发生器是一种非常常见且实用的电子设计应用。
频率信号发生器可以通过改变输出信号的频率,产生不同种类的信号波形,如正弦波、方波、三角波等。
本文将介绍如何使用单片机实现一款多功能频率信号发生器。
首先,我们需要选择适合的单片机芯片。
常见的单片机芯片有AVR、STM32、PIC等。
根据实际需求和个人喜好,选择一款适合自己的芯片。
接下来,我们需要设计电路图。
一个简单的频率信号发生器电路图包括以下几个部分:1.单片机模块:包括主控芯片和相应的外围电路,如晶振、电源电路等。
选用的单片机芯片需要支持定时器功能,并具备一定的IO口用于输出信号。
2.DAC模块:用于将数字信号转换为模拟信号。
可以选用外部DAC芯片,也可以使用单片机的模拟输出口。
3.放大电路:用于放大DAC输出的信号,使其能够驱动外部负载,例如音响、示波器等。
4.控制部分:可以使用按钮、旋钮等组合,通过单片机的GPIO口进行控制。
在电路设计完成后,我们开始进行软件编程。
编程包括两个主要部分:1.初始化部分:配置单片机的定时器、IO口等功能。
这个过程需要参考单片机的相关手册,并根据电路图的设计进行相应的配置。
2.输出信号部分:根据用户输入的频率值,计算出相应的定时器参数,并将输出值写入DAC端口。
这个部分可以通过循环或中断的方式实现,以产生连续的信号波形。
除了基本的正弦波信号,我们还可以在软件中增加其他信号波形的生成算法,如方波、三角波、锯齿波等。
不同波形的生成算法会有所不同,需要根据具体算法进行编程实现。
此外,我们还可以增加一些功能,如频率调节功能、幅度调节功能、频谱显示功能等。
这些功能可以进一步提升频率信号发生器的实用性。
最后,我们需要进行测试和调试。
通过连接示波器或音响等外部设备,检查输出信号的频率、波形等参数是否与预期一致。
如果有问题,需要检查电路连接、软件设置等方面的错误。
在完成了以上步骤后,我们就成功地实现了一款多功能频率信号发生器。
基于STM32单片机的变频正弦信号发生器

基于STM32单片机的变频正弦信号发生器蒋昭颖【摘要】In order to satisfy the requirement of frequency domain response of AC servo motor, we proposed a method for produce a sine-wave signal of frequency conversion based on ARM. The hardware system is used to PWM output to produce a sine-wave signal of frequency conversion by STM32F103. The software system adopts the Keil as development environment. Simulations using software and oscilloscope accomplish to detect output signal. The results show that the proposal can satisfy the requirement of frequency domain response of AC servo motor.%为了实现对三相永磁式同步交流伺服电机频域响应的检测需求,提出了一种基于ARM单片机的变频率PWM正弦信号发生器的设计方案,并完成系统的软硬件设计。
该系统的硬件部分采用STM32F103系列ARM单片机,用于PWM方式输出变频率的模拟正弦信号,软件部分采用Keil进行编程。
通过软件仿真和示波器对输出信号进行检测,利用该方案的正弦信号发生器对三相永磁式同步交流伺服电机进行频率响应测试,将得到的数据利用matlab绘图,实验结果表明此方案产生的正弦信号发生器满足电机频响需求。
【期刊名称】《电子设计工程》【年(卷),期】2016(024)005【总页数】4页(P190-193)【关键词】交流伺服电机;ARM单片机;PWM;正弦信号发生器【作者】蒋昭颖【作者单位】国电子科技集团第15研究所北京 100083【正文语种】中文【中图分类】TN710近年来,中国航空工业的发展进一步加速,新型号,新机型不断推出,大型运输机成功首飞,C919大型客机开始进行结构总装,航空零部件生产规模不断扩大,这一系列成就预示着中国的大飞机时代正离我们越来越近。
基于 STM32 PWM 的正弦信号发生器设计

基于STM32的信号发生器

h g 攀枝花学院本科毕业设计(论文)基于STM32的信号发生器学生姓名: 钟尚儒学生学号: 201310501084院(系): 电气信息工程学院年级专业: 2013级电子信息工程2班指导教师:郝小江 助理指导教师:二〇一七年六月摘要随着电子产品的发展,单片机处理器的应用已经广泛的应用在日常生活中每个角落。
特别是在信号发生器中的应用,信号发生器在各行各业中发挥着重要的作用,具有非常重要的意义,现实中接触比较多的是教学实践中,由于很多学校的研究经费有限,不能购买精密的昂贵器材等原因,急需要设计出一款智能化,低成本的信号发生器,可以输出三角波、方波和正弦波等波形。
在本文中根据现实的需求设计出一款基于STM32F103Cx的信号发生器系统,整体设计由处理器模块、电源电路模块、AD9833电路模块、按键电路模块、数字显示模块几部分组成。
处理器模块采用STM32F103Cx芯片作为该系统的核心处理模块,采用LCD1602液晶显示器作为该系统的显示模块,按键方案采用独立按键的方式更加容易控制设置输出数据,电源接口采用USB方式,使用更加方便。
该设计系统采用altium designer等软件完成PCB版的设计,然后进行焊接和测试等,采用keil软件进行编写软件程序,完成波形的输出等,最后经过软硬件设计出可输出三种波形:三角波、方波和正弦波。
该系统的设计具有简单和性能优良等优点,最后经过软硬件的调试之后,各项功能和性能都满足设计的要求。
关键词:STM32F103Cx单片机,AD9833电路模块,液晶显示器1602,DDS信号发生器攀枝花学院本科毕业设计(论文)ABSTRACTABSTRACTAbstract: With the development of electronic products, the application of single-chip processor has been widely used in every corner of daily life. Especially in the application of signal generator, the signal generator in all walks of life play an important role, has a very important significance, the reality of contact with more teaching practice, because many schools of research funding is limited, not The purchase of sophisticated equipment and other reasons, the urgent need to design an intelligent, low-cost signal generator, you can output triangular wave, square wave and sine wave and other waveforms. In this paper, according to the actual needs of a design based on STM32F103Cx signal generator system, the overall design by the processor module, power circuit module, AD9833 circuit module, key circuit module, digital display module composed of several parts. Processor module using STM32F103Cx chip as the core of the system processing module, the use of LCD1602 LCD display as the system's display module, the key program using a separate key way easier to control the output data output, power interface using USB way, the use of more convenient. The design system uses altium designer and other software to complete the PCB version of the design, and then welding and testing, the use of keil software to write software programs to complete the output of the waveform, and finally through the hardware and software design can output three waveforms: triangular wave Wave and sine wave. The design of the system is simple and excellent performance, etc., and finally after the hardware and software debugging, the functions and performance to meet the design requirements.Key words:STM32F103Cx single-chip,AD9833 circuit module, liquid crystal display 1602, DDS Signal generator目录摘要 (I)ABSTRACT (II)第一章绪论 (1)1.1 课题背景与研究意义 (1)1.2国内外研究现状和发展趋势 (3)1.3本文研究的主要内容 (5)第二章系统方案设计 (6)2.1DDS的基本原理 (6)2.2处理器方案 (7)2.3显示方案 (9)2.4按键方案 (9)2.5方案确立 (10)第三章硬件设计方案 (11)3.1系统总体设计 (11)3.2处理器模块 (12)3.3AD9833电路模块 (12)3.4按键电路模块 (13)3.5电源模块 (14)3.6显示模块电路 (15)3.7本章总结 (16)第四章软件设计方案 (17)4.1系统总体软件设计 (17)4.2三角波输出模块软件设计 (17)4.3方波输出模块软件设计 (18)4.4正弦波模块软件设计 (19)4.5按键子程序模块软件设计 (20)4.6数字显示模块软件设计 (21)4.7本章总结 (22)第五章系统调试 (23)第六章结论 (29)参考文献 (30)附录A:原理图 (31)附录B:系统主程序 (33)致谢 (49)第1章绪论1.1 课题背景与研究意义随着二十世纪四十年代电子仪器时代的兴起到现在,示波器和函数信号发生器的技术越来越成熟,精度和集成度越来越高,体积也越来越小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
绍兴文理学院数理信息学院课程设计报告书题目基于STM32的简易信号发生器电子信息工程专业1班姓名xxx指导教师xxx时间2014年7月12日课程设计任务书基于STM32的简易波形发生器摘要函数信号发生器是一种能够产生多种波形,如正弦波、方波、三角波、锯齿波等的电路。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
通过对函数波形发生器的原理以及构成分析,可设计一个能变换出以上波形的波形发生器。
本课题采用STM32[1]为控制芯片,采用DDS[2]的设计方法,可将采样点经D/A[3]转换后输出任意波形,可通过调节D/A转换的频率来调节输出波形的频率,也可通过改变取点的起始位置来调节波形的初始相位。
关键词信号发生器STM32 DDS目录课程设计任务书 (I)摘要 (II)1 设计概述 (1)2 设计方案 (2)3 设计实现 (3)3.1 设计框图及流程图 (3)3.2 MCU控制模块 (5)3.3 按键控制模块 (5)3.4 信号输出模块 (6)3.5 LCD显示模块 (8)4 设计验证 (8)5 总结 (11)1设计概述信号发生器作为一种历史悠久的测量仪器,早在20年代电子设备刚出现时就产生了。
随着通信和雷达技术的发展,40年代出现了主要用于测试各种接收机的标准信号发生器,使得信号发生器从定性分析的测试仪器发展成定量分析的测量仪器。
同时还出现了可用来测量脉冲电路或作脉冲调制器的脉冲信号发生器。
自60年代以来信号发生器有了迅速的发展,出现了函数发生器。
这个时期的信号发生器多采用模拟电子技术,由分立元件或模拟集成电路构成,其电路结构复杂,且仅能产生正弦波、方波、锯齿波和三角波等几种简单波形。
自从70年代微处理器出现以后,利用微处理器、模数转换器和数模转换器,硬件和软件使信号发生器的功能扩大,产生比较复杂的波形。
这时期的信号发生器多以软件为主,实质是采用微处理器对D/A的程序控制,就可以得到各种简单的波形。
在80年代以后,数字技术日益成熟,信号发生器绝大部分不再使用机械驱动而采用数字电路,从一个频率基准有数字合成电路产生可变频率信号。
90年代末出现了集中真正高性能的函数信号发生器,HP公司推出了型号为HP770S的信号模拟装置系统,它是由HP8770A任意波形数字化和HP1770A波形发生软件组成。
信号发生器技术发展至今,引导技术潮流的仍是国外的几大仪器公司,如日本横河、Agilent、Tektronix等。
美国的FLUKE公司的FLUKE-25型函数发生器是现有的测试仪器中最具多样性功能的几种仪器之一,它和频率计数器组合在一起,在任何条件下都可以给出很高的波形质量,能给出低失真的正弦波和三角波,还能给出过冲很小的快沿方波,其最高频率可达到5MHz,最大输出幅度可达到10Vpp。
国内也有不少公司已经有了类似的仪器。
如南京盛普仪器科技有限公司的SPF120DDS信号发生器,华高仪器生产的HG1600H型数字合成函数\任意波形信号发生器。
国内信号发生器起步晚,但发展至今,已经渐渐跟上国际的脚步,能够利用高新技术开发出达到国际水平的高性能多功能信号发生器。
信号发生器在生产实践和科技领域中有着广泛的应用,各种波形曲线均可用三角函数方程式来表达。
函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量雷达、控制教学等领域应用十分广泛。
不论是在生产、科研还是在教学上,信号发生器都是电子工程师信号仿真实验的最佳工具。
而且,信号发生器的设计方法多,设计技术也越来越先进,随着我国经济和科技的发展,对对应的测试仪器和测试手段也提出了更高的要求,信号发生器已成为测试仪器中至关重要的一类,因此,开发信号发生器具有重大意义。
2 设计方案方案一:模数结合实现,一般是在模拟电路上产生函数信号波形,而用数字方式改变信号的频率和幅度。
如采用D/A 装换器与压控电路改变信号频率,用数控放大器或数控衰减器改变信号幅度等。
方案二:模拟电路实现,全采用模拟电路,可用正弦波发生器产生正弦波信号,然后过零比较产生方波,再经积分电路产生三角波。
这种方法电路简单,并具有良好的正弦波和方波信号。
但要通过积分器电路产生同步的三角波信号,存在较大难度。
原因是积分电路的积分时间常数通常不变,而随着方波频率改变,积分器输出的三角波幅度将同时改变。
若要保持三角波幅度,就得同时改变积分时间长度的大小,要实现这点会很难。
方案三:数字电路实现,采用DDS 方法,任何频率的波形都可看做由一系列的取样点所组成,可事先将各波形的数据点存储在ROM 中,再通过时钟的控制顺序从ROM 中读出,再经D/A 转化器进行逐点恢复。
这种方案的波形精度主要取决于函数信号波形的存储点数、D/A 转换器的转换速度、以及整个电路的时序处理等。
设取样时钟频率为c f ,一个正弦波由N 个取样点构成,频率控制字为K ,则输出正弦波信号的频率为c o K f f N ⋅= 公式2-1其信号频率的高低,是通过改变D/A 转换器输入数字量的速率或是取点数量来实现的。
这种方案在信号频率较低时,具有较好的波形质量。
随着信号频率提高,需要提高输入数字量的速率,或减少波形点数。
波形点数的减少,将直接影响函数型号波形的质量,而数字量的输入速率的提高也是有限。
因此,该方案比较适合低频信号,而较难产生高频(如1MHz 以上)信号。
经上各方案比较,为切合本次课题,故采用方案三。
3设计实现本课题硬件原理图较为简单,仅有一单片机STM32F103ZET6及相应的一些外围器件,每种波形在ROM中都存了360个点,在保持波形失真不太明显的条件下,最高频率时可取点40个,此时需要外加RC低通滤波器,使得输出波形较为平滑。
系统时钟频率为72MHz,理论上取40个点的输出波形频率为1.8MHz,但在不同频率下,经过RC低通滤波后的波形会有幅值上的衰减,衰减程度在不同频率下也各不相同,此时可在RC滤波后加入放大器提高幅值,由于此次设计不对5KHz以上频率的波形有过多要求,所以幅值的变化不做太多的关注,仅尝试提高频率。
显示部分采用LCD12864,此LCD与MCU连接较易,仅需片选线、电源线、时钟线及串行数据线,用法也较简单,内置中文字库,4*16点阵完全够实现本次课题所需显示。
本设计原理图见附录。
3.1设计框图及流程图本设计由四个模块组成:MCU控制模块、按键模块、信号输出模块和LCD 显示模块。
如图3-1所示:图3-1 系统框图本设计的流程图如图3-2,主要需要完成的任务有:按键扫描、LCD的显示和D/A转换。
因此在主程序中对各个模块进行初始化。
图3-2主函数流程图程序主函数包括时钟树、GPIO口、中断的初始化。
本设计利用定时器触发DAC转换器的DMA传输,事先将各波形的取样点存在ROM中,在定时器作用下,将点取出,由DMA传输至D/A转换,输出,由于DMA传输不受主程序控制,因此主程序无需保持其运行。
按键控制信号的变换,每个按键对应一个IO 口,当按键按下时电平触发外部中断,此时打开定时器,产生一个20ms的延时去抖动,进入定时器中断后判断IO口的电平是否与记录的键值相同,若相同则说明确有按键按下。
相同的按键有有着不同的键值,不同的键值搭配在程序内对应不同的状态。
此时根据不同的键值所对应的不同的状态选择将要执行的操作。
在波形结构体中保存了“波形”、“幅值”、“频率”和“相位”四个参数信息,利用按键更改其中的值,按下“完成”键后确定修改状态,接着将目前状态的各个参数信息显示在LCD上,由此可完成对波形的自由修改。
通过LCD显示波形信息,可提高操作的可视性和便捷性。
STM32F103ZET6硬件资源丰富,具有512KB的FLASH ROM和64KB 的SRAM,具有144个引脚和105个GPIO口,因此采用独立按键边沿触发的方法来检测按键。
LCD12864采用串行方式传输数据,只需三根数据线。
DAC外设具有两个输出通道,通道1相位可调,通道2用作与通道1对比相位衡为0°。
因此采用如表3-1引脚分配表。
表3-1引脚分配表引脚功能PA0 “减”键PB10 “加”键PB11 “确定”键PB12 “右”键PB13 “左”键PB14 “上”键PB15 “下”键PE15 LCD12864片选PE11 LCD12864数据PE7 LCD12864时钟PA4 信号输出通道1PA5 信号输出通道23.2MCU控制模块系统的MCU采用STM32F103ZET6作为控制模块,主要完成按键扫描、信号输出、LCD显示等。
STM32系列单片机具有内置DAC转换器和DMA控制器,并有最高72MHz的主频,可完成较高频率信号的稳定输出。
3.3按键控制模块系统采用一个摇杆(包含“上”、“下”、“左”、“右”、“选择”键)和两个独立按键(“加”键、“减”键)来控制输出波形的特征。
由于STM32单片机的定时器资源丰富,因此按键消抖延时采用定时器中断的方式。
按键扫描模块的程序流程图如图3-3、图3-4所示:图3-3外部中断流程图图3-4定时器中断流程图当确定有按键按下时,判断键值并完成相应的动作。
其中“上”、“下”、“左”、“右”键切换将要更改的波形特征,“加”键和“减”键修改波形特征的值,如“幅值”、“频率”和“相位”。
3.4信号输出模块单片机的DAC外设、DMA控制器和定时器共同协作完成信号波形的输出。
信号输出采用定时器触发DMA传输数据到DAC寄存器的方式,可大大降低信号输出对CPU的占用率并提高波形的精准性。
DAC信号输出的流程图如图3-5所示:图3-5 D/A 转换流程图输出波形分别为:正弦波、方波、三角波、锯齿波。
程序中采用四个常数数组保存波形值。
为了方便相位的变换,每个数组保存了360个波形数据。
通过将常数数组中的固定值乘以一个比例系数后保存到新数组中,并将新数组的地址与DAC 转换寄存器的地址通过DMA 控制器关联,完成幅值的变换。
初始相位的更改,只需更改数据的起始取样点即可。
本设计的难点是频率的提高。
根据公式2-1c o K f f N ⋅=可得出,要改变信号的频率,可以通过改变频率控制字K 或改变DAC 频率c f 实现。
当c f 到达一定值时,完成一次DAC 转换的时间将大于DMA 传输的时间间隔,此时会出现部分值无法被转换的情况,因此c f 不可太高。
通过调整频率控制字K 也可提高信号的频率,即波形数据中每K 个点取样一个点,可使频率大大提高。
但是由于频率控制字K 的提高会造成波形的明显失真,所以波形的输出采用一级RC 低通滤波器进行滤波,平滑波形。
综上所述,当频率低于课题的基本要求5KHz 时,通过改变c f 实现频率的变换。
当频率大于5KHz 时,通过改变频率控制字K 提高信号的频率,并将波形通过RC 低通滤波器滤波。