基于STM32的多功能函数信号发生器设计
2021-11-06田吉,张坤,李成
田 吉,张 坤,李 成
(黄山学院 信息工程学院,安徽 黄山 245041)
0 引言
目前市场上的信号发生器的实现主要通过3种方法。第一种通过运算IC 和分立元件组成,这种方法能够产生的波形种类少,频率低,精度不高,频率调节只能通过调节硬件来完成,不够灵活;第二种是通过专用数字合成DDS 芯片产生信号[3],虽然能产生高频率平滑的波形,但是成本高;第三种是用单片机结合D/A 转换来实现,这种方法既能得到较高频率的波形,调节灵活,而且成本较低。该设计采用STM32结合内部所包含的12位DAC即可产生方波、正弦波和锯齿波,实现了简易函数信号发生器的设计,且精度较高,能够用于多种场合。
1 系统总体设计
本文设计的发生器系统结构框图如图1 所示。系统主要由按键输入模块,主控STM32F103ZET6及其子电路模块组成。通过按键输入来选择输出的波形的种类及参数,主控STM32F103ZET6 的内部DAC输出相应波形。

图1 系统结构图
2 硬件设计
2.1 STM32F103ZET6主控
STM32F103ZET6 是一种嵌入式-微控制器的集成电路,内核为ARM32 位的Cortex-M3 内核系CPU,系统时钟频率最高可达72MHz,具有256KB的FLASH,48K 的RAM,2 个DMA 控制器(12 通道),112 个快速I/O 端口,11 个定时器,13 个通信端口和3 个12 位模数转换器[1]。下面就本设计中用到的DMA、串口及DAC模块进行进一步的讨论。
DMA中断,用来提供外设和存储器之间或者存储器之间的高速传输,减少对CPU 的打扰。该芯片有两个DMA控制器,DMA1有7个通道,DMA2有5个通道。本系统外设从DMA 控制器得到应答信号后,即释放请求,DMA控制器也会撤销应答信号,直到启动下一个周期。设计中使用的是DMA1的通道4。……
