Skip to content

Repository files navigation

<<<<<<< HEAD

FPGA DDS 信号发生器

基于 Cyclone IV FPGA 的 DDS(直接数字频率合成)信号发生器,支持正弦波(CW)、调幅(AM)和调频(FM)三种输出模式,通过 UART 串口实时控制参数。

硬件平台

项目 型号
FPGA Intel Cyclone IV E — EP4CE6F17C8
DAC DAC904(14-bit)
系统时钟 50 MHz

功能特性

  • CW 正弦波:频率可调,默认 2000 Hz
  • AM 调幅:载波频率 + 调制频率 + 调制深度可调,默认载波 2000 Hz、调制 1000 Hz、深度 100%
  • FM 调频:载波频率 + 调制频率 + 最大频偏可调,频偏上限 10000 Hz
  • UART 控制:921600 波特率,6 字节帧协议,支持运行时实时修改所有参数

系统架构

                 ┌──────────────┐
   UART RX ────▶│ UartFrameRX  │──── 24-bit frame ────┐
   (921600)      │              │                       │
                 └──────────────┘                       ▼
                                              ┌─────────────────┐
                                              │   DDS Top (DDS) │
                                              │                 │
                                              │ 寄存器解析/控制   │
                                              └────────┬────────┘
                                                       │
                                                       ▼
                                              ┌─────────────────┐
                                              │  DDS_Modulation  │
                                              │                 │
                                              │ ┌─────────────┐ │
                                              │ │ 调制信号 DDS  │ │──▶ sin(调制)
                                              │ └─────────────┘ │
                                              │                 │
                                              │ ┌─────────────┐ │
                                              │ │ 载波信号 DDS  │ │──▶ sin(载波)
                                              │ └─────────────┘ │
                                              │                 │
                                              │ AM / FM / CW 选择│
                                              └────────┬────────┘
                                                       │
                                                       ▼
                                              ┌─────────────────┐
                                              │  DAC904 (14-bit) │
                                              └─────────────────┘

模块说明

文件 说明
DDS.v 顶层模块:UART 帧解析、控制寄存器、模块例化
DDS_Modulation.v DDS 调制核心:载波/调制信号相位累加、AM/FM/CW 输出选择
UartFrameRX.v UART 帧接收器:6 字节协议解析,提取 24-bit 数据帧
UartByteRX.v UART 字节接收器:波特率可配置,标准 8N1
rom_sin.v 正弦波 ROM 查找表(Quartus IP,4096×16-bit)
Sin.mif 正弦波初始化数据

UART 控制协议

帧格式(6 字节):

[数据高8位] [数据低8位] [地址] [0xFF] [0xFF] [0xFF]

寄存器地址映射:

地址 参数 说明
0x01 dds_fre_c[15:0] 载波频率(低 16 位)
0x02 dds_fre_c[31:16] 载波频率(高 16 位)
0x03 dds_mod_type[1:0] 调制类型:00=CW, 01=AM, 10=FM
0x04 dds_am_depth[15:0] AM 调制深度(0~32768,对应 0%~100%)
0x05 dds_fre_m[15:0] 调制频率(低 16 位)
0x06 dds_fre_m[31:16] 调制频率(高 16 位)
0x07 dds_fm_dev_hz[15:0] FM 最大频偏(Hz,上限 10000)

引脚分配

信号 FPGA 引脚 说明
clk_50M PIN_E1 50 MHz 系统时钟
rst_n PIN_J14 复位(低有效)
RX PIN_B16 UART 接收
dac904_clk PIN_C6 DAC 时钟
dac904_data[0] ~ dac904_data[13] PIN_B6 ~ PIN_B13 DAC 14-bit 数据总线

开发环境

  • Quartus Prime 18.1 Standard Edition
  • 目标器件:Cyclone IV E — EP4CE6F17C8
  • 综合/布局布线:Quartus 默认流程

使用方法

  1. 用 Quartus Prime 18.1 打开 DDS.qpf
  2. 编译(Processing → Start Compilation)
  3. 通过 USB-Blaster 下载 SOF 到 FPGA
  4. 使用串口工具(波特率 921600,8N1)发送控制帧

示例:设置载波频率为 5000 Hz(0x1388)

发送字节:0x00 0x13 0x88 0x01 0xFF 0xFF 0xFF
                              ↑ 地址=0x01,写载波频率低16位

相关仓库

此项目的 MCU 上位机控制代码(基于 MSPM0G3519 + OLED 显示)位于 Code/ 目录。

License

MIT

基于MSPM0G3519和FPGA的DDS信号发生器的FPGA部分

4e1700362307224c3046e1137a825cccdbde6003

About

基于MSPM0G3519和FPGA的DDS信号发生器的FPGA部分

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages