硬件设计手册VerD2.0
BP1048B2硬件IO定义设计手册/规范/注意事项
手册更新日志
2025-08-21 提交VerD三分频Plus版本固件文档
简介
三分频固件Plus,三分频固件的升级版,使用两路i2s+一路dac进行输出,硬件版本D2.0,引脚功能与普通公版固件完全不一致,不可以进行互刷,请注意!
BP1048 VerD固件功能概要
- 两路I2S,两组(共四通道)立体声独立调节
- 2进5出,主从一共2+2+1通道(I2S0左右+I2S1左右+DAC0)通道输出,可用作三分频或者左右独立分频应用,并且三路通道可以单独调音互不影响
- 独立的0.1(DacX)通道支持配置单端/差分输出
- 5路电位器通道,可通过APP自定义电位器功能
- 蓝牙输入
- 1路光纤音频输入
- 1路AUX有线音频输入
- USB/U盘输入
- 红外遥控输入
- 1路编码器输入,可用于控制音乐音量
- 1路POWERKEY通道,支持软开关机和6个按键
- 1路BAT_ADC检测通道,用于检测电池电压
- 1个普通LED信号输出
- 1路WS2812B信号输出,最大支持255个RGB灯,支持自定义灯效
- 1个AUX插入检测,支持插入自动切换模式
- 1个功放静音控制输出
- 1个I2C通道用于控制部分需要I2C协议控制的功放芯片(部分型号需定制启用)
- 单机运算,相比于市场上那些双片方案更稳定,延迟/功耗/成本更低,并且无任何BUG
原理图概览
以下为三分频场景(2高音+2中音+1低音)的典型应用原理图,采用PCM5122作为I2S输出的数模转换(也可以直接使用支持I2S输入的功放)

提示
原理图中LDOIN电源输入的二极管,是为了在5V供电下降压防止芯片太烫用的,如果直接使用电池直连给1048供电,或者使用3.3V电源供电,请去掉这个二极管
基础公用部分芯片设计
BP1048芯片的基础电源域,模拟音频输出域(DACL、DACR、DACX)、天线、USB设计,无论哪种固件,这些脚的连线均一致,因此请查看基础公用部分硬件设计文档
注意
该固件中低音通道DacX被换到了DacLR,支持差分输出或单端输出,默认情况下为单端输出,即两条随便接一条就行了。在山景软件中配置为Mono2模式时为差分输出,DacL为+,DacR为-
模拟音频输入(AUX输入)
引脚定义
| 引脚 | 功能 |
|---|---|
| 40(GPIOB2) | 音频 R 右声道输入 |
| 41(GPIOB3) | 音频 L 左声道输入 |
| 24(GPIOA16) | AUX插入检测,拉低代表插入,如果不需要检测直接连接到地 |
参考电路
关于插入检测,请自行研究你购买的耳机头结构,然后看情况调整

麦克风输入
只支持一个麦克风1作为蓝牙通话的麦克风输入,如果需要使用蓝牙通话,请连接麦克风并前往蓝牙APP-设备参数配置中开启蓝牙通话
引脚定义
| 引脚 | 功能 |
|---|---|
| 43 | 麦克风1 |
参考电路
MICBIAS为麦克风偏置电压,可以连接到1048的VDD3.3输出脚,有条件的建议独立供电

数字光纤输入
用于连接电脑主板后面的光纤口/机顶盒的光纤口等等
硬件上需要搭配光纤接收座使用,注意是接收座不是发射座
引脚定义
| 引脚 | 功能 |
|---|---|
| 36(GPIOA31) | SPDIF_IN |
参考电路
下面是山景官方给的图,已经验证过了,放心使用,有些电感其实阉割掉也没事,比如L1,直接短接就可以,数字音频没那么讲究,毕竟只是0和1的世界罢了

