数据读取
ADC1取值:0x02,0x01,0x00,24位
ADC2(SDO23=0)或AD3(SDO23=1)的数据:0x05,0x04,0x03,只用了19位
LPF_DATA:0x08,0x07,0x06,只用了19位
RMS取值:0x0d,0x0c,0x0b,0x0a,0x09,40位
PKHMIN:0x10,0x0f,0x0e,24位
PKHMAX:0x13,0x12,0x11,24位
AD1(24位低速高精度)
ENAD1 启用AD1 0x23:7
AD1RG AD1(参考增益) 0x23:4
AD1RHBUF AD1参考正缓冲,电压跟随 0x23:3
AD1RLBUF AD1参考负缓冲 0x23:2
AD1IPBUF AD1输入正缓冲 0x23:1
AD1INBUF AD1输入负缓冲 0x23:0
AD1IG AD1输入增益 0x25:5,4
AD1OS AD1零点电压,无用 0x22:7,6,5
AD1CHOP AD1斩波,调输出偏移的 0x22:4,3
AD1OSR AD1采样速度 0x22:2,1,0
SFT1 AD1的输入预滤波 0x33:3,2
SAD1FP AD1滤波器正端输入,FTP 0x24:7,6,5,4
SAD1FN AD1滤波器负端输入,FTN 0x24:2,1,0
SAD1I AD1的输入信号配置 0x33:1,0
SAD1RH AD1参考正端 0x28:6,5,4
SAD1RL AD1参考负端 0x28:2,1,0
AD1为30分频,AD1FP,AD1FN 滤波后输入端, AD1IP,AD1IN 原始输入端
ADC2/AD3(高速19位)
Low Pass Filter
RMS Converter
Peak Hold
ENAD2 启用AD2 0x26:7
ENCHOPAD2 AD2启动斩波,ADC变慢 0x26:5
AD2RG AD2参考增益 0x26:4
SAD2CLK AD2时钟(AD3共用) 0x26:3
AD2OSR AD2采样速度(AD3共用) 0x26:2,1,0
AD2IG AD2输入增益 0x25:7,6
SAD2IP AD2 输入正端 0x27:7,6
SAD2IN AD2 输入负端 0x27:5,4
SAD2RH AD2 参考正端 0x27:3,2
SAD2RL AD2 参考负端 0x27:1,0
ENAD3 启用AD3 0x34:7
ENCHOPAD3 AD3启动斩波 0x34:5
AD3RG AD3参考增益 0x34:4
SVXI 配置RMS的数据来源 0x34:3
SDO23 1.AD2数据显示来源
2.LPF低通滤波数据来源,
3.RMS真有效值来源
0x34:2
SAD3IP AD3输入正端 0x35:7,6
SAD3IN AD3输入负端 0x35:5,4
AD3IG AD3输入增益 0x35:3,2
ENRMS 开启真有效值测量 0x29:7
ENLPF 开启软件低通滤波
只有AD2/AD3
0x29:6
LPFBW 低通滤波采样速度 0x29:5,4,3
ENPKH 开启数据保持 0x29:2
PKHSEL 数据保持数据来源 0x29:1,0
AD3_DATA 寄存器,是因为它的原始数据没有被单独引出来,而是直接作为 RMS 和 LPF 的输入源了。
AD3 通道的采样数据,会直接进入 RMS 模块,做「平方 - 累加 - 平均」的运算,
最终输出 RMS_DATA 寄存器里的 40bit 均方值。
RMS 单元的主输入只能是 AD3
时钟
ENOSC 启用内部晶振 0x33:5
ENXI 使用外部晶振 0x33:4
重置:特定寄存器地址(37h)写入特定数据(60h)。
hy3131内部时钟为4.9152Mhz
参考电压
ENVS 启用内部基准电压1生成 VDSC/AGNDP/AGNDN 分压 0x2F:7
ENBIAS 电流偏置(Bias Current)给晶体管提供合适的工作电流,让电路工作在放大区,
决定的是模拟电路能不能正常工作、性能好不好
0x31:6
ENREFO 启动带隙基准(1.2V)相对于AGND并输出至REFO脚 0x31:7
SAGND 选择Agnd参考电压 0x31:5,4
SREFO 选择参考电压来源 0x30:7
SACM ACM电压,ADC共模参考电压,建议1.5v,
类似于1.65v,尺子的中心位置
0x25:3,2
有三个电压发生器?带隙基准(1.2V), AGND 中点电压(VDD/2), 内部偏置网络(多组偏置电压)
VDS:原始电压抽头,vdsc:校准后的,一共7+18=25个电压位
开启顺序:上电后,需要先开启 ENBIAS(偏置电路),
再开启 ENVS 和 ENREFO,让基准电压稳定后再启动 ADC。
1.5V ACM 只是信号的 “静态中心电压”,解决的是 “信号摆在哪里” 的问题。
ENBIAS/BIAS 解决的是 “电路本身能不能正常放大信号、能不能工作” 的问题。 上电顺序必须先开 ENBIAS:
上电后,必须先把 ENBIAS 置 1,让偏置电路稳定下来,再开启 ADC、运放等模块。
如果没开偏置就启动 ADC,电路是无法正常工作的,读出来的数据会完全乱掉。 它是所有模拟模块的总开关:
不仅是 ADC,运放、比较器等所有模拟电路都依赖它提供的偏置电流,
所以 ENBIAS 也是整个模拟部分的 “总电源开关”
频率测量
ENCTR 开始频率计数,寄存器清空,先配置后开启 0x20:1
ENCNTI 切换计数器信号源 0x20:3
ENPCMPO CMPO信号送到CMP引脚 0x20:2
PCNTI CNT缓冲后的输出 0x14:7 CNT Pin 经过缓冲后的信号PCNTI
CTBOV CTB测量溢出 0x14:0 CTB测量溢出标志位
CNT Pin:数字输入脚,用来把外部信号送进芯片里的 ** 频率计数器
CMP Pin:数字输出脚,用来把芯片内部的比较器结果 CMPO 输出到外部
再比如你想把超量程信号引出来给外部 MCU 用
1个频率计数器
CTA:0x1d,0x1c,0x1b,24位,写入初始计数开始数据
CTB:0x1a,0x19,0x18,24位,记录完整周期数
CTC:0x17,0x16,0x15,24位,记录高脉冲时钟计数
溢出只是中间节点, 真正停止是在:溢出后 + 等 CTB 完整周期结束, 这时候 CTA 的值就是 CTA Final。
(0x1000000 - CTA Initial) + CTA Final
模式切换
SFUVR OP3正端输入比较器电压VREF 0x31:3,2,1,0
ACC ACV测量频宽补偿 0x30:6,5,4,3,2,1,0
SMODE 功能切换5 0x2F:5
SMODE 功能切换4 0x2F:4
SMODE 功能切换 0x2F:3,2,1,0 smode<3>为0 ,不受CMPO影响
smode<3>为1 ,受CMPO影响
SDIO 控制PB0与PB8连接 0x24:3
地址 7 6 5 4 3 2 1 0
0x2E
0x2D
0x2C
0x2B
0x2A
CMPO为比较器的输出结果,
设置 mode 的同时,就已经锁定了该模式下必须使用的 VREF 来源。
SMODE<3> 只是 mode 编码的一位,它不是单独的 “VREF 选择位”。
SMODE 决定测量模式;模式决定 VREF 来源。不是 SMODE 单独控制 VREF。
你只配置 SMODE,不需要另外配 VREF,因为 VREF 已经被模式映射好了,
先定 SMODE:选择测量模式,这会决定哪些开关闭合、哪些信号路径接通。
再定 SFUVR
SMODE[4]0,手动控制,1自动控制
AGNDP<9>=AGND+K2×(REFO−AGND)
OP3是一个恒流/恒压源,SVSO1为恒压,SVSO2为恒流,恒压内部参考电压提供
, 恒流为内部电压与外部分压电阻实现
运放组成的恒压恒流源,内部分压网络这个好
比较器
OP1CHOP OP1斩波时钟(Chopper Clock) 0x33:7,6
做高精度直流测量(比如小电压、小电阻档): 推荐选 01(1kHz)或 10(2kHz),开启斩波模式,能大幅降低失调和噪声。
做交流信号放大或不需要斩波时: 可以选 00 或 11,把时钟固定在 0 或 1,关闭斩波功能
ENOP2 启动OP2 0x32:7
SOP2P OP2正端输入 0x32:6,5,4
ENOP1 启动OP1运放1 0x32:3
SOP1P OP1正端输入 0x32:2,1,0
OPS<2> 运放2,负端输入 0x25:1
OPS<1> 运放1,负端输入 0x25:0
SCMPRH CMPH 高端比较器负端输入 0x21:7,6,5,4
SCMPRL CMPL 低端比较器负端输入 0x21:3,2,1,0
SCMPI 比较器负端输入OPXO 0x20:7,6,5
ENCMP 启动比较器 0x20:4
ACPO 只读数据 0x14:6 比较器经过latch的输出
CMPHO 只读数据 0x14:5 ACPO经过buffer的输出
CMPLO 只读数据 0x14:4 比较器的输出
3 个独立运放(OP1 和 OP2,op3)
OP1:一般用于电阻档 / 二极管档的恒流源,OP2:一般用于交流信号 / 电流采样放大
有3个运放,2个比较器,Latch 锁存器,比较器用于控制上限,下限,Buffer为缓冲器
中断
RMSIE RMS事件中断 0x1F:4
LPFIE 低通滤波 0x1F:3
AD1IE ad1中断 0x1F:2
AD2IE ad2中断 0x1F:1
CTIE 频率中断 0x1F:0
RMSIF 频率中断 0x1E:4
LPFF 频率中断 0x1E:3
AD1F 频率中断 0x1E:2
AD2F 频率中断 0x1E:1
CTF 频率中断 0x1E:0
在 CS 为高时,DO 就是专门用来输出中断信号的。读完重置中断
笔记 芯片的ACM2,和 REFO引脚,FTP,FTN是用来外接电容的
原来hy3131是纯电路啊,没有cpu啊