# PCB
CURSOR + skidl +KICAD

在这里插入图片描述
在这里插入图片描述

import os

print("开始执行开关电源电路设计程序...")

# 设置 KiCad 9.0 符号库路径(在导入 SKiDL 之前设置环境变量)
os.environ['KICAD_SYMBOL_DIR'] = r"D:\Program Files\KiCad\9.0\share\kicad\symbols"
os.environ['KICAD6_SYMBOL_DIR![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/045ba3d0ebe04e8aa1a39d135449741b.png)
'] = r"D:\Program Files\KiCad\9.0\share\kicad\symbols"
os.environ['KICAD7_SYMBOL_DIR'] = r"D:\Program Files\KiCad\9.0\share\kicad\symbols"
os.environ['KICAD8_SYMBOL_DIR'] = r"D:\Program Files\KiCad\9.0\share\kicad\symbols"

from skidl import *

# 添加搜索路径到 SKiDL
if KICAD not in lib_search_paths:
    lib_search_paths[KICAD] = []
lib_search_paths[KICAD].append(r"D:\Program Files\KiCad\9.0\share\kicad\symbols")

# 输入整流滤波电路
print("创建输入整流滤波电路...")
rectifier = Part('Device', 'D_Bridge_+-AA', value='1N4001')
input_cap = Part('Device', 'C', value='100uF')
input_net = Net('INPUT_220VAC')
gnd_net = Net('GND')

# 高频变换电路
print("创建高频变换电路...")
transformer = Part('Device', 'Transformer_1P_1S', value='HighFreq')
mosfet = Part('Device', 'Q_NJFET_GDS', value='IRFZ44N')
gate_driver = Part('Device', 'Q_NPN', value='UC3842')  # 使用 NPN 三极管符号
gate_net = Net('GATE')

# 连接 MOSFET
mosfet['G'] += gate_net
mosfet['D'] += transformer['1']
mosfet['S'] += gnd_net

# 输出整流滤波电路
print("创建输出整流滤波电路...")
output_cap = Part('Device', 'C', value='1000uF')
output_diode = Part('Device', 'D', value='1N4148')
output_net = Net('OUTPUT_12V')

# 连接输出整流电路
output_diode['A'] += transformer['2']
output_diode['K'] += output_net
output_cap['1'] += output_net
output_cap['2'] += gnd_net

# 控制电路
print("创建控制电路...")
feedback_resistor = Part('Device', 'R', value='10k')
feedback_net = Net('FEEDBACK')

# 连接反馈电路
feedback_resistor['1'] += output_net
feedback_resistor['2'] += feedback_net

# 连接门驱动器(NPN 三极管)
gate_driver['B'] += feedback_net  # 基极作为输入
gate_driver['C'] += gate_net      # 集电极作为输出
gate_driver['E'] += gnd_net       # 发射极接地

# 输入连接
print("连接输入电路...")
input_net += rectifier['1'], rectifier['3']
gnd_net += rectifier['2'], rectifier['4']
input_cap['1'] += input_net
input_cap['2'] += gnd_net

# 生成网表文件
print("\n正在生成网表文件...")
try:
    # SKiDL 生成网表的标准方法
    generate_netlist()
    print("网表文件生成完成!")
    print("生成的文件:")
    print("  - *.net (网表文件)")
    print("  - *.erc (电气规则检查报告)")
except Exception as e:
    print(f"生成网表时出错: {e}")

# 执行 ERC(电气规则检查)
print("\n执行电气规则检查...")
try:
    ERC()
    print("电气规则检查完成。")
except Exception as e:
    print(f"ERC检查出错: {e}")

print("\n程序执行完成!") 
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