数字I2S输出
山景的软件中可以配置协议(左对齐右对齐标准I2S)和各种配置,连接USB或在蓝牙APP中即可在线修改
该固件支持两组I2S一共四通道输出,并提供一个MCLK输出
其中I2S0对应的为软件中的DacLR通道,I2S1对应的为软件中的I2sLR通道
引脚定义
| 引脚 | 功能 | 说明 |
|---|---|---|
| 28(GPIOA20) | I2S0_LRCLK | I2S0帧时钟 |
| 29(GPIOA21) | I2S0_BCLK | I2S0位时钟 |
| 30(GPIOA22) | I2S0_OUT | I2S0数据输出 |
| 19(GPIOA7/A8) | I2S1_LRCLK | I2S1帧时钟 |
| 20(GPIOA9) | I2S1_BCLK | I2S1位时钟 |
| 21(GPIOA10) | I2S1_OUT | I2S1数据输出 |
| 32(GPIOA24) | I2S0_MCLK_OUT | MCLK主时钟输出 |
控制
一组POWER_KEY(6个),共支持6个按键+1个编码器+3个电位器,按键支持双击 单击 长按 功能
引脚定义
| 引脚 | 功能 | 说明 |
|---|---|---|
| 5 | POWER_KEY | 内部包含上拉电阻,不用的话请悬空,不要连接到GND或电源上 |
| 6(GPIOB4) | 编码器A端 | / |
| 7(GPIOB5) | 编码器B端 | / |
| 32(GPIOA28) | 电位器1(通道I) | 如果不需要使用悬空即可 |
| 32(GPIOA29) | 电位器2(通道J) | 如果不需要使用悬空即可 |
| 32(GPIOA30) | 电位器3(通道K) | 如果不需要使用悬空即可 |
| 38(GPIOB0) | 电位器4(通道M) | 不使用该路电位器时,建议对地放个10-100nf的电容 |
| 39(GPIOB1) | 电位器5(通道N) | 不使用该路电位器时,建议对地放个10-100nf的电容 |
编码器
注意是编码器,不是电位器,可以无极旋转的那种是编码器,拧了几下就到底的是电位器
一些编码器自带按键,可以将这个按键作为K1使用,这样基本上一个编码器能搞定所有常用操作了,参考电路如下


功能定义
音乐音量控制
POWER_KEY通道
参考设计,无需外挂分压电阻
注意
注意:如果不使用POWER_KEY脚的话请悬空,不要连接到地或者LDOIN

功能定义
| 按键 | 短按功能 | 长按功能 | 备注 | 阻值 |
|---|---|---|---|---|
| K1 | 模式切换 | 开关机 | 双击支持TWS配对(蓝牙模式下) | 100Ω |
| K2 | 音量减 | 上一首 | 16KΩ | |
| K3 | 音量加 | 下一首 | 27KΩ | |
| K4 | 切换音效配置 | 断开蓝牙连接 | 43KΩ | |
| K5 | 静音 | 断开蓝牙连接 | 82KΩ | |
| K6 | 音乐播放/暂停 | 播报电池电量 | 220KΩ |
警告
注意事项:POWER_KEY的对地100nF电容用于按键消抖,不可省略。此外K1按键串的100Ω电阻正常情况下不可省略
电位器
固件一共支持5路电位器,电位器功能支持在蓝牙APP-电位器配置中进行配置,设计时无需过多关心电位器的顺序
电位器需要使用1048的VDD3.3输出作为分压源,禁止连接到外部电压源比如5V电源
电位器的消抖电容可以使用10nf-100nf,电位器阻值支持10k-100k
注意固件中带有电位器检测功能,开机时当没有插入电位器时会自动禁用此通道,因此在插入电位器之后才能在APP中进行调节,否则会看不见电位器通道,注意电位器不支持热插拔,请不要在开机时拔掉电位器
注意
注意:电位器通道5和6(芯片B0,B1脚)的电位器由于1048硬件原因,对地电容建议集成在主板上,不要放在电位器小板上,否则容易导致电位器检测误判。其他通道不受影响

功能定义
| 功能 | 备注 |
|---|---|
| 禁用(默认) | 禁用该电位器,旋转时不做任何操作 |
| 音乐音量 | 调节音乐主音量 |
| 麦克风音量 | 仅麦克风固件,调节麦克风主音量 |
| 立体声通道音量 | DacLR通道音量 |
| 混合通道音量 | DacX通道音量 |
| I2S通道音量 | I2S0和I2S1数字输出通道音量 |
| I2S通道0音量 | I2S0数字输出通道音量 |
| I2S通道1音量 | I2S1数字输出通道音量 |
| 音乐低音(F0) | 映射到Music Pre Eq的F0 |
| 音乐中音(F1) | 映射到Music Pre Eq的F1 |
| 音乐高音(F2) | 映射到Music Pre Eq的F2 |
| 混合通道低切频率 | 映射到DacX通道的ButterWorth EQ的频率,需要手动调整为低通模式,支持的频率范围20-475HZ |
红外遥控
红外接收为NEC固定码,采用淘宝上贼便宜的遥控器作为示例码库,如果需要定制,请联系我,目前适配的遥控器链接如下:
21键 红外遥控器 38khz 蓝牙MP3解码板USB读插卡音响音箱遥控器 非常便宜还包邮带电池
红外接收头可以采用任何三条腿带内置IC的接收头,比如VS/HX1838等,不支持直接使用两条腿的红外二极管
电路很简单,参考如下

