lestnica_dvizh/pkg/schema/schema.py

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()