
天空星-信号发生器
简介
基于STM32F407ZE开发的双通道函数/任意波形发生器,通过片内12位DAC直接软件合成波形,支持30+种标准波形与自定义波形,集成参数扫描、频率计功能。
简介:基于STM32F407ZE开发的双通道函数/任意波形发生器,通过片内12位DAC直接软件合成波形,支持30+种标准波形与自定义波形,集成参数扫描、频率计功能。开源协议
:GPL 3.0
描述
🧪 SG-28 双通道函数/任意波形发生器
一颗 STM32,两根 DAC 腿,30+ 种波形,无限可能。
全开源 · 零专用DDS芯片 · 纯软件数字合成
📌 一句话简介
SG-28 是一款基于 STM32F407ZE + FreeRTOS 的全开源双通道函数/任意波形发生器。无需外挂 DDS 或专用 DAC 芯片,纯靠片内 12 位 DAC 软件合成 30+ 种标准波形+自定义任意波,同时集成频率计/计数器、参数扫描、USB 通信等功能,2.8 寸全彩 LCD 可视化操控。目标是:用最低的成本,做最趁手的桌面信号源。
🚀 核心亮点
| 维度 | 说明 |
|---|---|
| ⚡ 零专用芯片 | 纯软件波形合成,无 DDS、无专用 DAC,BOM 成本极致压缩 |
| 🔊 双通道独立 | CH1/CH2 两路完全独立输出,可独立调参、独立开关、也可同步联动 |
| 🎛️ 30+ 种波形 | 正弦/方波/三角/锯齿/脉冲/指数/对数/噪声/心电图/调幅调频… 支持自定义任意波 |
| 📏 全参数可调 | 频率 (1Hz |
| 📡 参数扫描 | 频率/幅度/偏置/占空比自动扫描,线性/对数可选,正/反/往返三方向 |
| 🔬 频率计模式 | 测量外部信号频率/周期/脉宽/占空比,闸门 1s/10s/100s,支持脉冲计数 |
| 🖥️ 2.8寸彩屏 | 320×240 TFT-LCD,FSMC 高速驱动,波形实时预览 |
| 💾 掉电存储 | 20 组用户配置 + 64 组自定义波形存入 SPI Flash,开机即恢复 |
| 🔌 USB一线通 | Type-C 供电 + 串口通信,插电脑即用,支持上位机远程控制 |
| 🧠 FreeRTOS 多任务 | 波形合成、界面刷新、按键扫描、频率测量各司其职,响应迅速 |
🧱 系统组成
┌──────────────────────────────────────────────┐
│ 🧠 主控: STM32F407ZE (Cortex-M4 @168MHz) │
│ 双 DAC · 硬件 FPU · 192KB SRAM │
├──────────────────────────────────────────────┤
│ 🎯 波形输出: 片内 DAC1 + DAC2 (12位) │
│ PA4 / PA5 直接输出模拟信号 │
├──────────────────────────────────────────────┤
│ 🖥️ 人机交互: 2.8" TFT-LCD + EC11 旋钮 + 按键 │
├──────────────────────────────────────────────┤
│ 📦 数据存储: W25Q64 (8MB SPI Flash) │
├──────────────────────────────────────────────┤
│ 📡 频率测量: TIM2_CH1 外部信号输入 │
├──────────────────────────────────────────────┤
│ 🔌 电源通信: Type-C USB (5V 供电 + 串口) │
└──────────────────────────────────────────────┘
📊 核心技术指标
| 参数 | 指标 |
|---|---|
| 主控芯片 | STM32F407ZET6 (Cortex-M4, 168MHz, 硬件 FPU) |
| 通道数 | 2 通道(完全独立) |
| 波形类型 | 30+ 种标准波形 + 用户自定义任意波 |
| 频率范围 | 1Hz ~ 100kHz,分辨率 1Hz |
| 幅度范围 | 1mV ~ 3.3Vpp,分辨率 1mV |
| 偏置范围 | 0V ~ 3.3V,分辨率 1mV |
| 占空比 | 1% ~ 99%(矩形波/脉冲波) |
| 相位调节 | 0°~ 359°,分辨率 1° |
| DAC 分辨率 | 12 位(0~4095) |
| 扫描模式 | 线性 / 对数;正向 / 反向 / 往返 |
| 扫描时长 | 10ms ~ 90s |
| 频率计闸门 | 1s / 10s / 100s |
| 显示屏 | 2.8 寸 TFT-LCD,320×240,FSMC 接口 |
| 用户存储 | 20 组参数 + 64 组自定义波形 |
| 供电方式 | Type-C USB 5V |
| 操作系统 | FreeRTOS (CMSIS-RTOS v2) |
| 开发环境 | Keil MDK-ARM |
📐 软件分层架构
┌─────────────────────────────────────────────┐
│ 🧩 应用层 │
│ · 界面渲染 · 菜单逻辑 · 波形可视化 │
├─────────────────────────────────────────────┤
│ ⚙️ 业务逻辑层 │
│ · 波形合成算法 · 扫描控制 · 频率测量 │
│ · 参数存储加载 · 同步控制 · 上位机通信 │
├─────────────────────────────────────────────┤
│ 🧠 系统内核层 (FreeRTOS) │
│ · 多任务调度 · 信号量 · 消息队列 · 内存 │
├─────────────────────────────────────────────┤
│ 🔌 硬件驱动层 (STM32 HAL库) │
│ DAC · TIM · GPIO · SPI · FSMC · USART │
└─────────────────────────────────────────────┘
🎵 预置波形一览
| 类别 | 波形 |
|---|---|
| 基础波形 | 正弦波、矩形波、CMOS方波、脉冲波、直流电平 |
| 锯齿/三角 | 三角波、上升锯齿波、下降锯齿波 |
| 阶梯波 | 阶梯三角波、正阶梯波、反阶梯波 |
| 指数/对数 | 正指数/反指数、正下降指数/反下降指数、正对数/反对数、正下降对数/反下降对数 |
| 整流波 | 正全波整流、负全波整流、正半波整流、负半波整流 |
| 特殊脉冲 | 洛伦兹脉冲、多音波、Sinc脉冲、窄三脉冲、梯形波 |
| 调制波 | 调幅(AM)、调频(FM)、线性调频(LFM) |
| 噪声 | 均匀白噪声、高斯白噪声 |
| 生物医电 | 心电图模拟(ECG) |
| 多脉冲 | 四脉冲序列、八脉冲序列 |
| 自定义 | 用户任意波形导入 |
🛠️ 适用场景
| 人群 | 理由 |
|---|---|
| 🎓 电子/嵌入式学生 | 学习 STM32+FreeRTOS 的完整项目实战,代码规范、架构清晰 |
| 🔧 嵌入式工程师 | 桌面调试好帮手——信号源 + 频率计一机两用 |
| 🏠 电子爱好者 | 低成本打样复刻,亲手焊一台属于自己的信号发生器 |
| 👨🏫 高校实验室/教学 | 全开源可二次开发,比商用信号仪更适合教学改造 |
📦 硬件接口定义
| 接口 | 功能 | MCU 引脚 |
|---|---|---|
| DAC_OUT1 | 通道 1 模拟输出 | PA4 |
| DAC_OUT2 | 通道 2 模拟输出 | PA5 |
| FREQ_IN | 频率测量输入 | PA0 (TIM2_CH1) |
| USB_OTG_FS | USB 通信 | PA11/PA12 |
| LCD | 2.8寸 TFT 显示 | FSMC 接口 |
| EC11 | 旋钮编码器 | PD12/PD13 |
| KEY | 功能按键 | 矩阵键盘 (PE/PC/PA) |
| SPI_FLASH | W25Q64 存储 | PE4 (CS) |
"没有信号发生器?那我自己写一个。"
SG-28 — 纯软件合成、双通道输出、30+ 波形、零专用 DDS 芯片,这就是开源硬件的浪漫。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