引脚定义
| 引脚 | 功能 | 说明 |
|---|---|---|
| 37(GPIOB6) | 红外遥控输入信号 | / |
功能定义
| 遥控器按键 | 短按功能 | 长按功能 | 红外码(NEC4bit前两位) |
|---|---|---|---|
| 电源 | 电源关机(不支持开) | 电源关机(不支持开) | 0xBA |
| MODE | 模式切换 | / | 0xB9 |
| 静音 | 静音/取消静音 | / | 0xB8 |
| 播放/暂停 | 播放/暂停 | 播报电池电量 | 0xBB |
| 上一首 | 上一首 | 上一首 | 0xBF |
| 下一首 | 下一首 | 下一首 | 0xBC |
| EQ | 音效模式 | / | 0xF8 |
| VOL- | 音量减 | 音量减 | 0xEA |
| VOL+ | 音量加 | 音量加 | 0xF6 |
| 0 | 音乐高音加 | 音乐高音加 | 0xE9 |
| RPT | REPEAT | / | 0xE6 |
| CLOCK | 收音机电台扫描 | 蓝牙连接控制(一般用于主动断开蓝牙) | 0xF2 |
| 1 | 音乐高音减 | 音乐高音减 | 0xF3 |
| 2 | / | / | 0xE7 |
| 3 | / | / | 0xA1 |
| 4 | 音乐低音加 | 音乐低音加 | 0xF7 |
| 5 | / | / | 0xE3 |
| 6 | / | / | 0xA5 |
| 7 | 音乐低音减 | 音乐低音减 | 0xBD |
| 8 | / | / | 0xAD |
| 9 | / | / | 0xB5 |
虽然定义看起来有点乱,但是我也没钱去定制遥控器,不会有比两块钱一个更便宜的遥控器了,所以只能拿数字键凑合功能,主打一个有总比没有好,其实看图就会发现规律,一般用几次就能记住了

提示
关于调节高音低音:
这里面所说的高音低音都是默认定义,实际上是映射到EQ上的,观察下默认EQ就可以发现有两个点分别对应高音和低音,假如你改了自定义EQ,那么那两个点将会被映射到你自定义EQ上的点,也可以利用这个特性来利用这个功能来操作EQ
电池电压监测
芯片内置12bit ADC(0-4096),普普通通,需要外挂分压电阻
仅支持标准3.7V的锂电池测量,不支持磷酸铁锂/铅酸电池,不过虽然说不支持,但是仍然可以使用电量播报功能直接播报电压,只不过无法计算出百分比罢了
需要分压电阻规格如下(量程0-26V最大6串锂电池),精度必须要小于等于1%,否则因为电阻带来的误差自己负责:
R1(连接到电池端):47KΩ
R2(连接到地):6.8KΩ
串数出厂时默认配置为1-4串电池自动检测,假如超过4串或者不需要检测,需要在蓝牙APP-设备参数配置中手动配置
| 引脚 | 功能 |
|---|---|
| 31(GPIOA23) | 电池电压检测 |
参考电路
电路很简单,上面直接连接VBAT即可,注意R36两端电压不要超过3.3V,超过可能会烧芯片

注意事项
- 预定义的分压电阻阻值较大,ADC本身测量时就会有±3mv的波动,在测量单节锂电池时1mv的波动可能会造成0.0几伏的检测波动,因此这是正常的误差,如果介意的,需要修改更小的分压电阻以降低量程来换取更高的精度,联系我定制固件
- 开机瞬间ADC的测量值会偏低,我在软件中已经增加了补偿,尽管如此还是有很小的概率会造成开机时测量不准确,开机之后就会恢复正常
- 电量百分比是通过电压值计算而来,没有库仑计也没办法精确计算,目前的电量曲线是根据力神动力电池的放电特性来的,其他动力电池的曲线大差不差,因此稍微有点误差属于正常,如果需要定制曲线可以联系我
- 如果测量线与功放供电共用的话,功放大功率瞬间把电池电压拉低引起检测值偏低的情况也属于正常,主控检测的速度非常快,这种压降拿普通电压表测不出来的,我已经在软件中做了60个窗口取平均值以尽可能获得准确的电量,所以尽量采用内阻低的电池和降低线阻,在PCB布线时可以直接从电源输入处引一条线到测量电路
- 测量电路本身会耗电,毕竟两个电阻,所以在设计软开关时需要把这一点考虑到,不要不经过开关直接连接到测量电路了
- 山景蓝牙底层不支持精确到百分比1,因此返回的电量为十的倍数,四舍五入后的电压,范围为10%-100%
关于误差
简单测试了一下误差,非专业仪器,仅供参考

