【HIFI】弗西音频FOSI AUDIO SK02拆解及 I²C 上电数据

1、拆解及部分细节

如图所示,板子还是比较简洁规整的:

  • DAC采用单颗ESS 的 ES9038Q2M
  • 运放部分四颗SGM 8262,测量±V引脚,工作电压差为15.8V左右(板子上标却是±6V),工作发热量巨大。
  • 运放之后还有两颗模拟开关,在B站关于该厂ZD3的视频下看到有人讨论了同款芯片作用,也是来自SGM的芯片——SGM3710(不过官网已经找不到这颗芯片的PDF,只有第三方来源)。
  • USB音频控制器采用SAVITECH的SA9312,可以安装BRAVO-HD驱动,实现ASIO输出。
  • 单片机使用STC的8H1K28
  • 音量旋钮旁边还有一颗TI的LM358放大器。
  • 主板看起来是四层PCB,似乎做了数字、模拟部分的隔离设计,主板与外壳接地的弹性触点焊接歪的离谱,是有什么神秘设计么XD

2、监听I²C得到上电逻辑

利用逻辑分析仪,分析上电后的通讯:

3、SK02对ES9038Q2M的寄存器操作(GPT分析):

注:该部分通过GPT分析,感觉近期GPT不是很好用,总是出错,我对着手册复核了一部分,仅供参考:

寄存器操作数据 (hex)说明
64读取0x72Chip ID=0x1C,automute_status=1(自动静音触发),lock_status=0(DPLL未锁定)
8写入0x99GPIO 配置:gpio2_cfg=9 (Analog Input Shutdown),gpio1_cfg=9 (Analog Input Shutdown)
12写入0xFFASRC/DPLL 带宽:dpll_bw_serial=15,高带宽;dpll_bw_dsd=15,高带宽
14写入0x8ASoft Start 配置:soft_start=1(正常启动),soft_start_on_lock=0(解锁时不自动升压),soft_start_time=10
22写入0x30THD Compensation C2 高字节=0x30(16-bit signed coefficient 高位)
23写入0x00THD Compensation C2 低字节=0x00(16-bit signed coefficient 低位)
24写入0x80THD Compensation C3 高字节=0x80(16-bit signed coefficient 高位)
25写入0x01THD Compensation C3 低字节=0x01(16-bit signed coefficient 低位)
64读取0x72Chip ID=0x1C,automute_status=1,lock_status=0(重复读取确认)
8写入0x99GPIO 配置再次设置:gpio2_cfg=9,gpio1_cfg=9(保持 Analog Input Shutdown)
12写入0xFFASRC/DPLL 带宽再次设置:dpll_bw_serial=15,高带宽;dpll_bw_dsd=15,高带宽
14写入0x8ASoft Start 配置再次设置:soft_start=1,soft_start_on_lock=0,soft_start_time=10
22写入0x30THD Compensation C2 高字节=0x30
23写入0x00THD Compensation C2 低字节=0x00
24写入0x80THD Compensation C3 高字节=0x80
25写入0x01THD Compensation C3 低字节=0x01
1写入0x84Input Selection:serial_length=32-bit,serial_mode=I2S,auto_select=DSD/Serial自动选择,input_select=serial
8写入0x88GPIO 配置更新:gpio2_cfg=8 (Standard Input),gpio1_cfg=8 (Standard Input)
15写入0x5CVolume Control 1=0x5C (-40dB)
16写入0x5CVolume Control 2=0x5C (-40dB)
7写入0x80Filter & Mute:filter_shape=apodizing fast roll-off,bypass_osf=0(使用内部滤波器),mute=0(未静音)
7读取0x80读取寄存器 7:确认滤波器配置和静音状态
7写入0x80Filter & Mute 重写:filter_shape=apodizing fast roll-off,bypass_osf=0,mute=0
7读取0x80再次读取寄存器 7:确认滤波器配置和静音状态

上电后的完整原始数据:

