Add software

This commit is contained in:
RocketGod
2022-09-22 09:26:57 -07:00
parent fee0ab05fd
commit 957ea3d712
4511 changed files with 1943182 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,913 @@
Cmp-Mod V01 Created by CvPCB (2011-06-30 BZR 3033)-stable date = Fri Jun 1 13:12:36 2012
BeginCmp
TimeStamp = /4FA9C67C;
Reference = C1;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FA9C7AF;
Reference = C2;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FA9C6EF;
Reference = C3;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FA9C7B1;
Reference = C4;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA1282;
Reference = C5;
ValeurCmp = 47pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FA9C6ED;
Reference = C6;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA06F8;
Reference = C7;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA12EC;
Reference = C8;
ValeurCmp = 47pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD1DE;
Reference = C9;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0746;
Reference = C10;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA071E;
Reference = C11;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA074B;
Reference = C12;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0711;
Reference = C13;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FB55FBB;
Reference = C14;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C58;
Reference = C15;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECB99;
Reference = C16;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECBA0;
Reference = C17;
ValeurCmp = 10nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECBB6;
Reference = C18;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECBB5;
Reference = C19;
ValeurCmp = 10nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECBB9;
Reference = C20;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECBBA;
Reference = C21;
ValeurCmp = 10nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC78D;
Reference = C22;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD276;
Reference = C23;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD2C1;
Reference = C24;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C51;
Reference = C25;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C57;
Reference = C26;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA1577;
Reference = C27;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC84D;
Reference = C28;
ValeurCmp = 330pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC853;
Reference = C29;
ValeurCmp = 330pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC8AD;
Reference = C30;
ValeurCmp = 8p2;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC8B0;
Reference = C31;
ValeurCmp = 180pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C50;
Reference = C32;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD183;
Reference = C33;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD278;
Reference = C34;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA1579;
Reference = C35;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD2CF;
Reference = C36;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C4B;
Reference = C37;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA1578;
Reference = C38;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C4E;
Reference = C39;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD17F;
Reference = C40;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA157D;
Reference = C41;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C5D;
Reference = C42;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C63;
Reference = C43;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD185;
Reference = C44;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD24B;
Reference = C45;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD181;
Reference = C46;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD233;
Reference = C47;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA157E;
Reference = C48;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C5E;
Reference = C49;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C65;
Reference = C50;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C69;
Reference = C51;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD249;
Reference = C52;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD21D;
Reference = C53;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECE69;
Reference = C54;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECE70;
Reference = C55;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECE73;
Reference = C56;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECE75;
Reference = C57;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA0C67;
Reference = C58;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA149B;
Reference = C59;
ValeurCmp = 47pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08F2;
Reference = C60;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FB55FAD;
Reference = C61;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC781;
Reference = C62;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAAD1E7;
Reference = C63;
ValeurCmp = 2.2nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08EC;
Reference = C64;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08F0;
Reference = C65;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08EB;
Reference = C66;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA138A;
Reference = C67;
ValeurCmp = 47pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08F1;
Reference = C68;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FB2FD07;
Reference = C69;
ValeurCmp = 100nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08E9;
Reference = C70;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08E5;
Reference = C71;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08E6;
Reference = C72;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08E4;
Reference = C73;
ValeurCmp = 100pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECD45;
Reference = C74;
ValeurCmp = 47pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAA08E7;
Reference = C75;
ValeurCmp = 33pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FB2FF68;
Reference = C76;
ValeurCmp = 100nF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FB3CC76;
Reference = C77;
ValeurCmp = 47pF;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FB3F7D4;
Reference = D1;
ValeurCmp = GSG-DIODE-TVS-BI;
IdModule = GSG-LXES1UBBB1-008;
EndCmp
BeginCmp
TimeStamp = /4FB3F9B0;
Reference = D2;
ValeurCmp = GSG-DIODE-TVS-BI;
IdModule = GSG-LXES1UBBB1-008;
EndCmp
BeginCmp
TimeStamp = /4FAEC094;
Reference = L1;
ValeurCmp = 180nH;
IdModule = GSG-0603;
EndCmp
BeginCmp
TimeStamp = /4FB8333C;
Reference = L2;
ValeurCmp = 180nH;
IdModule = GSG-0603;
EndCmp
BeginCmp
TimeStamp = /4FB546AD;
Reference = L3;
ValeurCmp = DNP;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC078;
Reference = L4;
ValeurCmp = 47nH;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC066;
Reference = L5;
ValeurCmp = 47nH;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FB55E30;
Reference = L6;
ValeurCmp = 3n3;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FA9C5A4;
Reference = P1;
ValeurCmp = TX-IN;
IdModule = GSG-SMA-EDGE;
EndCmp
BeginCmp
TimeStamp = /4F94D0F2;
Reference = P2;
ValeurCmp = TX/RX;
IdModule = GSG-SMA-EDGE;
EndCmp
BeginCmp
TimeStamp = /4F94D0E4;
Reference = P3;
ValeurCmp = RX-only;
IdModule = GSG-SMA-EDGE;
EndCmp
BeginCmp
TimeStamp = /4FB57544;
Reference = P4;
ValeurCmp = SERIAL;
IdModule = GSG-HEADER-2x5;
EndCmp
BeginCmp
TimeStamp = /4FA9C5BB;
Reference = P5;
ValeurCmp = RX-OUT;
IdModule = GSG-SMA-EDGE;
EndCmp
BeginCmp
TimeStamp = /4FB3CC51;
Reference = P6;
ValeurCmp = CLK;
IdModule = GSG-HEADER-1x2;
EndCmp
BeginCmp
TimeStamp = /4FB3CA54;
Reference = P7;
ValeurCmp = SWITCH_CTRL;
IdModule = GSG-HEADER-2x7;
EndCmp
BeginCmp
TimeStamp = /4FB3CB92;
Reference = P8;
ValeurCmp = VCC;
IdModule = GSG-HEADER-2x3;
EndCmp
BeginCmp
TimeStamp = /4FB81E54;
Reference = P9;
ValeurCmp = CONN_1;
IdModule = GSG-HOLE-12MIL;
EndCmp
BeginCmp
TimeStamp = /4FB81E53;
Reference = P10;
ValeurCmp = CONN_1;
IdModule = GSG-HOLE-12MIL;
EndCmp
BeginCmp
TimeStamp = /4FB81E51;
Reference = P11;
ValeurCmp = CONN_1;
IdModule = GSG-HOLE-12MIL;
EndCmp
BeginCmp
TimeStamp = /4FB81E45;
Reference = P12;
ValeurCmp = CONN_1;
IdModule = GSG-HOLE-12MIL;
EndCmp
BeginCmp
TimeStamp = /4FAEC850;
Reference = R1;
ValeurCmp = 470;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC856;
Reference = R2;
ValeurCmp = 470;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAEC8B2;
Reference = R3;
ValeurCmp = 22k;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECC79;
Reference = R4;
ValeurCmp = 51k;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECE50;
Reference = R5;
ValeurCmp = 4k7;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FAECFAE;
Reference = R6;
ValeurCmp = 4k7;
IdModule = GSG-0402;
EndCmp
BeginCmp
TimeStamp = /4FA9C4DF;
Reference = T1;
ValeurCmp = TX_IF_BALUN;
IdModule = GSG-2500BL14M100;
EndCmp
BeginCmp
TimeStamp = /4F94CC10;
Reference = T2;
ValeurCmp = TX_BANDPASS_BALUN;
IdModule = GSG-2500BL14M100;
EndCmp
BeginCmp
TimeStamp = /4FC55501;
Reference = T3;
ValeurCmp = TX_LOWPASS_BALUN;
IdModule = GSG-RFXF9503;
EndCmp
BeginCmp
TimeStamp = /4F94CC6F;
Reference = T4;
ValeurCmp = TX_HIGHPASS_BALUN;
IdModule = GSG-HHM1595A1;
EndCmp
BeginCmp
TimeStamp = /4F94D601;
Reference = T5;
ValeurCmp = RX_HIGHPASS_BALUN;
IdModule = GSG-HHM1595A1;
EndCmp
BeginCmp
TimeStamp = /4FC55556;
Reference = T6;
ValeurCmp = RX_LOWPASS_BALUN;
IdModule = GSG-RFXF9503;
EndCmp
BeginCmp
TimeStamp = /4F94D59C;
Reference = T7;
ValeurCmp = RX_BANDPASS_BALUN;
IdModule = GSG-2500BL14M100;
EndCmp
BeginCmp
TimeStamp = /4FAA08F4;
Reference = T8;
ValeurCmp = RX_IF_BALUN;
IdModule = GSG-2500BL14M100;
EndCmp
BeginCmp
TimeStamp = /4F957166;
Reference = U1;
ValeurCmp = RFFC5071;
IdModule = GSG-QFN32;
EndCmp
BeginCmp
TimeStamp = /4FB68137;
Reference = U2;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4F94CFA9;
Reference = U3;
ValeurCmp = SKY13317;
IdModule = GSG-SKY13317-373LF;
EndCmp
BeginCmp
TimeStamp = /4FB68133;
Reference = U4;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4F94CF46;
Reference = U5;
ValeurCmp = TX_LOWPASS_FILTER;
IdModule = GSG-LP0603;
EndCmp
BeginCmp
TimeStamp = /4FB6811F;
Reference = U6;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4FAA1575;
Reference = U7;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4F94CF02;
Reference = U8;
ValeurCmp = TX_HIGHPASS_FILTER;
IdModule = GSG-HP-DEA;
EndCmp
BeginCmp
TimeStamp = /4FB68122;
Reference = U9;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4FB680FF;
Reference = U10;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4F94D4F4;
Reference = U11;
ValeurCmp = TX_HIGHPASS_FILTER;
IdModule = GSG-HP-DEA;
EndCmp
BeginCmp
TimeStamp = /4FB68124;
Reference = U12;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4F94D561;
Reference = U13;
ValeurCmp = RX_LOWPASS_FILTER;
IdModule = GSG-LP0603;
EndCmp
BeginCmp
TimeStamp = /4FB68127;
Reference = U14;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4FB68075;
Reference = U15;
ValeurCmp = SKY13317;
IdModule = GSG-SKY13317-373LF;
EndCmp
BeginCmp
TimeStamp = /4FB68130;
Reference = U16;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4FB2F586;
Reference = U17;
ValeurCmp = GSG-74HC04;
IdModule = GSG-S-PVQFN-14;
EndCmp
BeginCmp
TimeStamp = /4FB6812A;
Reference = U18;
ValeurCmp = SKY13351;
IdModule = GSG-SKY13351-378LF;
EndCmp
BeginCmp
TimeStamp = /4FB2F209;
Reference = U19;
ValeurCmp = GSG-74HC08;
IdModule = GSG-S-PVQFN-14;
EndCmp
EndListe

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,108 @@
update=Fri May 18 15:00:42 2012
version=1
last_client=pcbnew
[cvpcb]
version=1
NetITyp=0
NetIExt=.net
PkgIExt=.pkg
NetDir=
LibDir=
NetType=0
[cvpcb/libraries]
EquName1=devcms
[general]
version=1
[eeschema]
version=1
LibDir=../kicad
NetFmt=1
HPGLSpd=20
HPGLDm=15
HPGLNum=1
offX_A4=0
offY_A4=0
offX_A3=0
offY_A3=0
offX_A2=0
offY_A2=0
offX_A1=0
offY_A1=0
offX_A0=0
offY_A0=0
offX_A=0
offY_A=0
offX_B=0
offY_B=0
offX_C=0
offY_C=0
offX_D=0
offY_D=0
offX_E=0
offY_E=0
RptD_X=0
RptD_Y=100
RptLab=1
LabSize=60
[eeschema/libraries]
LibName1=power
LibName2=device
LibName3=transistors
LibName4=conn
LibName5=linear
LibName6=regul
LibName7=74xx
LibName8=cmos4000
LibName9=adc-dac
LibName10=memory
LibName11=xilinx
LibName12=special
LibName13=microcontrollers
LibName14=dsp
LibName15=microchip
LibName16=analog_switches
LibName17=motorola
LibName18=texas
LibName19=intel
LibName20=audio
LibName21=interface
LibName22=digital-audio
LibName23=philips
LibName24=display
LibName25=cypress
LibName26=siliconi
LibName27=opto
LibName28=atmel
LibName29=contrib
LibName30=valves
LibName31=hackrf
[pcbnew]
version=1
PadDrlX=320
PadDimH=600
PadDimV=600
BoardThickness=630
TxtPcbV=800
TxtPcbH=600
TxtModV=600
TxtModH=600
TxtModW=120
VEgarde=100
DrawLar=150
EdgeLar=150
TxtLar=120
MSegLar=150
LastNetListRead=lollipop.net
[pcbnew/libraries]
LibDir=../kicad
LibName1=sockets
LibName2=connect
LibName3=discret
LibName4=pin_array
LibName5=divers
LibName6=libcms
LibName7=display
LibName8=valves
LibName9=led
LibName10=dip_sockets
LibName11=hackrf

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,201 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2012 Jared Boone
#
# This file is part of HackRF.
#
# This is a free hardware design; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This design is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this design; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
#
# This program is used to verify the logic on the Lollipop board, to
# make sure control of the various RF paths is correct.
class Component(object):
def __init__(self, **kwargs):
self.state = kwargs
def __repr__(self):
state_key = ''.join(
map(str,
map(int,
(self.state[input] for input in self.inputs)
)
)
)
if state_key not in self.states:
return 'Invalid'
else:
return self.functions[self.states[state_key]]
class SKY13317(Component):
inputs = (
'V1',
'V2',
'V3',
)
states = {
# V1, V2, V3
'100': 'RFC to RF1',
'010': 'RFC to RF2',
'001': 'RFC to RF3',
}
class SKY13351(Component):
inputs = (
'VCTL1',
'VCTL2',
)
states = {
# VCTL1, VCTL2
'01': 'INPUT to OUTPUT1',
'10': 'INPUT to OUTPUT2',
}
class U2_4(SKY13351):
name = 'U2/4'
functions = {
'INPUT to OUTPUT1': 'tx bandpass',
'INPUT to OUTPUT2': 'tx mixer'
}
class U6_9(SKY13351):
name = 'U6/9'
functions = {
'INPUT to OUTPUT1': 'tx lowpass',
'INPUT to OUTPUT2': 'tx highpass',
}
class U3(SKY13317):
name = 'U3'
functions = {
'RFC to RF1': 'tx highpass',
'RFC to RF2': 'tx lowpass',
'RFC to RF3': 'tx bandpass',
}
class U7(SKY13351):
name = 'U7'
functions = {
'INPUT to OUTPUT1': 'rx switch',
'INPUT to OUTPUT2': 'tx path',
}
class U10(SKY13351):
name = 'U10'
functions = {
'INPUT to OUTPUT1': 'tx/rx switch',
'INPUT to OUTPUT2': 'rx antenna',
}
class U15(SKY13317):
name = 'U15'
functions = {
'RFC to RF1': 'rx bandpass',
'RFC to RF2': 'rx highpass',
'RFC to RF3': 'rx lowpass',
}
class U12_14(SKY13351):
name = 'U12/14'
functions = {
'INPUT to OUTPUT1': 'rx lowpass',
'INPUT to OUTPUT2': 'rx highpass',
}
class U16_18(SKY13351):
name = 'U16/18'
functions = {
'INPUT to OUTPUT1': 'rx mixer',
'INPUT to OUTPUT2': 'rx bandpass',
}
def compute_logic(**inputs):
outputs = dict(inputs)
outputs['swtxb2'] = not inputs['swtxb1']
outputs['swrxb2'] = not inputs['swrxb1']
outputs['swtxa2'] = not inputs['swtxa1']
outputs['swrxa2'] = not inputs['swrxa1']
outputs['swd2'] = not inputs['swd1']
outputs['swrxv2'] = outputs['swrxb2'] and outputs['swrxa1']
outputs['swrxv3'] = outputs['swrxb2'] and outputs['swrxa2']
outputs['swtxv1'] = outputs['swtxa1'] and outputs['swtxb1']
outputs['swtxv2'] = outputs['swtxa2'] and outputs['swtxb1']
# Force boolean True/False (result of "not" operator) to 1 or 0.
for key in outputs:
outputs[key] = int(outputs[key])
return outputs
def print_signals(signals):
print(', '.join(('%s=%s' % (name, signals[name]) for name in sorted(signals))))
def print_circuit_state(signals):
components = (
U2_4(VCTL1=signals['swtxb1'], VCTL2=signals['swtxb2']),
U6_9(VCTL1=signals['swtxa1'], VCTL2=signals['swtxa2']),
U3(V1=signals['swtxv1'], V2=signals['swtxv2'], V3=signals['swtxb2']),
U7(VCTL1=signals['swd2'], VCTL2=signals['swd1']),
U10(VCTL1=signals['swd2'], VCTL2=signals['swd1']),
U15(V1=signals['swrxb1'], V2=signals['swrxv2'], V3=signals['swrxv3']),
U12_14(VCTL1=signals['swrxa1'], VCTL2=signals['swrxa2']),
U16_18(VCTL1=signals['swrxb1'], VCTL2=signals['swrxb2'])
)
for component in components:
print('%s: %s' % (component.name, component))
def make_bits_from_numbers(i, bit_count):
return [int(c) for c in bin(i)[2:].zfill(bit_count)]
print('Transmit')
print('========')
print
for i in range(4):
inputs = {
'swtxb1': (i >> 1) & 1,
'swtxa1': (i >> 0) & 1,
'swrxa1': 0,
'swrxb1': 0,
'swd1': 0,
}
outputs = compute_logic(**inputs)
print_signals(outputs)
print_circuit_state(outputs)
print
print('Receive')
print('========')
print
for i in range(4):
inputs = {
'swtxb1': 0,
'swtxa1': 0,
'swrxa1': (i >> 1) & 1,
'swrxb1': (i >> 0) & 1,
'swd1': 0,
}
outputs = compute_logic(**inputs)
print_signals(outputs)
print_circuit_state(outputs)
print