功放静音脚
支持控制功放关断/开启,无声音时自动关闭功放以达到省电和降低底噪的目的,开机时用于消除POP音,一般连接到功放的MUTE脚
软件逻辑为:静音时关断(低电平),播放时开启(高电平),支持定制反转,不过正常情况下你加个三极管反转下就可以了
引脚定义
| 引脚 | 功能 |
|---|---|
| 25(GPIOA17) | 功放静音控制 |
提示
就算不使用这个静音脚功能,芯片在启动和关闭时也仅有很小的POP音(升级固件和硬断电时除外),因此如果你的设计中存在非常大的开机POP音,请检查别的电路和元件,这种情况下和芯片没有关系
LED
软件定义了一个万能LED作为指示灯输出,支持显示蓝牙状态,播放状态,按键反馈等
引脚定义
| 引脚 | 功能 |
|---|---|
| 23(GPIOA15) | 万能LED+ |
IO输出方式为高电平亮 低电平灭 参考电路如下,电阻决定亮度,IO驱动能力为6MA

RGB
本设计使用WS2812作为RGB灯输出,最大支持串255个灯珠并可以独立控制,刷新率25fps左右
使用这个首先建议了解WS2812B的工作方式,简单看一下,了解为什么一条线就能支持那么多LED即可
https://blog.csdn.net/Xhw3f586/article/details/132295552
虽然输出就一个引脚,但是区分了两种LED:主LED(支持状态显示/电量等)和拓展LED(能量灯/电量/百分比等)
软件中定义第一个LED永远都是主LED,剩下的LED作为拓展LED使用
目前软件中定义为8个(1+7)灯珠,如果需要修改的话请使用蓝牙APP-RGB配置自行配置
如果只需要主LED,连接一个即可,主灯的功能可以完全代替普通LED
如果只需要拓展LED,必须经过一个主LED后才能得到拓展LED所需的信号,一般很少用这种场景,真要这样的话就板载一个WS2812作为信号处理吧
注
不同型号灯珠数据手册上的时序其实并不一样,但是B站有博主测过,其实支持的范围很广,所以按理只要是个WS2812B就能正常工作,不排除极小概率下有些神奇的厂家搞出来的阴间灯珠不能用或者显示异常,软件中定义的0码高电平为300ns,1码高电平为900ns,参考下即可 一般都能用
另外固件默认支持的是GRB格式的灯珠,部分阴间厂商会做RGB格式的灯珠,如果碰到这种灯珠需要在APP中的RGB配置中调整灯珠格式
引脚定义
| 引脚 | 功能 |
|---|---|
| 9(GPIOA1) | WS2812B RGB数据 |
参考电路

默认颜色/模式说明
主指示灯
支持在蓝牙APP-RGB配置中自定义每种模式的颜色
| 颜色/模式 | 含义 |
|---|---|
| 任意颜色呼吸灯 | 当然正在播放音乐/麦克风声音 |
| 蓝灯常亮 | 蓝牙模式且蓝牙已连接并没有播放音乐 |
| 蓝灯闪烁 | 蓝牙模式且蓝牙未连接处于等待配对状态 |
| 黄灯 | 收音机模式 |
| 紫色 | TF卡播放/U盘播放/USB播放 |
| 粉色 | 同轴/光纤/I2S播放 |
| 橙色 | AUX线路输入播放 |
| 白色/灭 | 开机或空闲 |
| 青色(浅蓝色) | TWS从机模式 |
| 电量播报 | 绿=>红渐变,代表电量100%=>10% |
拓展指示灯
支持在蓝牙APP-RGB配置中自定义灯效和颜色
| 颜色/模式 | 含义 |
|---|---|
| 能量灯(默认) | 当前播放的音乐/麦克风声音能量 |
| 黄色百分比 | 麦克风当前音量,仅在触发麦克风音量调节时显示 |
| 白色百分比 | 音乐当前音量,仅在触发音乐音量调节时显示 |
| 电量播报 | 百分比+颜色形式展示 |
POWER_ON电源开信号(必读)
芯片会在正常上电之后将这个脚拉高,可以用来用作电源指示灯或者软开关的MOS/三极管控制脚
默认情况下,芯片上电不会自动启动,而是需要长按POWER_KEY之后才会开机
注意
如果需要来电自启,请将这个引脚直接连接到地,芯片会在上电时自动启动,当然手动关机,开机功能仍然可以使用
引脚定义
| 引脚 | 功能 |
|---|---|
| 8(GPIOA0) | POWER_ON信号输出 |
警告
如果连接到外部MOS/灯等使用的话,必须在输出串一个100Ω以上的电阻,要不然上电的一瞬间把这个引脚拉低的话会被认为是来电自启模式而造成不符合预期的现象
典型应用场景
包含左右声道的三分频场景(2高音+2中音+1低音)
该应用场景2高音和2中音都支持输出立体声,分别连接I2S0和I2S1输出,低音使用DacLR输出,支持单端或差分接法
TWS场景
在配对了TWS之后,支持单声道三分频,两个芯片分别输出左声道和右声道,不过需要注意的是,TWS在蓝牙模式下主机非常占资源,需要留意开启的音效数量,否则会卡顿,三分频固件下剩余的资源仅支持TWS简单分频场景,不支持复杂音效场景。