202 строки
5,8 КиБ
Python
202 строки
5,8 КиБ
Python
import skidl
|
|
from skidl import *
|
|
|
|
def init():
|
|
_ = skidl.\
|
|
X
|
|
def main():
|
|
vin = Net("3.3в")
|
|
gnd = Net("GND")
|
|
xl4016_fb = Net("XL4016 fb pin")
|
|
vkl = Net("Вкл")
|
|
vfb = Net("Обратная связь")
|
|
mk_onoff = Net("МК OnOff")
|
|
Nets = Interface(vin=vin,gnd=gnd,xl4016_fb=xl4016_fb,vkl=vkl,vfb=vfb,mk_onoff=mk_onoff)
|
|
n = Nets
|
|
ESP32 = Part("RF_Module","ESP32-WROOM-32",TEMPLATE,footprint="RF_Module:ESP32-WROOM-32")
|
|
Клема = Part("Connector_Generic","Conn_01x01",TEMPLATE,footprint="Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical")
|
|
tr_fet = Part("Transistor_FET","BSS138",TEMPLATE,footprint="SOT-23_Handsoldering")
|
|
r = Part("Device","R",TEMPLATE,footprint="Resistor_SMD:R_0805_2012Metric")
|
|
r_jmp = Part("Device","R",TEMPLATE,footprint="Resistor_SMD:R_1206_3216Metric")
|
|
r_jmp_big = Part("Device","R",TEMPLATE,footprint="Resistor_SMD:R_1812_4532Metric")
|
|
diode = Part("Diode","1N4001",TEMPLATE,footprint="Diode_SMD:D_0805_2012Metric")
|
|
stabilitron = Part("Device","D_Zener",TEMPLATE,footprint="Diode_SMD:D_0805_2012Metric")
|
|
condensator = Part("Device","C",TEMPLATE,footprint="Capacitor_SMD:C_0805_2012Metric")
|
|
conn2 = Part("Connector_Generic","Conn_01x02",TEMPLATE,footprint="Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical")
|
|
conn3 = Part("Connector_Generic","Conn_01x03",TEMPLATE,footprint="Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical")
|
|
conn3_big = Part("Connector_Generic","Conn_01x03",TEMPLATE,footprint="Package_TO_SOT_THT:TO-3P-3_Vertical")
|
|
conn4 = Part("Connector_Generic","Conn_01x04",TEMPLATE,footprint="Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical")
|
|
Parts = Interface(ESP32=ESP32,Клема=Клема,tr_fet=tr_fet,r=r,r_jmp=r_jmp,r_jmp_big=r_jmp_big,condensator=condensator,diode=diode,stabilitron=stabilitron,conn2=conn2,conn3=conn3,conn3_big=conn3_big,conn4=conn4)
|
|
p = Parts
|
|
dcdc_3_3_v(Nets,Parts)
|
|
n.\
|
|
gnd & p.\
|
|
r_jmp_big(ref="main_gnd",value="0") & n.\
|
|
gnd
|
|
esp32 = NewESP32(Nets,Parts)
|
|
xl4016_driver(Nets,Parts,mk_vkl_net=esp32["IO18"],mk_yark_net=esp32["IO19"])
|
|
z1 = NewPinZaschita(name="z1",n=n,p=p)
|
|
dvizh_verh = NewDvizh(name="dvizh_verh",n=n,p=p)
|
|
dvizh_verh.\
|
|
out & z1.\
|
|
i
|
|
z1.\
|
|
o & esp32["IO4"]
|
|
z1.\
|
|
g & n.\
|
|
gnd
|
|
z2 = NewPinZaschita(name="z2",n=n,p=p)
|
|
dvizh_niz = NewDvizh(name="dvizh_niz",n=n,p=p)
|
|
dvizh_niz.\
|
|
out & z2.\
|
|
i
|
|
z2.\
|
|
o & esp32["IO16"]
|
|
z2.\
|
|
g & n.\
|
|
gnd
|
|
generate_netlist()
|
|
@subcircuit
|
|
def NewESP32(n,p):
|
|
esp32 = p.\
|
|
ESP32(ref="ESP32",value=" ")
|
|
lgnd = n.\
|
|
gnd
|
|
lvin = n.\
|
|
vin
|
|
esp32["GND"] += lgnd
|
|
lgnd & n.\
|
|
gnd
|
|
esp32["VDD"] += lvin
|
|
lvin & n.\
|
|
vin
|
|
esp32["VDD"] & p.\
|
|
r(ref="r_esp32_en",value="10k") & esp32["EN"]
|
|
z1 = NewPinZaschita(name="esp32_z1",n=n,p=p)
|
|
z2 = NewPinZaschita(name="esp32_z2",n=n,p=p)
|
|
z3 = NewPinZaschita(name="esp32_z3",n=n,p=p)
|
|
z4 = NewPinZaschita(name="esp32_z4",n=n,p=p)
|
|
rxtx = p.\
|
|
conn4(ref="rxtx",value=" ")
|
|
rxtx[1] & z1.\
|
|
i
|
|
z1.\
|
|
o & esp32["RXD0/IO3"]
|
|
z1.\
|
|
g & lgnd
|
|
rxtx[2] & z2.\
|
|
i
|
|
z2.\
|
|
o & esp32["TXD0/IO1"]
|
|
z2.\
|
|
g & lgnd
|
|
rxtx[3] & z3.\
|
|
i
|
|
z3.\
|
|
o & esp32["EN"]
|
|
z3.\
|
|
g & lgnd
|
|
rxtx[4] & z4.\
|
|
i
|
|
z4.\
|
|
o & esp32["IO0"]
|
|
z4.\
|
|
g & lgnd
|
|
vin_gnd = p.\
|
|
conn2(ref="vin_gnd",value=" ")
|
|
vin_gnd[1] & lvin
|
|
vin_gnd[2] & lgnd
|
|
return esp32
|
|
@subcircuit
|
|
def xl4016_driver(n,p,mk_vkl_net,mk_yark_net):
|
|
tr_mk = p.\
|
|
tr_fet(ref="tr_mk",value="тр МК")
|
|
tr_yark = p.\
|
|
tr_fet(ref="tr_yark",value="тр ярк P-тип")
|
|
d_vkl = p.\
|
|
diode(ref="d_vkl",value="диод вкл")
|
|
k_vfb = p.\
|
|
Клема(ref="k_vfb",value=" ")
|
|
k_xl4016_fb = p.\
|
|
Клема(ref="k_xl4016_fb",value=" ")
|
|
k_xl4016_fb & tr_mk["S"]
|
|
k_vfb & n.\
|
|
vfb
|
|
vkl_iface = p.\
|
|
conn2(ref="vkl_iface",value="Вкл")
|
|
n.\
|
|
vkl & vkl_iface & n.\
|
|
vin
|
|
r_fb = p.\
|
|
r(ref="r_fb",value="100k")
|
|
r_mk = p.\
|
|
r(ref="r_mk",value="10k")
|
|
n.\
|
|
vin & r_fb & tr_mk["S"]
|
|
n.\
|
|
xl4016_fb & tr_mk["S"]
|
|
tr_mk["D"] & n.\
|
|
vfb
|
|
tr_mk["G"] & r_mk & n.\
|
|
gnd
|
|
tr_mk["G"] & mk_vkl_net
|
|
n.\
|
|
vkl & d_vkl & tr_mk["G"]
|
|
tr_yark["G"] & n.\
|
|
vkl
|
|
mk_yark_net & tr_yark["S"]
|
|
r_diode = p.\
|
|
r(ref="r_yark_pre_diode",value="100")
|
|
diode = p.\
|
|
diode(ref="yark_diode",value=" ")
|
|
tr_yark["D"] & r_diode & diode & n.\
|
|
vfb
|
|
r_tr_g_yark = p.\
|
|
r(ref="r_tr_g_yark",value="10k")
|
|
n.\
|
|
vkl & r_tr_g_yark & n.\
|
|
gnd
|
|
@subcircuit
|
|
def dcdc_3_3_v(n,p):
|
|
high_vin = p.\
|
|
conn2(ref="high_vin",value="24В")
|
|
lgnd = n.\
|
|
gnd
|
|
dcdc = p.\
|
|
conn4(ref="dcdc",value="3.3В")
|
|
dcdc[1] & n.\
|
|
vin
|
|
dcdc[2] & lgnd & n.\
|
|
gnd
|
|
dcdc[3] & high_vin & lgnd
|
|
@package
|
|
def NewDvizh(out,name,n,p):
|
|
d = p.\
|
|
conn3_big(ref=name,value=" ")
|
|
d[1] & n.\
|
|
vin
|
|
d[2] & out
|
|
d[3] & n.\
|
|
gnd
|
|
@package
|
|
def NewPinZaschita(i,o,g,name,n,p):
|
|
r = p.\
|
|
r(ref=name + "_r_in",value="1k")
|
|
d_vin = p.\
|
|
diode(ref=name + "_d_vin",value=" ")
|
|
d_gnd = p.\
|
|
diode(ref=name + "_d_gnd",value=" ")
|
|
stabil = p.\
|
|
stabilitron(ref=name + "_stabil",value=" ")
|
|
cond = p.\
|
|
condensator(ref=name + "_cond",value=" ")
|
|
i & p.\
|
|
r_jmp_big(ref=name + "_rj1",value="0") & r
|
|
r & d_vin & n.\
|
|
vin
|
|
r & d_gnd & g
|
|
r & stabil & g
|
|
r & cond & g
|
|
r & p.\
|
|
r_jmp_big(ref=name + "_rj2",value="0") & o
|
|
main()
|