前言
最近想着做合成音乐,于是看到了雅马哈的音乐芯片,最终选定了YMF288
YM F288是雅马哈(Yamaha)在20世纪80年代末至90年代初开发的一款FM合成音频芯片,广泛应用于个人计算机和游戏机中。它也被称为OPN3,他最广泛的使用是被用在日本本土电脑——PC98电脑里面
居然是3,那必然有其他的咯,比如YM2203就同时被称为OPN,属于一个更早的型号,而YMF288可以实现无损替换升级,但是一些寄存器有差别
下面是雅马哈(Yamaha)芯片及其前后替代关系的表格展示:
芯片型号 | 别名 | 类型 | 应用 | 特征 | 替代关系 |
---|
YM2149 | AY-3-8910 | PSG (Programmable Sound Generator) | Amstrad CPC, Atari ST | 3个方波通道 | - |
YM2203 | OPN | FM音源 + PSG | NEC PC-88, MSX | 3个FM音源通道 + 3个PSG通道 | 被YMF288替代 |
YM2413 | OPLL | 简化版FM音源 | MSX音频扩展卡, Sega Master System | 9个FM通道,但可编程性较低 | - |
YM2608 | OPNA | 高级FM音源 | NEC PC-98 | 6个FM通道 + 3个SSG通道, 支持ADPCM | - |
YMF288 | OPN3 | FM音源 | NEC PC-98 | 6个FM通道 + 3个SSG通道, 功耗更低, 兼容性良好 | 替代YM2203 |
YM3812 | OPL2 | FM音源 | AdLib声卡, IBM PC声卡 | 9个FM通道,基本FM合成 | 被YMF262替代 |
YMF262 | OPL3 | 先进FM音源 | Sound Blaster 16声卡 | 18个FM通道,支持立体声输出 | 替代YM3812 |
YMF278 | OPL4 | 高级FM音源 + 波形表合成 | 高端声卡(如Yamaha SW1000XG) | 包含波形表合成功能,使声音更逼真 | - |
YMF7xx系列 | - | 音频控制器 | 现代PC声卡(如Yamaha XG系列) | 集成FM音源和波形表合成,兼容OPL3,支持MIDI合成 | - |
YMF288 在雅马哈音频芯片家族中处于一个承前启后的位置。它继承了YM2203的FM音源特性,并在降低成本和功耗的同时,保持了较高的音质。随着技术的发展,雅马哈逐渐推出了更高级的FM合成芯片,如YMF262(OPL3)和YMF278(OPL4),最终发展到集成多种音频合成技术的YMF7xx系列。
雅马哈这些芯片可以在微机,游戏机,声卡等地方使用,曾在20世纪80至90年代广泛装载,但随着技术进步逐渐被淘汰。
为什么呢,因为数字音频技术的普及使FM合成音频被更高音质的波形表合成和全数字音频取代。现代计算机的多核处理器可以实时处理音频,集成度的提高也使得独立音频芯片不再必要。市场对高质量音频的需求和游戏音频的进化推动了对更先进技术的采用。
还有一点是FM合成音效通过软件模拟就能完美实现,讲究一个向下兼容,所以也就不需要额外配置硬件芯片来合成了。
详细介绍
YMF288设计上是为了替代YM2608B,这一款音源LSI芯片,在保持与YM2608B的音源部、节奏音源部和SSG音源部的寄存器兼容性的同时,删除了ADPCM音源部、I/O端口和SSG音源用的A/D转换器,从而减少了引脚数量,并采用了CMOS工艺。它新增了待机模式和低电压运行的支持。
因此,与YM2608B相比,它实现了更低的功耗和更小的占用空间,适合用于笔记本电脑等设备。
| (分别为:低音鼓、军鼓、边鼓、镲片、钹、踩镲,每种音色1声道) |
| - 音频数据为立体声16位,2's补码,MSB优先输出 |
| - 28引脚塑料SOP封装(YMF288-M),48引脚塑料SQFP封装(YMF288-S) |
引脚定义
这一芯片目前还能在闲鱼上面搜到,并且确实有卖价格也比较便宜,主要能找到的是YMF288-M,和S比较只有封装上面的差别其他没有差异
10 | 14 | /TEST1 | I | LSI测试端子1(请务必保持未连接) |
12 | 21 | 5V/3V | I | 电源电压切换端子("H":5V,"L":3.3V) |
13 | 22 | /TEST2 | I | LSI测试端子2(请务必保持未连接) |
16 | 26 | /COM | I | YM2608/YMF288模式切换("H":YM2608,"L":YMF288) |
22 | 42 | /STBY | O | 待机模式输出("H":正常工作,"L":待机模式) |
28 | 56 | MCLK | I | 主时钟输入(7.9872MHz) |
解析
根据上面的资料可以了解到,这一款芯片是I2S输出的所以我们需要加一个这个
然后,可以看到它只有一个MCLK,也就是说并不是普通单片机那样采用无源晶振提供时钟,而是用有源晶振,因此最终测试板电路如下。这里主控我使用Arduino Nano,I2S也使用插件方式支持
同时有三个机械键盘轴,以及一个I2C的OLED来实现交互,后面会把控制器换成STM32或者树莓派Pico以实现SD卡读取文件,并且能够有更多的引脚可用
PCB板设计上做了3mm的打孔以匹配外壳设计
下一期来说明这个设计成功与否,到底能不能实现YMF288芯片的测试以及通过串口实现合成音乐的播放