分类: HIFI

  • 【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)