hrunp 发表于 2025-11-22 14:04

谢谢楼主的分享

WST 发表于 2025-11-22 14:26

楼主是全能实践型玩家

hifilw 发表于 2025-11-22 19:25

看看,来学习了。

lei906523114 发表于 2025-11-24 18:33

占位学习,感谢楼主分享

杨575 发表于 2025-11-24 19:39

:):)

杨575 发表于 2025-11-24 19:40


楼主是全能实践型玩家

mm_mjp 发表于 2025-11-25 15:59

这完全是厂机啊,太厉害了!!!

xyz00711542 发表于 2025-11-26 15:33

学习一下

mchoi518 发表于 2025-11-30 12:02


【2025年11月30日,有一些小的问题和改进共享】

输出缓冲也装上,机箱内满满登登的看着舒服多了:lol



1. 添加了输出缓冲,尝试了LME49990和金嗓子前级电路,RMAA测试结果自制金嗓子分立电路比运放指标高




LME49990缓冲



金嗓子前级电路缓冲

**** Hidden Message *****

2. 继电器音量噪音问题,有两个解决方法
   1)简单直接的方法就是把控制电路数字地线,与模拟电路地线短接,最好大电解下面。 但是这样做指标会降低不少,但是基本可以去掉噪音。
   2)音量调节后面增加缓冲,这样可以基本没噪音,测试指标也没问题。

3. 继电器音量调节后面,必须加RC滤波,因为继电器音量调节电路还是很容易引入数字电路的高频噪声。 后级功放输出嬬贝尔电路对地电阻烧了才想起来,前面没加RC滤波,功放输入端也没加RC滤波~ 最好都加上。

4. PCM1794静音功能忘了设计,切换同轴和光纤无信号时有白噪音。应该用DIR9001的ERROR端口高低电平控制PCM1794静音端口,这个比较麻烦后期重做板子再改吧。

5. 软件没发现bug,丝滑流畅。 唯一后期改的是音量从0~127改成0~100了,因为前面0~60基本没声音~~下面是改善后的代码

修改relay_control.c文件中的下面函数:
void SetVolumeRelays(uint16_t volume) {
    uint16_t relay_value;
   
    // 将 0~100 的输入映射到继电器控制值
    if(volume == 0) {
      relay_value = 0;
    } else if(volume >= 1 && volume <= 27) {
      relay_value = volume * 2;
    } else { // volume >= 28 && volume <= 100
      relay_value = volume + 27;
    }
   
    // 确保值在有效范围内 (0~127)
    if(relay_value > 127) {
      relay_value = 127;
    }
   
    // 清除所有继电器状态
    GPIO_ResetBits(VOL_PORT, VOL1_PIN | VOL2_PIN | VOL3_PIN | VOL4_PIN);
    GPIO_ResetBits(VOL_HIGH_PORT, VOL5_PIN | VOL6_PIN | VOL7_PIN);
   
    delay_ms(5);
   
    // 设置低4位 (PB12-PB15)
    if(relay_value & 0x01) GPIO_SetBits(VOL_PORT, VOL1_PIN);
    else GPIO_ResetBits(VOL_PORT, VOL1_PIN);
   
    if(relay_value & 0x02) GPIO_SetBits(VOL_PORT, VOL2_PIN);
    else GPIO_ResetBits(VOL_PORT, VOL2_PIN);
   
    if(relay_value & 0x04) GPIO_SetBits(VOL_PORT, VOL3_PIN);
    else GPIO_ResetBits(VOL_PORT, VOL3_PIN);
   
    if(relay_value & 0x08) GPIO_SetBits(VOL_PORT, VOL4_PIN);
    else GPIO_ResetBits(VOL_PORT, VOL4_PIN);
   
    // 设置高3位 (PA8-PA10)
    if(relay_value & 0x10) GPIO_SetBits(VOL_HIGH_PORT, VOL5_PIN);
    else GPIO_ResetBits(VOL_HIGH_PORT, VOL5_PIN);
   
    if(relay_value & 0x20) GPIO_SetBits(VOL_HIGH_PORT, VOL6_PIN);
    else GPIO_ResetBits(VOL_HIGH_PORT, VOL6_PIN);
   
    if(relay_value & 0x40) GPIO_SetBits(VOL_HIGH_PORT, VOL7_PIN);
    else GPIO_ResetBits(VOL_HIGH_PORT, VOL7_PIN);
}

别忘了修改system_config.h中最大音量配置:

#define MIN_VOLUME 0
#define MAX_VOLUME 100

6p14 发表于 2025-11-30 14:01

学习了

zxhdoop 发表于 2025-11-30 17:54

mchoi518 发表于 2025-11-30 12:02
【2025年11月30日,有一些小的问题和改进共享】

输出缓冲也装上,机箱内满满登登的看着舒服多了
...

LME49990缓冲还能增加失真?49990的全功率带宽只有不到300Khz,电路要加低通。

mchoi518 发表于 2025-12-1 08:00

本帖最后由 mchoi518 于 2025-12-1 08:03 编辑

zxhdoop 发表于 2025-11-30 17:54
LME49990缓冲还能增加失真?49990的全功率带宽只有不到300Khz,电路要加低通。

多一个东西多一个失真正常啊,

49990带宽110M啊,哪来的300khz啊? 单位增益110M呗,,300多倍增益时300khz

t-hifi 发表于 2025-12-1 20:54

学习学习

qazxswf 发表于 2025-12-1 22:41

学习、仰慕下

kevinluy 发表于 2025-12-1 22:51

难得看到既有制作又有指标测试结果的分享。非常好的指标,厉害!

592657820 发表于 2025-12-1 23:28

测试结果新的thd比老的thd高呀

回到 发表于 2025-12-2 01:56

赞 漂亮

gz_zxq 发表于 2025-12-3 21:02

楼主的学习能力真强。

Virtue 发表于 2025-12-5 00:17

机箱变压器和水塘是老演员了{:2_60:}

mchoi518 发表于 2025-12-5 07:58

Virtue 发表于 2025-12-5 00:17
机箱变压器和水塘是老演员了

:lol 确实这些大件都没换过~
页: 1 2 3 [4] 5 6 7 8 9 10
查看完整版本: DIY功能完整的全平衡PCM1794解码器STM32单片机