HX711 电子秤专用模拟/数字(A/D)转换器芯片 简介 特点 HX711 采用了海芯科技集成电路专利技术, 是一款专为高精度电子秤而设计的 24 位 A/D 转 换器芯片。与同类型其它芯片相比,该芯片集 成了包括稳压电源、片内时钟振荡器等其它同 类型芯片所需要的外围电路,具有集成度高、 响应速度快、抗干扰性强等优点。降低了电子 秤的整机成本,提高了整机的性能和可靠性。 • 两路可选择差分输入 该芯片与后端 MCU 芯片的接口和编程非常 简单,所有控制信号由管脚驱动,无需对芯片 内部的寄存器编程。输入选择开关可任意选取 通道 A 或通道 B,与其内部的低噪声可编程放 大器相连。通道 A 的可编程增益为 128 或 64, 对应的满额度差分输入信号幅值分别为±20mV 或±40mV。通道 B 则为固定的 32 增益,用于系 统参数检测。芯片内提供的稳压电源可以直接 向外部传感器和芯片内的 A/D 转换器提供电 源,系统板上无需另外的模拟电源。芯片内的 时钟振荡器不需要任何外接器件。上电自动复 位功能简化了开机的初始化过程。 VAVDD 10uF • 片内低噪声可编程放大器,可选增益为 32,64 和 128 • 片内稳压电路可直接向外部传感器和芯片内 A/D 转换器提供电源 • 片内时钟振荡器无需任何外接器件,必要时 也可使用外接晶振或时钟 • 上电自动复位电路 • 简单的数字控制和串口通讯:所有控制由管 脚输入,芯片内寄存器无需编程 • 可选择 10Hz 或 80Hz 的输出数据速率 • 同步抑制 50Hz 和 60Hz 的电源干扰 • 耗电量(含稳压电源电路): 典型工作电流:< 1.6mA, 断电电流:< 1µA • 工作电压范围:2.6 ~ 5.5V • 工作温度范围:-40 ~ +85℃ • 16 管脚的 SOP-16 封装 VSUP S8550 R2 2.7~5.5V R1 VFB 传感器 BASE VSUP DVDD AVDD INA+ Analog Supply Regulator DOUT INAINB+ Input MUX Digital Interface 24-bit Σ∆ ADC PGA Gain = 32, 64, 128 INBVBG Bandgap Reference PD_SCK To/From MCU RATE Internal Oscillator HX711 0.1uF AGND 图一 XI XO HX711 内部方框图 Information contained in this document is for design reference only and not a guarantee. Avia Semiconductor reserves the right to modify it without notice. TEL: (592) 252-9530 (P. R. China) EMAIL: [email protected] www.aviaic.com AVIA SEMICONDUCTOR HX711 管脚说明 稳压电路电源 VSUP 1 数字电源 16 DVDD 输出数据速率控制输入 稳压电路控制输出 BASE 2 15 RATE 模拟电源 AVDD 3 14 XI 外部时钟或晶振输入 稳压电路控制输入 VFB 4 13 XO 晶振输入 模拟地 AGND 5 12 DOUT 串口数据输出 参考电源输出 VBG 6 11 PD_SCK 断电和串口时钟输入 通道A负输入端 INNA 7 10 INPB 通道B正输入端 通道A正输入端 INPA 8 9 INNB 通道B负输入端 SOP-16L 封装 管脚号 名称 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VSUP BASE AVDD VFB AGND VBG INAINA+ INBINB+ PD_SCK DOUT XO XI RATE DVDD 性能 电源 模拟输出 电源 模拟输入 地 模拟输出 模拟输入 模拟输入 模拟输入 模拟输入 数字输入 数字输出 数字输入输出 数字输入 数字输入 电源 描述 稳压电路供电电源: 2.6 ~ 5.5V 稳压电路控制输出(不用稳压电路时为无连接) 模拟电源: 2.6 ~ 5.5V 稳压电路控制输入(不用稳压电路时应接地) 模拟地 参考电源输出 通道 A 负输入端 通道 A 正输入端 通道 B 负输入端 通道 B 正输入端 断电控制(高电平有效)和串口时钟输入 串口数据输出 晶振输入(不用晶振时为无连接) 外部时钟或晶振输入,0: 使用片内振荡器 输出数据速率控制,0: 10Hz; 1: 80Hz 数字电源: 2.6 ~ 5.5V 表一 管脚描述 AVIA SEMICONDUCTOR 2 HX711 主要电气参数 参数 条件及说明 最小值 典型值 满额度差分输入范围 有效位数(EffectiveNumber-of-Bits) (1) 无噪声位数(NoiseFree Bits) (2) V(inp)-V(inn) 积分非线性(INL) 输入共模电压范围 满量程的百分比 输出数据速率 使用片内振荡器,RATE = 0 10 使用片内振荡器,RATE = DVDD 80 输入零点漂移 输入噪声 单位 ±0.5(AVDD/GAIN) V 增益 = 128,速率=10Hz 19.7 Bits 增益 = 128,速率=10Hz 17.3 Bits %of FSR V ±0.001 AGND+1.2 外部时钟或晶振,RATE = 0 输出数据编码 输出稳定时间(3) 最大值 外部时钟或晶振,RATE = DVDD 二进制补码 AVDD-1.3 Hz fclk/1,105,920 fclk/138,240 800000 7FFFFF HEX ms RATE = 0 RATE = DVDD 增益 = 128 增益 = 64 400 50 0.1 0.2 mV mV 增益 = 128,RATE = 0 50 nV(rms) 增益 = 128,RATE = DVDD 90 温度系数 输入零点漂移(增益 = 128) 增益漂移(增益 = 128) ±12 ±7 nV/℃ ppm/℃ 输入共模信号抑制比 增益 = 128,RATE = 0 100 dB 增益 = 128,RATE = 0 电源干扰抑制比 输出参考电压(VBG) 100 1.25 dB V 外部时钟或晶振频率 电源电压 模拟电源电流 (含稳压电路) 数字电源电流 DVDD AVDD,VSUP 1 2.6 2.6 正常工作 断电 正常工作 断电 11.0592 1500 0.5 100 0.2 20 5.5 5.5 MHz V µA µA (1) 有效位数 ENBs(Effective Number of Bits) = ln(FSR/RMS Noise)/ln(2)。FSR 为满量 程输入或输出, RMS Noise 为对应的输入或输出噪声有效值。 (2) 无噪声位数(Noise-Free Bits) = ln(FSR/Peak-to-Peak Noise)/ln(2)。FSR 为满量程输 入或输出, Peak-to-Peak Noise 为对应的输入或输出噪声峰-峰值。 (3) 输出稳定时间指从上电、复位、输入通道或增益改变到有效的稳定输出数据时间。 表二 主要电气参数表 AVIA SEMICONDUCTOR 3 HX711 模拟输入 通道 A 模拟差分输入可直接与桥式传感器 的差分输出相接。由于桥式传感器输出的信号 较小,为了充分利用 A/D 转换器的输入动态范 围,该通道的可编程增益较大,为 128 或 64。 这些增益所对应的满量程差分输入电压分别± 20mV 或±40mV。 通道 B 为固定的 32 增益,所对应的满量程 差分输入电压为±80mV。通道 B 应用于包括电 池在内的系统参数检测。 供电电源 数字电源(DVDD)应使用与 MCU 芯片相同的 的数字供电电源。 HX711 芯片内的稳压电路可同时向 A/D 转换 器和外部传感器提供模拟电源。稳压电源的供 电电压(VSUP)可与数字电源(DVDD)相同。稳压 电源的输出电压值(VAVDD )由外部分压电阻 R1 、R2 和芯片的输出参考电压 VBG 决定( 图 1),VAVDD=VBG(R1+R2)/R2 。应选择该输出电压 比稳压电源的输入电压(VSUP)低至少 100mV。 如果不使用芯片内的稳压电路,管脚 VSUP 应连接到 DVDD 或 AVDD 中电压较高的一个管脚 上。管脚 VBG 上不需要外接电容,管脚 VFB 应 接地,管脚 BASE 为无连接。 时钟选择 如果将管脚 XI 接地,HX711 将自动选择使 用内部时钟振荡器,并自动关闭外部时钟输入 和晶振的相关电路。这种情况下,典型输出数 据速率为 10Hz 或 80Hz。 如果需要准确的输出数据速率,可将外部 输入时钟通过一个 20pF 的隔直电容连接到 XI 管脚上,或将晶振连接到 XI 和 XO 管脚上。这 种情况下,芯片内的时钟振荡器电路会自动关 AVIA SEMICONDUCTOR 闭,晶振时钟或外部输入时钟电路被采用。此 时,若晶振频率为 11.0592MHz, 输出数据速率 为准确的 10Hz 或 80Hz。输出数据速率与晶振 频率以上述关系按比例增加或减少。 使用外部输入时钟时,外部时钟信号不一 定需要为方波。可将 MCU 芯片的晶振输出管脚 上的时钟信号通过 20pF 的隔直电容连接到 XI 管脚上,作为外部时钟输入。外部时钟输入信 号的幅值可低至 150mV。 串口通讯 串口通讯线由管脚 PD_SCK 和 DOUT 组成, 用来输出数据,选择输入通道和增益。 当数据输出管脚 DOUT 为高电平时,表明 A/D 转换器还未准备好输出数据,此时串口时 钟输入信号 PD_SCK 应为低电平。当 DOUT 从高 电平变低电平后,PD_SCK 应输入 25 至 27 个不 等的时钟脉冲(图二)。其中第一个时钟脉冲 的 上 升 沿 将 读 出 输 出 24 位 数 据 的 最 高 位 (MSB),直至第 24 个时钟脉冲完成,24 位输 出数据从最高位至最低位逐位输出完成。第 25 至 27 个时钟脉冲用来选择下一次 A/D 转换的 输入通道和增益,参见表三。 PD_SCK 脉冲数 输入通道 增益 25 A 128 26 B 32 27 A 64 表三 输入通道和增益选择 PD_SCK 的输入时钟脉冲数不应少于 25 或多 于 27,否则会造成串口通讯错误。 当 A/D 转换器的输入通道或增益改变时, A/D 转换器需要 4 个数据输出周期才能稳定。 DOUT 在 4 个数据输出周期后才会从高电平变低 电平,输出有效数据。 4 HX711 当前转换周期 下一个转换周期 一个数据输出周期时间 DOUT LSB MSB T2 T3 T1 PD_SCK 1 2 3 PD_SCK 1 2 PD_SCK 1 2 下一次转换:通道A,增益128 4 24 25 3 4 24 25 26 3 4 24 25 26 T4 下一次转换:通道B,增益32 27 下一次转换:通道A,增益64 图二 数据输出,输入通道和增益选择时序图 符号 说明 最小值 典型值 最大值 单位 T1 DOUT 下降沿到 PD_SCK 脉冲上升沿 T2 PD_SCK 脉冲上升沿到 DOUT 数据有效 T3 PD_SCK 正脉冲电平时间 0.2 T4 PD_SCK 负脉冲电平时间 0.2 复位和断电 当芯片上电时,芯片内的上电自动复位电 路会使芯片自动复位。 管脚 PD_SCK 输入用来控制 HX711 的断电。 当 PD_SCK 为低电平时,芯片处于正常工作状 态。 断电控制: PD_SCK µs 0.1 0.1 µs 50 µs µs 进入正常工作状态。芯片从复位或断电状态进 入正常工作状态后,通道 A 和增益 128 会被自 动选择作为第一次 A/D 转换的输入通道和增 益。随后的输入通道和增益选择由 PD_SCK 的 脉冲数决定,参见串口通讯一节。 芯片从复位或断电状态进入正常工作状态 后,A/D 转换器需要 4 个数据输出周期才能稳 定。DOUT 在 4 个数据输出周期后才会从高电平 变低电平,输出有效数据。 应用实例 60µ s 图三 断电 正常工作 断电控制 如果 PD_SCK 从低电平变高电平并保持在高 电平超过 60µs,HX711 即进入断电状态(图 三)。如使用片内稳压电源电路,断电时,外 部传感器和片内 A/D 转换器会被同时断电。当 PD_SCK 重新回到低电平时,芯片会自动复位后 AVIA SEMICONDUCTOR 图四为 HX711 芯片应用于计价秤的一个参 考电路图。该方案使用内部时钟振荡器 (XI=0),10Hz 的输出数据速率(RATE=0)。电 源(2.7~5.5V)直接取用与 MCU 芯片相同的 供电电源。通道 A 与传感器相连,通道 B 通过 片外分压电阻(未在图一中显示)与电池相 连,用于检测电池电压。 5 HX711 LCD LED 1u 充电电路 磁珠 L1 稳压管 0.1u 电池 Q1 4.7k 0.1u 传感器 1k 0.1u VSUP DVDD BASE RATE AVDD XI VFB XO AGND DOUT VBG PD_SCK INNA INPB INPA INNB HX711 1k VDD I/O I/O MCU L1:用于隔离模拟与数字电源; Q1:用于关断传感器和ADC电源。 图四 HX711 计价秤应用参考电路图 参考 PCB 板(单层) 图五为与 HX711 相关部分的 PCB 板参考设计线路图。图五为相应的单层 PCB 板参考设计板图。 图五 AVIA SEMICONDUCTOR 与 HX711 相关部分的 PCB 板参考设计线路图 6 HX711 图六 AVIA SEMICONDUCTOR 与 HX711 相关部分的单层 PCB 板参考设计板图 7 HX711 参考驱动程序(汇编) /*------------------------------------------------------------------在ASM中调用: LCALL ReadAD 可以在C中调用: extern unsigned long ReadAD(void); . . unsigned long data; data=ReadAD(); . . ----------------------------------------------------------------------*/ PUBLIC ReadAD HX711ROM segment code rseg HX711ROM sbit sbit ADDO = P1.5; ADSK = P0.0; /*-------------------------------------------------OUT: R4, R5, R6, R7 R7=>LSB 如果在C中调用,不能修改R4,R5,R6,R7。 ---------------------------------------------------*/ ReadAD: CLR ADSK //使能AD(PD_SCK置低) JB ADDO,$ //判断AD转换是否结束,若未结束则等待否则开始读取 MOV R4,#24 ShiftOut: SETB ADSK //PD_SCK置高(发送脉冲) NOP CLR ADSK //PD_SCK置低 MOV C,ADDO //读取数据(每次一位) XCH A,R7 //移入数据 RLC A XCH A,R7 XCH A,R6 RLC A XCH A,R6 XCH A,R5 RLC A XCH A,R5 DJNZ R4,ShiftOut //判断是否移入24BIT SETB ADSK NOP CLR ADSK RET END AVIA SEMICONDUCTOR 8 HX711 参考驱动程序(C) sbit ADDO = P1^5; sbit ADSK = P0^0; unsigned long ReadCount(void){ unsigned long Count; unsigned char i; ADSK=0; Count=0; while(ADDO); for (i=0;i<24;i++){ ADSK=1; Count=Count<<1; ADSK=0; if(ADDO) Count++; } ADSK=1; Count=Count^0x800000; ADSK=0; return(Count); } AVIA SEMICONDUCTOR 9 HX711 封装尺寸 9.90 6.00 6.20 5.80 10.10 9.70 3.90 4.10 3.70 1.27 0.48 0.39 1.60 1.20 典型值 最大值 最小值 单位:毫米 SOP-16L 封装 注意事项 1. 所 有 数 字 输 入 管 脚 , 包 括 RATE , XI 和 PD_SCK 管脚,芯片内均无内置拉高或拉低 电阻。这些管脚在使用时不应悬空。 2.建议使用通道 A 与传感器相连,作为小信 号输入通道;通道 B 用于系统参数检测, 如电池电压检测。 3.建议使用 PNP 管 S8550 与片内稳压电源电 路配合。也可根据需要使用其他 MOS 或双 极晶体管,但应注意稳压电源的稳定性。 4.无论是采用片内稳压电源或系统上其他电 源,建议传感器和 A/D 转换器使用同一模 拟供电电源。 5.PD_SCK 的输入时钟脉冲数不应少于 25 或 多于 27,否则会造成串口通讯错误。 6.与 DOUT 相连的 MCU 接口应设置为输入口, 并且不接任何拉高或拉低电阻,以减少 MCU 与 ADC 之间的电流交换(干扰)。 AVIA SEMICONDUCTOR 10 HX711 参考电路板 参考驱动程序 常见问题 问: 答: 问: 答: AVIA SEMICONDUCTOR 11