智能变色眼镜无极调光:FPC触控、状态机与RT5733/SX920X电源设计

智能变色眼镜无极调光:FPC触控、状态机与RT5733/SX920X电源设计 简介面向智能变色眼镜硬件研发的这份设计文档聚焦电控逻辑与人机交互操作方案适合电子产品工程师、嵌入式开发者及可穿戴项目团队参考。内容围绕无极调控展开梳理了从某一透过率Ta切换至Tb、由任意透过率返回最透明状态、以及Tc与Tb之间升/降四种情形的电压控制与触控操作流程并讨论了低透过率区切换偏慢时能否先拉至-1.8V再过渡到目标电压的优化思路。文档还给出触控控制器可考虑SEMTECH SX920X、正压LDO评估RT5733、负压DC/DC或LDO待评估以及板端宽度控制在8mm以内、电池已选型、FPC触控贴合壳体实现无极操控等约束。资源包为1个docx文件约139KB属于需求与方案说明型资料便于按场景对照查阅。目前已有76人学习。1. 当滑动触控板时变色眼镜内部到底发生了什么一块贴附在镜腿壳体内侧的 FPC 触摸板被手指从后向前缓慢划过镜片从深色逐渐变浅。看上去只是一个“调亮度”的动作落到硬件上却是三件事同时发生触控 MCU 采样电容变化量并解算出滑动位置主控把位置映射成目标驱动电压电源轨在正压与负压之间重新建立稳定输出。智能变色眼镜的电控逻辑难点不在“能不能变色”而在“任意透过率到任意透过率”这条路径上——它意味着不能只做几档开关式控制而要输出连续可调的双极性电压并且持续把电压维持在电致变色材料当前状态所需的值上。本文讨论的正是这套方案无极调控、四种切换场景的状态机、RT5733 正压 LDO 与 SEMTECH SX920X 触控控制器的搭配以及 8mm 板宽限制下的 PCBA 与 FPC 触控布局。目标读者是正在接手类似项目、需要把电控逻辑落到实物板上的硬件与嵌入式工程师。2. 透过率-电压映射模型与无极调控状态机2.1 电致变色材料的透过率与维持电压关系电致变色层不是线性器件。给定一个目标透过率 T对应的驱动电压 V(T) 通常呈单调但非线性的关系在中间透过率区间较小电压变化就能带来明显的透过率变化而接近最透明或最深色时曲线变平需要更大的电压增量。所以“无极调控”不能简单按百分比线性输出电压必须建立一张标定表。常见做法是让供应商提供档位参考表再在整机上按透过率计实测校正。透过率区间典型驱动电压特性控制注意点最透明端-1.8V维持电压最低长期保持需防过放偏透明区-1.0V ~ -0.3V斜率陡小电压误差即明显色差中间区0V ~ 0.8V线性度较好适合滑动调光主区间偏深色区0.8V ~ 1.6V斜率变缓需提高电压分辨率最深色端1.8V饱和超压无增益伤材料这张表的实际标定流程是固定温度与电池电压逐点给定 V等待稳定后读透过率 T记录 (V, T) 对。由于存在迟滞正向扫描与反向扫描要分别记录控制器里各存一张表。注意标定必须在电池典型工作电压下做而不是稳压源。电池从 4.2V 降到 3.5V 时同档位输出的实际驱动电压会漂映射表的基准要跟着修正。2.2 四种切换场景的控制状态机设计项目正文给出了四类切换本质是两个维度的组合目标比当前更透明还是更深色以及“一步到位”还是“逐级过渡”。把它们归一成一个状态机更省事场景 ATa → Tb滑动触控到某位置。电控上 Va → VbVb 由档位表查得直接跳变。场景 B任意 Tb → 最透明。这是复位动作单独按键或触控点触发电控上直接从当前维持电压 Vb 落到 -1.8V。场景 CTc → Tb 且 Tc Tb变深。Vc → Vd查表跳变。场景 DTc → Tb 且 Tc Tb变浅。Vc → Vd但可能较慢尤其在低透过率段需要考虑中间加速。状态机的关键是区分“复位”和“调光”两个入口。复位永远走 -1.8V 的固定目标调光走查表。用枚举定义会更清晰typedef enum { EC_STATE_IDLE 0, EC_STATE_SLIDE_TO, // 滑动调光走查表 Vd EC_STATE_RESET_CLEAR // 一键复位到最透明 -1.8V } ec_state_t; /* 根据目标透过率和当前状态输出目标驱动电压 */ float ec_resolve_target(ec_state_t st, float T_target, float T_now) { if (st EC_STATE_RESET_CLEAR) { return -1.8f; /* 复位固定目标 */ } if (st EC_STATE_SLIDE_TO) { return lookup_voltage_by_T(T_target); /* 查标定表 */ } return lookup_voltage_by_T(T_now); /* 空闲维持当前 */ }lookup_voltage_by_T内部要做区间插值而不是四舍五入到最近档位否则滑动调光会顿挫。T_now仅用于空闲态维持避免无人操作时输出被误改。2.3 触控位置到目标电压的插值实现滑动触控给出的是 0~1 的归一化位置 p需要映射到透过率区间再映射到电压。中间加一层斜率限制防止手指快速划过时电压跳变过猛def slide_to_voltage(pos, t_min, t_max, v_table): # pos: 0.0~1.0 触控位置t_min/t_max: 可调透过率上下限 T_target t_min (t_max - t_min) * pos v_raw interp(T_target, v_table) # 查表插值 # 斜率限制单次更新电压变化不超过 0.15V避免材料受冲击 return clamp_slew(v_raw, max_delta0.15)interp用分段线性即可段数按标定点密度定一般 16~32 段。clamp_slew是限幅器它让快速滑动时电压平滑跟随代价是响应略慢——这个取舍在低透过率区尤其要测因为那里材料响应本身就慢。3. 电源架构选型RT5733、SX920X 与负压轨的配合3.1 正压轨RT5733 LDO 的定位与外围正压侧目前评估选择 RT5733这是一颗低压差线性稳压器用来从电池电压生成稳定的正驱动轨。选它的理由是输出噪声低、外围只有输入输出电容和少量电阻适合 8mm 板宽这种面积敏感的场景。典型接法# RT5733 典型外围示意具体以数据手册为准 VIN -------- CIN 1uF ---- GND | RT5733 VIN RT5733 VOUT ---- COUT 1uF ---- GND RT5733 EN ---- MCU GPIO使能控制 RT5733 GND ---- GNDCIN与COUT建议用 X5R 或 X7R 陶瓷电容靠近引脚放置。EN拉低可关断正压轨在待机时省电如果 MCU 需要保持触控唤醒则要确认 EN 的默认电平不会被误拉低。提示LDO 的压差决定了电池最低可用电压。若正压轨要稳到 1.8V而 LDO 压差约 200mV则电池不能低于 2.0V实际系统要在 3.3V 附近设低电告警。3.2 触控控制器SEMTECH SX920X 的接口安排带触控 MCU 的方案中SEMTECH SX920X 是可考虑的一颗。它把电容检测和主机接口集成在一起适合做滑动条加按键的组合。接线要点是感应通道接 FPC 上的感应电极I2C 或 SPI 接主控中断脚接 MCU 的唤醒 GPIO。配置上需要设置感应通道使能、基线跟踪速度滑动条分辨率与方向去抖与长按判定低功耗扫描周期待机时可以拉长扫描周期直接决定功耗和响应。待机 50ms 扫一次够用手指接近时可切到 10ms。SX920X 的基线跟踪要在壳体装配完成后重新校准否则 FPC 贴合应力会让基线偏掉。3.3 负压轨-1.8V 的实现路径对比最透明态需要 -1.8V这是整套电源里最麻烦的一环。负压 DC/DC 和负压 LDO 各有取舍方案效率噪声面积适用性负压 DC/DC电荷泵/电感式较高较大需滤波电感式占面积电池供电、功耗敏感负压 LDO较低小小对噪声敏感、电流小从正压反相生成中中中已有正压轨时省器件如果 -1.8V 只需要维持漏电流级别的小电流负压 LDO 从系统负轨取电是可行的但如果复位动作要求快速拉低瞬时电流会大DC/DC 更稳。项目里这一轨尚未定案建议先用可调负压模块在样机上做切换时间实测再决定拓扑。4. 8mm 板宽内的 FPC 触控与 PCBA 布局4.1 FPC 触控贴合壳体后的基线漂移触控用 FPC 贴附到壳体上面做无极操控这是把感应电极做在柔性板上再通过背胶与镜腿壳体结合。这个结构最大的问题是贴合压力、壳体厚度、温湿度都会改变感应电极的对地电容导致出厂基线在装配后失效。解决流程是在产线加一步“装壳后校准”让设备进入校准模式记录空载基线写入 MCU 的 NVM。固件里还要开基线慢跟踪但跟踪速度要慢于真实手指动作否则手指停留会被误判为环境变化而被跟掉。/* 装壳后校准连续采样 N 次求均值作为基线 */ #define CAL_SAMPLES 64 uint16_t cal_baseline(int ch) { uint32_t sum 0; for (int i 0; i CAL_SAMPLES; i) { sum raw_read(ch); delay_ms(5); } return (uint16_t)(sum / CAL_SAMPLES); }CAL_SAMPLES越大基线越稳但校准耗时变长。delay_ms(5)之间要确保没有手指靠近否则会把手指当成基线。4.2 8mm 板宽下的电源与触控共布板端宽度要控制在 8mm 以内意味着电源和触控必须分区布置。常见做法是电源区放在电池连接端LDO 与负压电路集中减少大电流回路面积触控区靠近 FPC 引出端感应走线尽量短两区之间用地线隔开触控走线不跨越电源开关节点负压 DC/DC 的电感与开关节点远离感应电极如果空间实在紧可以把负压电路放到另一块小板用排针或 FPC 连接主板上只留正压与触控。代价是多了连接点需要评估接触可靠性。4.3 从触控事件到电压输出的固件主循环主循环要做的事很固定扫触控、判手势、解目标、调电源、维持。伪代码如下void ec_main_loop(void) { ec_event_t ev touch_scan(); /* 扫描触控返回事件 */ if (ev.type EV_SLIDE) { g_target_V slide_to_voltage(ev.pos, ...); g_state EC_STATE_SLIDE_TO; } else if (ev.type EV_RESET_KEY) { g_target_V -1.8f; g_state EC_STATE_RESET_CLEAR; } apply_voltage(g_target_V); /* 驱动电源轨到目标值 */ power_hold(g_state); /* 按状态决定维持/关断 */ }apply_voltage内部要读回实际输出电压做闭环而不是只设 DAC 值。电致变色负载会随状态变化开环设定会在电池下降时跑偏。power_hold决定空闲时是否关掉某条轨这是功耗与时延之间的平衡点关得越彻底越省电但下次切换要重新建立电压响应变慢。5. 透过率阶跃响应优化与现场调试技巧5.1 低透过率区切换慢的定位方法项目正文特别提到从 Tc 到 Tb 且 Tc Tb变浅时可能较慢尤其在低透过率段。要定位是电控慢还是材料慢最直接的办法是在电源输出端和透过率计上同时抓波形。用示波器看电压建立时间用透过率计看光学响应时间两者一对比就知道瓶颈在哪。若电压建立慢查电源带载能力、限流设置、输出电容若电压到位但透过率不动是材料本征响应电控无能为力只能改切换策略5.2 用 -1.8V 短脉冲加速切换针对变浅慢的问题一个可行思路是先给一个短时间的 -1.8V 过冲比如 0.5s再回到目标 Vd。它的原理是利用更大的电势差加速离子迁移再撤回目标电压避免过冲。实现上是在目标电压前插一段脉冲void ec_fast_clear(float v_target, uint32_t pulse_ms) { apply_voltage(-1.8f); /* 先拉到最透明电压 */ delay_ms(pulse_ms); /* 持续 0.5s 左右需实测 */ apply_voltage(v_target); /* 回到目标维持电压 */ }pulse_ms不能照抄 0.5s要按材料和温度实测。温度低时离子迁移更慢脉冲可能要给到 0.8s温度高时过冲会伤材料要缩短甚至取消。这段逻辑建议做成可配置参数存在 NVM 里按温度档调用。5.3 串口日志反推切换时序调这套逻辑时最有用的是把每次切换的“事件时间、目标电压、实际电压、透过率读数”打成一行日志事后反推。格式可以很简单# 示例日志行 T10234ms EVSLIDE POS0.42 TGT-0.35V ACT-0.34V TR38.2% T10890ms EVRESET TGT-1.80V ACT-1.79V TR72.5%看几组日志就能判断电压是否跟上、透过率是否有迟滞、复位是否比滑动快。把ACT和TGT的差持续大于 50mV 的时段标出来就是电源需要加力的地方。这套日志不需要复杂工具一个串口加一分钟的采集脚本就够但它能省掉大量“盲调”的时间。本文还有配套的精品资源点击获取