简介:本资源是一套基于瑞萨RL78G11单片机开发的水质测试笔完整软硬件技术资料包,面向嵌入式工程师、电子设计爱好者及高校实践教学人员,解决水质TDS参数快速检测设备的原理验证、PCB实现与固件开发等核心问题。资源共89个文件,涵盖ALTIUM格式原理图(.SchDoc)、PCB设计文件(.PcbDoc)、BOM清单、C/ASM源码(含16个.h头文件与14个.c源文件)、E2studio/CS+工程配置及5份PDF技术文档(含用户手册、产品简介、原理图与PCB PDF版等),压缩包仅2.08MB,轻量易用。已有173人学习下载,资料结构完整、模块清晰——从硬件设计(支持LCD显示、温度单位切换、读数锁定、5分钟自动关机)到软件实现(测量范围0~9999ppm),均体现RL78G11低功耗与高集成特性,可直接用于小家电类项目参考或课程实验复现。
1. 一支能放进裤兜的水质测试笔,为什么选 RL78G11 而不是 STM32 或 ESP32?
你手边那支带 LCD 屏、两节 AAA 电池供电、插进水里 3 秒出 TDS/EC/pH 值的水质测试笔,背后很可能是一颗 RL78G11 单片机——不是因为“便宜”,而是它在超低功耗(HALT 模式下仅 0.27μA)、高精度模拟前端(内置 12-bit ADC + PGA + 参考电压源)、小封装(20-pin SSOP)和免外部晶振启动(±1% 内部高频振荡器)这四点上,刚好卡在便携式电化学传感器设备的黄金交点。它不跑 WiFi、不接 USB Host、不需要 Linux 支持,却要稳定驱动 pH 复合电极的 mV 级信号调理电路、控制恒流源激励 TDS 电导池、同步刷新段码 LCD 并维持 18 个月电池寿命。这类设计对 MCU 的模拟性能、功耗控制粒度、外设协同能力要求远高于通用主控;而 RL78G11 的 SNOOZE 模式可让 ADC 在休眠中自主采样并唤醒 CPU,其片上比较器还能直接触发 GPIO 翻转驱动蜂鸣器报警——这些能力在 ALITUM 设计的原理图里不是“可选项”,而是决定能否把整机 PCB 控制在 35mm × 18mm 内的关键约束。如果你正从零开始做一款消费级水质笔,或需要复用现有硬件快速验证传感器算法,这份包含 ALITUM 原理图、PCB、IAR 编译通过的软件源码和技术文档的完整资料包,就是绕过芯片选型试错、PCB 反复打样、ADC 校准黑盒的最短路径。
2. ALITUM 中 RL78G11 最小系统与传感器接口的原理图设计要点
2.1 RL78G11 核心供电与时钟配置的隐性陷阱
RL78G11 的 VDD 范围为 1.6V–5.5V,但实际设计中必须区分数字电源(VDD)与模拟电源(AVDD)。ALITUM 原理图中采用双 LDO 方案:TPS7A05(1.8V)专供 AVDD,确保 ADC 参考电压稳定性;而主 VDD 由 AP2112(3.3V)提供。关键细节在于 AVDD 与 VDD 之间必须跨接 10μF 钽电容 + 100nF 陶瓷电容,且该电容焊盘需紧贴 RL78G11 的 AVDD 引脚(Pin 19),走线长度 ≤2mm。若共用同一 LDO 或电容远离芯片,实测 ADC 有效位数(ENOB)会从 10.2bit 降至 8.7bit——这直接导致 pH 值显示跳变 0.1 单位以上。
提示:RL78G11 的内部高频振荡器(HOC)出厂校准精度为 ±1%,但温度漂移达 ±0.5%/°C。原理图中未接入外部晶振(如 4MHz),因此软件必须启用 HOC 自校准功能。在
main.c初始化段调用R_CGC_HOCO_Start()后,需立即执行R_CGC_HOCO_Calibrate(),否则 UART 通信波特率误差超过 3%,导致蓝牙模块 AT 指令响应失败。
2.2 pH 电极与 TDS 电导池的信号链设计逻辑
水质笔需同时采集 pH(mV 级直流信号)与 TDS(AC 激励下的阻抗变化),ALITUM 原理图将二者复用 RL78G11 的同一组 ADC 通道(AN0–AN3),但通过模拟开关(TS5A3157)分时切换:
// ALITUM 原理图对应软件控制逻辑(IAR C) void SelectSensorChannel(uint8_t ch) { switch(ch) { case PH_CHANNEL: P1_bit.no0 = 0; // TS5A3157 SEL=0 → 连接pH电极 P1_bit.no1 = 1; // 启用pH专用PGA增益x12 break; case TDS_CHANNEL: P1_bit.no0 = 1; // SEL=1 → 切换至TDS电导池 P1_bit.no1 = 0; // PGA增益x1,避免饱和 break; } }此处 P1.0/P1.1 是 RL78G11 的 GPIO,直接驱动模拟开关控制端。原理图中 TDS 激励源采用 RL78G11 的定时器输出 PWM(P15/TI0),经 RC 滤波生成 1kHz 正弦波,再通过运放(MCP6002)缓冲后注入电导池——这种片上资源复用方案省去了独立信号发生器芯片,但要求 PCB 布局时 PWM 走线必须远离 AN0–AN3 模拟输入网络,否则串扰使 TDS 测量值偏差 >15%。
2.3 段码 LCD 驱动与低功耗协同策略
ALITUM 原理图选用 HT1621B 段码 LCD 控制器,通过 4 线串行接口(WR, DATA, CS, CLK)连接 RL78G11 的 P3 端口。关键设计在于:HT1621B 的 VDD 与 RL78G11 的 VDD 共用,但其背光 LED 由 P2.7 独立驱动(限流电阻 100Ω)。软件中每完成一次水质测量,调用LCD_Update()刷新屏幕后,立即执行:
R_PMU_SnoozeEnable(); // 使能SNOOZE模式 R_ADC_Start(ADC_CH_0); // 启动ADC采样(自动唤醒) R_PMU_Snooze(); // 进入SNOOZE,CPU停机,ADC继续工作此时 RL78G11 功耗降至 1.8μA,而 HT1621B 保持显示(其内部 RAM 不丢失)。ALITUM PCB 将 HT1621B 的 OSC 引脚(Pin 16)就近连接 220kΩ 电阻至 VDD,而非使用外部晶振——这符合 RL78G11 数据手册推荐的低功耗 LCD 驱动方案,实测比外接 32.768kHz 晶振降低待机电流 30%。
| 元件 | 型号 | 关键参数 | ALITUM 原理图设计依据 |
|---|---|---|---|
| MCU | RL78G11/R5F10PLJ | 20-pin SSOP, 128KB Flash | 封装尺寸匹配微型 PCB,无需散热焊盘 |
| ADC 参考 | 内置 1.45V | 温漂 10ppm/°C | 省去外部基准芯片,减少 BOM 成本 |
| pH 电极接口 | BNC + 屏蔽双绞线 | 输入阻抗 >10¹²Ω | 原理图中 P1.2/P1.3 引脚添加 10pF 旁路电容抑制 RF 干扰 |
| TDS 电极 | 不锈钢双环电极 | 极距 10mm | 激励电压峰值 0.5Vpp,避免极化 |
3. ALITUM PCB 布局中 RL78G11 的三层板叠与走线规则
3.1 三层板层叠结构与电源分割策略
ALITUM PCB 采用 3 层结构(Top / GND / Bottom),而非更常见的 4 层,原因在于成本敏感型消费电子对厚度有严苛限制(整机厚度 ≤12mm)。其层叠定义如下:
- Top 层:信号走线 + 元件面,含 RL78G11、传感器接口、LCD 接口
- Layer 2(GND):完整铺铜,作为参考平面,但刻意分割为 Analog_GND 与 Digital_GND 两区,仅在 RL78G11 的 AVSS(Pin 20)与 VSS(Pin 1)之间通过 0Ω 电阻单点连接
- Bottom 层:电源走线(VDD/AVDD)+ 少量低速信号
注意:分割 GND 的目的是阻断数字开关噪声耦合至模拟地。实测中若 GND 不分割,pH 读数在电机启动瞬间跳变 0.3 单位;而单点连接处必须使用 0Ω 电阻(非覆铜桥),便于后期调试时断开验证噪声路径。
3.2 模拟信号走线的 5 条硬性规则
ALITUM PCB 对 pH 和 TDS 信号路径执行以下布线约束(在 Design Rule Check 中预设):
- AN0–AN3 走线宽度 ≥12mil(0.305mm),以降低热噪声影响
- 所有模拟走线距数字信号线 ≥30mil(0.762mm),包括 UART TX/RX 和 PWM 输出线
- pH 电极输入网络(P1.2/P1.3)全程包地:Top 层走线两侧各放置 20mil 宽 GND 泪滴,间距 10mil
- TDS 激励回路(PWM→运放→电极)必须成对走线:正负端差分布线,长度差 ≤5mil,避免共模噪声转化为差模干扰
- AVDD 走线独立于 VDD:从 LDO 输出到 RL78G11 的 AVDD 引脚,全程宽度 20mil,中途不经过任何数字器件焊盘
这些规则在 ALITUM 的 PCB Rules Editor 中具体设置为:
Clearance: Analog_Net vs Digital_Net = 30milWidth: Analog_Net = 12mil, Power_Net = 20milLength: TDS_Pair_Length_Match = 5mil
违反任一规则,DRC 检查即报错,强制修正后方可输出 Gerber。
3.3 传感器接口的机械与电气协同设计
水质笔的探头通过 3.5mm 音频接口接入主板,ALITUM 原理图中该接口定义为:
- Tip:pH 电极正极(高阻抗)
- Ring:TDS 电极激励端(AC 信号)
- Sleeve:公共地(AGND)
PCB 上此接口的焊盘布局严格遵循嘉立创 EDA 推荐的音频插座封装(SJ1-3535NG),其 Sleeve 焊盘面积扩大至 3mm × 3mm,并通过 4 个过孔连接至 Layer 2 的 Analog_GND 区域——此举将探头引入的共模噪声衰减 22dB。更关键的是,ALITUM 在接口附近放置了 TVS 二极管(P6KE6.8CA),阳极接 Sleeve,阴极接 Tip/Ring,钳位电压 6.8V,防止用户误将探头插入 220V 插座时烧毁 RL78G11 的 ADC 输入端口。
4. IAR 编译环境下 RL78G11 软件源码的关键模块解析
4.1 ADC 校准与温度补偿的嵌入式实现
ALITUM 资料包中的软件源码基于 IAR EWRL78 v3.30 编译,核心校准逻辑位于adc_calibrate.c。RL78G11 的 ADC 无自动校准寄存器,需手动执行两点校准:
// 执行前需将pH电极浸入标准缓冲液(pH4.01 & pH7.00) void ADC_Calibrate_PH(void) { uint16_t raw_401, raw_700; // 采集pH4.01缓冲液数据(平均128次) raw_401 = ADC_AverageRead(ADC_CH_0, 128); // 采集pH7.00缓冲液数据 raw_700 = ADC_AverageRead(ADC_CH_0, 128); // 计算斜率与截距(单位:mV/LSB) g_ph_slope = (7.00 - 4.01) * 1000.0f / (raw_700 - raw_401); g_ph_offset = 4.01 - (raw_401 * g_ph_slope / 1000.0f); }此处ADC_AverageRead()内部启用 RL78G11 的硬件平均功能(ADCR.ADS = 0x03,4 次平均),比软件平均降低 CPU 占用率 65%。而温度补偿则依赖 NTC 热敏电阻(10kΩ@25°C)接在 AN4 通道,查表法转换温度值后动态修正 pH 斜率——ALITUM 文档《水质算法白皮书》第 3.2 节明确指出:25°C 时斜率理论值为 59.16mV/pH,但实测中因电极老化需每 3 个月重新校准。
4.2 低功耗状态机与唤醒源管理
软件采用三级功耗状态机:
- ACTIVE:全速运行,ADC 连续采样,LCD 实时刷新
- IDLE:关闭 LCD 背光,ADC 降频至 10Hz,UART 进入低功耗接收模式
- DEEP_SLEEP:CPU 停机,仅保留 RTC 和 ADC 唤醒,功耗 0.27μA
唤醒源配置代码体现 RL78G11 独特机制:
// 设置按键(P2.0)为唤醒源 P2.PDR.BIT.B0 = 1; // 设置为输入 P2.PCR.BIT.B0 = 1; // 启用上拉 RIIC0.IICRSR.BIT.SCL = 0; // 禁用IIC中断干扰 R_ICU_WUPCR0.WUPCR0 = 0x01; // 使能P2.0唤醒 R_ICU_WUPSR0.WUPSR0 = 0x01; // 清除唤醒标志 R_PMU_DeepSleep(); // 进入DEEP_SLEEP注意WUPCR0寄存器需在进入睡眠前写入,且WUPSR0必须清零,否则第二次唤醒失效——这是 RL78G11 的已知行为,ALITUM 技术文档《常见问题排查指南》第 4.7 条专门强调此点。
4.3 段码 LCD 字模与动态刷新优化
HT1621B 的显示 RAM 映射为 32×4 bits,ALITUM 源码中定义字模数组时采用紧凑存储:
const uint8_t digit_pattern[10][4] = { {0x3F, 0x00, 0x00, 0x00}, // '0':bit0~bit5置1 {0x06, 0x00, 0x00, 0x00}, // '1':bit1&bit2置1 // ... 其余数字 };每次刷新屏幕时,LCD_Update()函数只写入变化的 digit 字节,而非全屏重载。实测表明,该优化使 LCD 刷新耗时从 12ms 降至 3.8ms,为 ADC 采样腾出更多时间窗口。此外,ALITUM 在lcd_driver.c中禁用 HT1621B 的内部振荡器(SYS_EN=0),改用 RL78G11 的子系统时钟(Sub-Clock)作为 LCD 帧频源——这确保即使主时钟停止,LCD 仍能维持稳定显示。
5. 基于 ALITUM 资料包的快速验证与参数调优技巧
5.1 三步法验证 RL78G11 最小系统是否起振
拿到 ALITUM 原理图与 PCB 文件后,无需焊接全部元件,即可用万用表快速确认核心功能:
- 测 VDD/AVDD 电压:红表笔接 RL78G11 Pin 1(VSS),黑表笔依次测 Pin 18(VDD)、Pin 19(AVDD),应分别为 3.3V 和 1.8V,压差 >1.5V 表明 LDO 正常
- 测 HOC 输出频率:将示波器探头接地夹接 Pin 1(VSS),信号钩接 Pin 15(P15/TI0),此时 RL78G11 应输出 4MHz 方波(HOC 默认频率),若无波形,检查
R_CGC_HOCO_Start()是否被注释 - 测 ADC 基准电压:黑表笔接 Pin 20(AVSS),红表笔测 Pin 19(AVDD),读数应为 1.45V ±0.02V;若偏差大,说明内部基准未启用,需确认
ADCR.ADEN = 1且ADCR.ADMD = 0x00(选择内部基准)
提示:若第 3 步测得 AVDD 为 1.8V(LDO 输出值),说明
ADCR.ADVREFM位未置 1,软件中必须添加ADCR.ADVREFM = 1;强制使用内部基准,否则 ADC 结果完全失准。
5.2 pH 电极零点与斜率校准的实操参数表
ALITUM 技术文档提供标准校准流程,但实际操作中需根据电极状态调整参数:
| 校准步骤 | 理想条件 | 实际调整建议 | 参数影响 |
|---|---|---|---|
| 零点校准(pH4.01) | 电极浸入缓冲液 60s | 若响应慢,延长至 120s 并启用软件滤波(ADC_Filter_Enable(ADC_CH_0, FILTER_MEDIAN)) | 避免因电极污染导致零点漂移 |
| 斜率校准(pH7.00) | 温度 25°C | 实测温度每偏离 1°C,斜率补偿系数g_ph_slope *= (1 + 0.0019*(T-25)) | 温度补偿误差 <0.02pH |
| 现场校准(自来水) | 电导率 200–800μS/cm | 若 TDS 测值偏低,增大TDS_CAL_FACTOR(默认 0.85)至 0.92 | 适配不同地区水质离子强度 |
这些参数均定义在config.h中,修改后需重新编译下载,无需改硬件。
5.3 PCB DRC 检查必查的 4 类 RL78G11 相关违规
ALITUM PCB 设计完成后,运行 DRC 前必须手动勾选以下规则(默认不启用):
| 规则类别 | 检查项 | 阈值 | 违规后果 |
|---|---|---|---|
| Electrical | Clearance (Analog_Net to Digital_Net) | ≥30mil | pH 读数受 UART 干扰跳变 |
| Routing | Width (AVDD) | ≥20mil | LDO 输出纹波增大,ADC 噪声上升 |
| Placement | Distance (RL78G11 AVDD pin to decoupling cap) | ≤2mm | 高频噪声耦合,ENOB 下降 |
| Manufacturing | Hole Size (sensor interface via) | ≥0.3mm | 嘉立创工厂拒收,因无法保证探头插拔耐久性 |
执行 DRC 后,若报告Clearance违规,应优先移动 UART 走线而非缩小间距——ALITUM 原理图中 UART TX 已预留 35mil 间距,这是经过实测验证的安全裕量。
使用 ALITUM 打开WaterTestPen.PcbDoc,点击Tools → Design Rule Check,在Rules To Check树中展开Electrical,勾选Clearance并双击进入设置,将Minimum Clearance改为30mil,然后运行检查。所有违规项在 PCB 界面以绿色高亮显示,鼠标悬停即可查看具体网络名与距离数值——这是复现 ALITUM 设计可靠性的第一道技术门槛。
本文还有配套的精品资源,点击获取