# Trial & Error in Electronic Design 电子系统设计踩坑和填坑纪实 ## 模拟信号链板焊接装调失败案例 by adq, 2022-03-03 ### 过程描述 信号链主要器件 LMP7715, ADA4522. 使用单 5 V 输入, LM27762 转换为 ±2.7 V. 焊接并使用无水乙醇刷洗后上电, 输入指示灯亮, LM27762 Power Good 不亮. 使用焊台蘸取松香处理其 WSON 封装引脚并重复无水乙醇刷洗后 Power Good 点亮. 测量发现输出电压出现较大漂移: +3.5 V 和 -3.0 V, LMP7715 承受超过绝对额定最大值的电压应力而损坏. 过程中没有出现冒烟或异味. 重新计算 LM27762 正负轨道的反馈电阻取值, 未发现错误. 测量反馈电阻值, 在标称的 1% 误差内. 改变反馈电阻取值, 设定输出为 ±2.5 V. 此时两轨道输出绝对值下降, 但仍高于 2.5 V 的设定值. ### 故障分析 LM27762 封装较小, 首次焊接出现焊接浸润不良, 故 Power Good 指示不良. 使用松香烙铁返修时, 加热温度-时间超过芯片耐受, 内部基准特性发生漂移变高, 因而正负两轨道绝对值均增大, 而 Power Good 指示正常. ## STM32CubeMX 工程生成卡在 "Generating Code" 阶段 by adq, 2022-03-04 ### 问题背景 STM32CubeMX - Keil uVision 5 工具链开发, 需要重新配置初始化和片上外设设定等参数时, 在 uVision 中关闭工程而不是退出程序, 则偶发 CubeMX 工程生成卡在 "Generating Code" 阶段. 当重新生成工程时如果关闭 uVision, 则不会出现上述故障情况. ### 问题分析 STM32CubeMX 在重新生成工程时会依照最新的配置情况进行读写. 对 .uvprojx 工程配置文件, 采取重新生成并覆盖的措施; 对 .c / .h 程序文件, 保留用户自定义的文件, 对模板中出现的文件则只保留 User Code 部分. 推测 uVision 关闭工程后, 并未完全释放上述一个或多个文件的句柄, 造成 CubeMX 没有完整的 rwx 权限, 引发错误; 而使用 Java SE 的 CubeMX 程序并没有对这种错误进行处理, 在用户视角看来就是生成进度条卡在 "Generating Code" 阶段.