体脂秤的业务模型极其单一:上电→称重→测阻抗→算成分→上传手机→关机。在整个链路里,最吃资源的环节是“测阻抗”——需要 20 bit 左右有效分辨率的 Σ-Δ ADC 和若干 PGA 级。辉芒微 8 位 MCU 的 A/D 系列内部正好带 24 bit Σ-Δ ADC、PGA×128、基准 2.4 V,硬件上一步到位;运算量又小到 8 位核即可应付,因此可以把 BOM 压到极限,而 32 位 MCU 反而“大马拉小车”。
? 四个 50 kg 半桥应变片 → 合成 2 路全桥输出,差分信号直接进 MCU 的 ADC 差分通道。
? 四电极 BIA:激励电极(EXT+/EXT-) 与采样电极(SEN+/SEN-) 通过继电器 HRS1H 切换,兼顾测阻抗与称重两种模式。
辉芒微 8 位 A/D 系列:
? 24 bit Σ-Δ ADC,内置低温漂 PGA;
? 48 kByte Flash / 2 kByte SRAM / 1 kByte Data EEPROM,足够存储 10 条离线记录;
? 12-bit 电阻分压型 LCD Driver,可直接推 4×18 段码屏,无需外置 HT1621;
? UART 与 SPI 各 1 路,用于连接蓝牙??椋?br/> ? 内置 1.2 V 高精度参考,称重模式下温漂 20 ppm/°C 以内。
? 3 V 纽扣电池 CR2032 → 低功耗 LDO → MCU VDD;
? 称重时打开 LDO,完成后进入 STOP2(0.6 μA);
? 蓝牙模块单独一颗 DCDC,由 MCU GPIO 控制 EN 脚,实现“用完即关”。
? LCD 段码屏:体重 5 位 + 体脂 4 位 + 电池/蓝牙图标;
? 三按键:UNIT、PAIR、RESET;
? 蜂鸣器:50 mA 无源压电片,PWM 4 kHz 鸣叫 100 ms。
全桥输出 0.5 mV/V → PGA=128 → ADC 输入 ±39 mV。24 bit ADC 有效位≈20 bit,系统分辨率 50 kg/2^20 ≈ 0.05 g,留足过采样余量。
50 kHz 正弦波由 MCU 的 12-bit DAC 输出,经 1 kΩ 限流后注入人体。采样电阻 100 Ω 与人体串联,测两端电压差,再次走 ADC。
为抑制 50 Hz 工频,ADC 采样频率设为 50 kHz ÷ 256 ≈ 195 Hz,数字陷波一次完成。
? 重量:两点标定(0 kg + 20 kg)。
? 阻抗:三点标定(0 Ω、500 Ω、1 kΩ 精密电阻)。
标定系数放 EEPROM,支持 OTA 更新。
? 电池电压 < 2.4 V 报“LO”;
? 查 EEPROM 版本号,若升级未完成则继续等待蓝牙推送。
? 打开 LDO → 延时 40 ms → 连续采样 500 ms → 取平均 → 计算重量 → 关闭 LDO。
? 若重量 > 3 kg 且稳定,则自动进入“阻抗模式”。
? 切换继电器 → 输出 50 kHz 正弦 → 采样 1 s → 计算阻抗 Z、相位角 θ → 用经验公式算体脂率。
? 结果合并后写入 EEPROM,并通过 UART 发给 BLE 模块广播。
? 空闲 10 s 无操作 → 进入 STOP2,GPIO 保持 LCD 显示;
? BLE ??橛墒只朔⑵鹆雍?,MCU 每 2 s 唤醒一次推送历史记录。
? MCU Bootloader 通过 UART 接收 64 Byte 每包,双区备份,掉电续传;
? BLE 模块自带 OTA,不占用 MCU Flash。
? 体重误差:±50 g(10 kg~150 kg)
? 体脂误差:±1 %(与 InBody 770 对标,N=30)
? 待机电流:0.8 μA(LCD 关)、2.5 μA(LCD 开)
? 单颗 CR2032 可连续用 9 个月(每天称重 3 次,蓝牙上传 3 次)。
把 BLE 换成 433 M 超再生模块,直接对接天猫精灵,整机成本还能再降 1 元。
利用 MCU 的 Touch 系列,把三个机械按键改成电容触控,整机一体玻璃面板。
在 Flash 末尾 2 kB 预留“小程序”接口,未来可做孕妇模式、运动员模式等增值算法。
辉芒微 8 位 MCU 用“够用且刚好”的资源,把体脂秤从传感器到云端的最短路径跑通,既压缩了 BOM,又保留了后续算法的 OTA 空间。