6653126-6653410 I2C: Address/data: Address write: 48
6653073-6653073 I2C: Address/data: Start
6653410-6653451 I2C: Address/data: Write
6653451-6653492 I2C: Address/data: ACK
6653493-6653818 I2C: Address/data: Data write: 40
6653818-6653859 I2C: Address/data: ACK
6653856-6653856 I2C: Address/data: Start repeat
6653909-6654193 I2C: Address/data: Address read: 48
6654193-6654233 I2C: Address/data: Read
6654234-6654274 I2C: Address/data: ACK
6654262-6654477 I2C: Address/data: Data read: 72
6654491-6654518 I2C: Address/data: NACK
6654527-6654527 I2C: Address/data: Stop
6654564-6654564 I2C: Address/data: Start
6654617-6654901 I2C: Address/data: Address write: 48
6654901-6654941 I2C: Address/data: Write
6654942-6654982 I2C: Address/data: ACK
6654984-6655308 I2C: Address/data: Data write: 08
6655309-6655349 I2C: Address/data: ACK
6655358-6655682 I2C: Address/data: Data write: 99
6655683-6655723 I2C: Address/data: ACK
6655723-6655723 I2C: Address/data: Stop
6656014-6656014 I2C: Address/data: Start
6656068-6656352 I2C: Address/data: Address write: 48
6656352-6656393 I2C: Address/data: Write
6656393-6656434 I2C: Address/data: ACK
6656435-6656760 I2C: Address/data: Data write: 0C
6656760-6656801 I2C: Address/data: ACK
6656809-6657134 I2C: Address/data: Data write: FF
6657134-6657175 I2C: Address/data: ACK
6657174-6657174 I2C: Address/data: Stop
6657411-6657411 I2C: Address/data: Start
6657465-6657749 I2C: Address/data: Address write: 48
6657749-6657790 I2C: Address/data: Write
6657790-6657831 I2C: Address/data: ACK
6657831-6658157 I2C: Address/data: Data write: 0E
6658156-6658197 I2C: Address/data: ACK
6658205-6658531 I2C: Address/data: Data write: 8A
6658530-6658571 I2C: Address/data: ACK
6658571-6658571 I2C: Address/data: Stop
6658808-6658808 I2C: Address/data: Start
6658862-6659146 I2C: Address/data: Address write: 48
6659146-6659187 I2C: Address/data: Write
6659186-6659227 I2C: Address/data: ACK
6659228-6659554 I2C: Address/data: Data write: 16
6659553-6659594 I2C: Address/data: ACK
6659602-6660036 I2C: Address/data: Data write: 30
6659981-6660076 I2C: Address/data: ACK
6660022-6660022 I2C: Address/data: Stop
6660259-6660259 I2C: Address/data: Start
6660312-6660597 I2C: Address/data: Address write: 48
6660597-6660638 I2C: Address/data: Write
6660637-6660678 I2C: Address/data: ACK
6660679-6661005 I2C: Address/data: Data write: 17
6661004-6661045 I2C: Address/data: ACK
6661053-6661379 I2C: Address/data: Data write: 00
6661378-6661419 I2C: Address/data: ACK
6661419-6661419 I2C: Address/data: Stop
6661656-6661656 I2C: Address/data: Start
6661709-6661994 I2C: Address/data: Address write: 48
6661994-6662035 I2C: Address/data: Write
6662034-6662075 I2C: Address/data: ACK
6662076-6662402 I2C: Address/data: Data write: 18
6662401-6662442 I2C: Address/data: ACK
6662450-6662776 I2C: Address/data: Data write: 80
6662775-6662816 I2C: Address/data: ACK
6662816-6662816 I2C: Address/data: Stop
6663053-6663053 I2C: Address/data: Start
6663106-6663391 I2C: Address/data: Address write: 48
6663391-6663432 I2C: Address/data: Write
6663431-6663472 I2C: Address/data: ACK
6663473-6663799 I2C: Address/data: Data write: 19
6663798-6663839 I2C: Address/data: ACK
6663903-6664229 I2C: Address/data: Data write: 01
6664228-6664269 I2C: Address/data: ACK
6664269-6664269 I2C: Address/data: Stop
6665462-6665462 I2C: Address/data: Start
6665515-6665799 I2C: Address/data: Address write: 48
6665799-6665839 I2C: Address/data: Write
6665840-6665880 I2C: Address/data: ACK
6665882-6666207 I2C: Address/data: Data write: 40
6666207-6666248 I2C: Address/data: ACK
6666245-6666245 I2C: Address/data: Start repeat
6666298-6666582 I2C: Address/data: Address read: 48
6666582-6666622 I2C: Address/data: Read
6666623-6666663 I2C: Address/data: ACK
6666651-6666866 I2C: Address/data: Data read: 72
6666880-6666907 I2C: Address/data: NACK
6666916-6666916 I2C: Address/data: Stop
6666953-6666953 I2C: Address/data: Start
6667006-6667291 I2C: Address/data: Address write: 48
6667291-6667332 I2C: Address/data: Write
6667331-6667372 I2C: Address/data: ACK
6667373-6667697 I2C: Address/data: Data write: 08
6667698-6667738 I2C: Address/data: ACK
6667747-6668125 I2C: Address/data: Data write: 99
6668126-6668166 I2C: Address/data: ACK
6668166-6668166 I2C: Address/data: Stop
6668404-6668404 I2C: Address/data: Start
6668457-6668742 I2C: Address/data: Address write: 48
6668742-6668783 I2C: Address/data: Write
6668782-6668823 I2C: Address/data: ACK
6668824-6669150 I2C: Address/data: Data write: 0C
6669149-6669190 I2C: Address/data: ACK
6669198-6669524 I2C: Address/data: Data write: FF
6669523-6669564 I2C: Address/data: ACK
6669564-6669564 I2C: Address/data: Stop
6669801-6669801 I2C: Address/data: Start
6669855-6670139 I2C: Address/data: Address write: 48
6670139-6670180 I2C: Address/data: Write
6670180-6670221 I2C: Address/data: ACK
6670221-6670547 I2C: Address/data: Data write: 0E
6670547-6670588 I2C: Address/data: ACK
6670596-6670921 I2C: Address/data: Data write: 8A
6670921-6670962 I2C: Address/data: ACK
6670961-6670961 I2C: Address/data: Stop
6671198-6671198 I2C: Address/data: Start
6671252-6671536 I2C: Address/data: Address write: 48
6671536-6671577 I2C: Address/data: Write
6671577-6671618 I2C: Address/data: ACK
6671619-6671998 I2C: Address/data: Data write: 16
6671998-6672039 I2C: Address/data: ACK
6672047-6672372 I2C: Address/data: Data write: 30
6672372-6672413 I2C: Address/data: ACK
6672412-6672412 I2C: Address/data: Stop
6672649-6672649 I2C: Address/data: Start
6672703-6672987 I2C: Address/data: Address write: 48
6672987-6673027 I2C: Address/data: Write
6673028-6673068 I2C: Address/data: ACK
6673070-6673394 I2C: Address/data: Data write: 17
6673395-6673435 I2C: Address/data: ACK
6673444-6673768 I2C: Address/data: Data write: 00
6673769-6673809 I2C: Address/data: ACK
6673810-6673810 I2C: Address/data: Stop
6674047-6674047 I2C: Address/data: Start
6674100-6674385 I2C: Address/data: Address write: 48
6674385-6674426 I2C: Address/data: Write
6674426-6674467 I2C: Address/data: ACK
6674467-6674793 I2C: Address/data: Data write: 18
6674792-6674833 I2C: Address/data: ACK
6674842-6675167 I2C: Address/data: Data write: 80
6675167-6675208 I2C: Address/data: ACK
6675207-6675207 I2C: Address/data: Stop
6675444-6675444 I2C: Address/data: Start
6675498-6675836 I2C: Address/data: Address write: 48
6675836-6675931 I2C: Address/data: Write
6675877-6675972 I2C: Address/data: ACK
6675919-6676244 I2C: Address/data: Data write: 19
6676244-6676285 I2C: Address/data: ACK
6676293-6676618 I2C: Address/data: Data write: 01
6676618-6676659 I2C: Address/data: ACK
6676658-6676658 I2C: Address/data: Stop
6677101-6677101 I2C: Address/data: Start
6677154-6677439 I2C: Address/data: Address write: 48
6677439-6677480 I2C: Address/data: Write
6677479-6677520 I2C: Address/data: ACK
6677521-6677847 I2C: Address/data: Data write: 01
6677846-6677887 I2C: Address/data: ACK
6677895-6678221 I2C: Address/data: Data write: 84
6678220-6678261 I2C: Address/data: ACK
6678261-6678261 I2C: Address/data: Stop
6678291-6678291 I2C: Address/data: Start
6678345-6678629 I2C: Address/data: Address write: 48
6678629-6678670 I2C: Address/data: Write
6678670-6678711 I2C: Address/data: ACK
6678712-6679037 I2C: Address/data: Data write: 08
6679037-6679078 I2C: Address/data: ACK
6679086-6679411 I2C: Address/data: Data write: 88
6679411-6679452 I2C: Address/data: ACK
6679451-6679451 I2C: Address/data: Stop
6679686-6679686 I2C: Address/data: Start
6679739-6680078 I2C: Address/data: Address write: 48
6680078-6680119 I2C: Address/data: Write
6680118-6680159 I2C: Address/data: ACK
6680160-6680486 I2C: Address/data: Data write: 0F
6680485-6680526 I2C: Address/data: ACK
6680534-6680860 I2C: Address/data: Data write: 5C
6680859-6680900 I2C: Address/data: ACK
6680900-6680900 I2C: Address/data: Stop
6680930-6680930 I2C: Address/data: Start
6680983-6681268 I2C: Address/data: Address write: 48
6681268-6681309 I2C: Address/data: Write
6681308-6681349 I2C: Address/data: ACK
6681350-6681674 I2C: Address/data: Data write: 10
6681675-6681715 I2C: Address/data: ACK
6681724-6682050 I2C: Address/data: Data write: 5C
6682049-6682090 I2C: Address/data: ACK
6682090-6682090 I2C: Address/data: Stop
12626945-12626945 I2C: Address/data: Start
12626998-12627283 I2C: Address/data: Address write: 48
12627283-12627324 I2C: Address/data: Write
12627323-12627364 I2C: Address/data: ACK
12627365-12627689 I2C: Address/data: Data write: 07
12627690-12627730 I2C: Address/data: ACK
12627728-12627728 I2C: Address/data: Start repeat
12627781-12628066 I2C: Address/data: Address read: 48
12628066-12628107 I2C: Address/data: Read
12628106-12628147 I2C: Address/data: ACK
12628134-12628350 I2C: Address/data: Data read: 80
12628364-12628391 I2C: Address/data: NACK
12628400-12628400 I2C: Address/data: Stop
12628434-12628434 I2C: Address/data: Start
12628487-12628771 I2C: Address/data: Address write: 48
12628771-12628811 I2C: Address/data: Write
12628812-12628852 I2C: Address/data: ACK
12628854-12629178 I2C: Address/data: Data write: 07
12629179-12629219 I2C: Address/data: ACK
12629228-12629552 I2C: Address/data: Data write: 80
12629553-12629593 I2C: Address/data: ACK
12629594-12629594 I2C: Address/data: Stop

4、单片机检测选项

单片机型号: STC8H1K28
软件协议, V3.0: 7.3.13U

当前芯片的硬件选项为:
. 系统ISP工作频率: 23.938MHz
. 内部IRC振荡器的频率: 11.054MHz
. 掉电唤醒定时器的频率: 34.825KHz
. 振荡器放大增益使能
. 用户EEPROM大小被设置为 0.5 K
. P3.2和P3.3与下次下载无关
. 上电复位时增加额外的复位延时
. 复位引脚用作普通I/O口
. 检测到低压时复位
. 低压检测门槛电压 : 2.00 V
. 上电复位时,硬件不启动内部看门狗
. 上电自动启动内部看门狗时的预分频数为 : 256
. 空闲状态时看门狗定时器停止计数
. 下次下载用户程序时,将用户EEPROM区一并擦除
. 下次下载用户程序时,没有相关的端口控制485
. 下次下载时不需要校验下载口令
. 内部参考电压: 1184 mV (参考范围: 1100~1300mV)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注