项目简介
本项目处于早期阶段,旨在创建一个16位硬件FM合成器。其灵感源于上世纪80年代末至90年代初的合成器芯片和视频游戏,虽受Game Boy和Sega Genesis等音效启发,但并非复刻这些声音,而是在现代合成器背景下向该时期致敬。项目以Microchip dsPIC33CH128MP508为目标平台,该“数字信号控制器”在DSP和MCU功能间平衡良好,价格实惠且具备音频应用所需特性。
项目的主要特性和功能
- 硬件抽象层(HAL):抽象底层硬件,包括UART通信、DAC数字模拟转换器、计时器和GPIO等。
- 命令解析:解析和处理通过UART接收到的命令,可设置参数、控制声音的开始与停止。
- 音频处理:生成和更新音频样本,支持音频包络、振荡器和调制等音频合成技术。
- MIDI处理:接收并处理MIDI信号,以控制合成器的各项参数。
- 测试框架:通过Ceedling运行单元测试,验证项目各组件和功能的正确性。
安装使用步骤
构建要求
需在系统中安装以下工具: - CMake - Python 3.7或更高版本 - Microchip的MPLAB IDE - Microchip的XC16 Toolchain
配置
复制仓库后,将文件 mplab/conf.mk.defaults
复制到 mplab/conf.mk
,并根据系统情况修改相应路径,默认设置适用于macOS。
构建方式
MPLAB IDE
适用于调试或喜欢在MPLAB IDE中工作的用户。复制仓库后,启动MPLAB IDE,打开 mplab
目录下的两个项目,构建和调试命令应能正常工作。若CMake报错,需检查 conf.mk
文件中的路径是否正确。
命令行
适用于习惯使用命令行构建的用户,尤其熟悉GNU Make和CMake的用户。不过,命令行调试支持(通过MDB)较差。复制仓库后,执行以下命令:
mkdir build
cd build
cmake ..
make
若构建成功,将在 build/src/master/
目录下生成 synth_master.hex
文件,可使用MPLAB IPE(随IDE安装)将其加载到目标设备上。在基于macOS或Linux的系统上,还可通过以下方式进行闪存操作:
- 将 mdb.sh
从MPLAB IDE文件添加到系统 PATH
中(在某些安装中,其路径为 /Applications/microchip/mplabx/v5.25/mplab_platform/bin
)。
- 运行 make flash
调试
dsPIC33C系列包含两个(大部分)独立的dsPIC内核,可通过以下三种方式进行调试: - 仅调试主内核:调试主内核时,从内核自由运行。 - 仅调试从内核:调试从内核时,主内核自由运行。 - 双内核同时调试:同时调试两个内核。 具体调试方式可能需要根据设置进行额外配置和/或代码修改,详情可参考Microchip的双内核文档。
测试
使用Ceedling运行单元测试,需安装Ceedling 0.28.3或更高版本。进入项目目录后,运行 ceedling
即可。更多关于Ceedling及其底层实用程序和框架的信息,可参考throwtheswitch.org。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】