同为24 V TVS,封装和额定脉冲电流可能不同。Python可以检查比较条件是否一致,并生成参数表,但不应输出“封装越大越好”的自动排名。
准备可追溯数据
parts = [
{"part": "SMA04J24V", "package": "SMA", "vrwm_v": 24.0,
"vbr_min_v": 26.7, "vbr_max_v": 29.5, "vc_max_v": 38.9,
"ipp_a": 10.3, "waveform": "10/1000 us"},
{"part": "SMB06J24V", "package": "SMB", "vrwm_v": 24.0,
"vbr_min_v": 26.7, "vbr_max_v": 29.5, "vc_max_v": 38.9,
"ipp_a": 15.5, "waveform": "10/1000 us"},
{"part": "SMC15J24V", "package": "SMC", "vrwm_v": 24.0,
"vbr_min_v": 26.7, "vbr_max_v": 29.5, "vc_max_v": 38.9,
"ipp_a": 38.6, "waveform": "10/1000 us"},
]
数据来自ASIM公开对照页。每个VC必须和IPP、波形放在同一条记录中。
检查条件并计算额定点乘积
def compare_rows(rows: list[dict]) -> list[dict]:
waveforms = {row["waveform"] for row in rows}
if len(waveforms) != 1:
raise ValueError("波形不同,不能直接比较")
result = []
for row in rows:
item = dict(row)
item["vc_times_ipp_w"] = round(row["vc_max_v"] * row["ipp_a"], 1)
item["decision"] = "BOARD_REVIEW_REQUIRED"
result.append(item)
return result
for row in compare_rows(parts):
print(row)
VC × IPP用于核对额定工作点的数量级,不代表器件在任意波形、任意温度或重复脉冲下都能承受该功率。
为什么不做自动排名
封装更大通常对应更高额定脉冲能力,但实际板级结果还取决于焊盘、走线、回流寄生、后级耐压和安装空间。程序只能显示差异,不能批准替代。
可以增加哪些检查
- VRWM是否覆盖线路最高持续电压;
- VC是否低于后级允许窗口;
- 波形和温度条件是否一致;
- PCB封装和焊盘是否兼容;
- 候选是否完成目标板浪涌与温升验证。
参考资料: