From: Bdale Garbee Date: Fri, 25 Nov 2011 01:16:32 +0000 (-0700) Subject: working on the CC1120's footprint .. currently it's a 32-pin variation on X-Git-Url: https://git.gag.com/?p=hw%2Fbdale;a=commitdiff_plain;h=86944ce34fbaa3960c8996daa0d40386197cfcd0 working on the CC1120's footprint .. currently it's a 32-pin variation on the CC1111 footprint, still needs the under-chip ground pad updated --- diff --git a/pkg/newlib/NDK32.py b/pkg/newlib/NDK32.py new file mode 100755 index 0000000..ab434d4 --- /dev/null +++ b/pkg/newlib/NDK32.py @@ -0,0 +1,71 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for package used by NDK 32mhz crystal +# + +# dimensions in mm from abm8.pdf Abracon datasheet +PinHeight = 1.40 +PinWidth = 1.20 +HSpacing = 2.20 - 1.40 +WSpacing = 1.6 - 1.20 + +import sys + +# we're going to use the 1/100 of a mil fundamental unit form +def mm2mils100( mm ): + return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 ) + +print '# author: Bdale Garbee' +print '# email: bdale@gag.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +print 'Element[0x0 "NDK32" "" "" 0 0 0 0 0 100 0x0]' +print "(" +print ' Pad[',\ + mm2mils100(WSpacing/2 + PinWidth/2), \ + mm2mils100(-(HSpacing/2 + PinWidth/2)), \ + mm2mils100(WSpacing/2 + PinWidth/2), \ + mm2mils100(-(HSpacing/2 + PinHeight - PinWidth/2)), \ + mm2mils100(PinWidth), \ + mm2mils100(0), \ + mm2mils100(PinWidth)+600, \ + '"pin2" "2" 0x0100]' + +print ' Pad[',\ + mm2mils100(WSpacing/2 + PinWidth/2), \ + mm2mils100(HSpacing/2 + PinWidth/2), \ + mm2mils100(WSpacing/2 + PinWidth/2), \ + mm2mils100(HSpacing/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(0), \ + mm2mils100(PinWidth)+600, \ + '"pin1" "1" 0x0100]' + +print ' Pad[',\ + mm2mils100(-(WSpacing/2 + PinWidth/2)), \ + mm2mils100(HSpacing/2 + PinWidth/2), \ + mm2mils100(-(WSpacing/2 + PinWidth/2)), \ + mm2mils100(HSpacing/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(0), \ + mm2mils100(PinWidth)+600, \ + '"pin4" "4" 0x0100]' + +print ' Pad[',\ + mm2mils100(-(WSpacing/2 + PinWidth/2)), \ + mm2mils100(-(HSpacing/2 + PinWidth/2)), \ + mm2mils100(-(WSpacing/2 + PinWidth/2)), \ + mm2mils100(-(HSpacing/2 + PinHeight - PinWidth/2)), \ + mm2mils100(PinWidth), \ + mm2mils100(0), \ + mm2mils100(PinWidth)+600, \ + '"pin3" "3" 0x0100]' + +print ' ElementArc[',\ + mm2mils100(PinWidth*1.4), \ + mm2mils100(PinHeight*1.4), \ + '500 500 0 360 1000 ]' + +print ")" diff --git a/pkg/newlib/TI-QFN32.py b/pkg/newlib/TI-QFN32.py new file mode 100755 index 0000000..6e2617f --- /dev/null +++ b/pkg/newlib/TI-QFN32.py @@ -0,0 +1,136 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for QFN32 package used by TI CC1120 +# + +# dimensions in mm from the TI cc1111f32.pdf datasheet +PinWidth = 0.28 +PinResist = PinWidth + (2 * 0.07) +PinHeight = (5.8 - 4.1) / 2 +PinSpacing = 0.50 +Overall = 5.80 +GndSquare = 3.70 +CoreSquare = 3.30 # resist gaps and paste spots over ground tab +PinSquare = 4.10 + +import sys + +# we're going to use the 1/100 of a mil fundamental unit form +def mm2mils100( mm ): + return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 ) + +print '# author: Bdale Garbee' +print '# email: bdale@gag.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]' +print "(" + +# pad under the chip, must be grounded +print ' Pad[',\ + mm2mils100(0), \ + mm2mils100(0), \ + mm2mils100(0), \ + mm2mils100(0), \ + mm2mils100(GndSquare), \ + 0, \ + 0, \ + '"pin33" "33" "square,nopaste"]' + +# vias in the ground pad under the chip +for viarow in range (-1,2): + for viacol in range (-1,2): + print ' Pin[',\ + mm2mils100(2 * viacol * CoreSquare / 5), \ + mm2mils100(2 * viarow * CoreSquare / 5), \ + 2800, \ + 1000, \ + 0, \ + 1500, \ + '"pin33" "33" 0x0002]' + +# break pad under chip into a grid to control the resist and paste masks +for viarow in range (-2, 3): + for viacol in range (-2, 3): + if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)): + # copper sub-square with resist over vias + print ' Pad[',\ + mm2mils100(viacol * CoreSquare / 5), \ + mm2mils100(viarow * CoreSquare / 5), \ + mm2mils100(viacol * CoreSquare / 5), \ + mm2mils100(viarow * CoreSquare / 5), \ + mm2mils100((CoreSquare)/5), \ + 0, \ + 0, \ + '"pin37" "37" "square,nopaste"]' + else: + # copper sub-square without resist + print ' Pad[',\ + mm2mils100(viacol * CoreSquare / 5), \ + mm2mils100(viarow * CoreSquare / 5), \ + mm2mils100(viacol * CoreSquare / 5), \ + mm2mils100(viarow * CoreSquare / 5), \ + mm2mils100((CoreSquare)/5), \ + 0, \ + mm2mils100((CoreSquare)/5), \ + '"pin37" "37" "square,nopaste"]' + # copper spot to control paste mask generation + print ' Pad[',\ + mm2mils100(viacol * CoreSquare / 5), \ + mm2mils100(viarow * CoreSquare / 5), \ + mm2mils100(viacol * CoreSquare / 5), \ + mm2mils100(viarow * CoreSquare / 5), \ + 1500, \ + 0, \ + mm2mils100((CoreSquare)/5), \ + '"pin37" "37" "square"]' + +# pins +for pin in range (1,9): + print ' Pad[',\ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(-Overall/2 + PinWidth/2), \ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (25-pin), '"%i"' % (25-pin), '0x0000]' + + print ' Pad[',\ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(+Overall/2 - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % pin, '"%i"' % pin, '0x0000]' + + print ' Pad[',\ + mm2mils100(Overall/2 - PinHeight + PinWidth/2), \ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(Overall/2 - PinWidth/2), \ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (17-pin), '"%i"' % (17-pin), '0x0000]' + + print ' Pad[',\ + mm2mils100(-Overall/2 + PinWidth/2), \ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \ + mm2mils100((-4.5 + pin) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (24+pin), '"%i"' % (24+pin), '0x0000]' + +print ' ElementArc[',\ + mm2mils100(-2.6), \ + mm2mils100(2.6), \ + '500 500 0 360 1000 ]' +print ")" diff --git a/pkg/newlib/lqfp100.py b/pkg/newlib/lqfp100.py new file mode 100755 index 0000000..991570d --- /dev/null +++ b/pkg/newlib/lqfp100.py @@ -0,0 +1,105 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for STM32L151 LQFP100 14 x 14 mm package +# + +# dimensions in mm from STM32L151 data sheet +PinWidth = 0.3 +PinHeight = 1.2 +PinResist = PinWidth + 0.16 +PinSpacing = 0.5 +BodySize = 14 +Overall = 16.7 + +import sys + +# we're going to use the 1/100 of a mil fundamental unit form +def mm2mils100( mm ): + return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 ) + +print '# author: Bdale Garbee' +print '# email: bdale@gag.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]' +print "(" + +# pins +for pin in range (1,26): + print ' Pad[',\ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(-Overall/2 + PinWidth/2), \ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (26-pin), '"%i"' % (26-pin), '0x0100]' + + print ' Pad[',\ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(+Overall/2 - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (50+pin), '"%i"' % (50+pin), '0x0100]' + + print ' Pad[',\ + mm2mils100(Overall/2 - PinHeight + PinWidth/2), \ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(Overall/2 - PinWidth/2), \ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (101-pin), '"%i"' % (101-pin), '0x0100]' + + print ' Pad[',\ + mm2mils100(-Overall/2 + PinWidth/2), \ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \ + mm2mils100((pin - 13) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (25+pin), '"%i"' % (25+pin), '0x0100]' + + +print ' ElementLine[',\ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100( BodySize/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100( BodySize/2), \ + mm2mils100(-BodySize/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + mm2mils100(-BodySize/2), \ + '1000 ]' + + +print ' ElementArc[',\ + mm2mils100( (BodySize/2)+0.3), \ + mm2mils100(-((BodySize/2)+0.3)), \ + '500 500 0 360 1000 ]' +print ")" diff --git a/sym/CC1120.sym b/sym/CC1120.sym new file mode 100644 index 0000000..2969559 --- /dev/null +++ b/sym/CC1120.sym @@ -0,0 +1,364 @@ +v 20110115 2 +P 0 3000 400 3000 1 0 0 +{ +T 100 3100 5 10 1 1 0 0 1 +pinnumber=9 +T 500 3000 3 10 1 1 0 0 1 +pinlabel=SO/GPIO1 +T -400 3100 5 10 0 1 0 0 1 +pinseq=9 +T 0 3000 5 10 0 1 0 0 1 +pintype=io +} +P 0 2600 400 2600 1 0 0 +{ +T 100 2700 5 10 1 1 0 0 1 +pinnumber=10 +T 500 2600 3 10 1 1 0 0 1 +pinlabel=GPIO0 +T -400 2700 5 10 0 1 0 0 1 +pinseq=10 +T 0 2600 5 10 0 1 0 0 1 +pintype=io +} +P 0 200 400 200 1 0 0 +{ +T 305 245 5 10 1 1 0 6 1 +pinnumber=16 +T 455 195 3 10 1 1 0 0 1 +pinlabel=NC +T 0 200 5 10 0 1 180 0 1 +pinseq=16 +T 0 200 5 10 0 1 180 0 1 +pintype=io +} +P 0 600 400 600 1 0 0 +{ +T 305 645 5 10 1 1 0 6 1 +pinnumber=15 +T 455 595 3 10 1 1 0 0 1 +pinlabel=AVDD_RF +T 0 600 5 10 0 1 180 0 1 +pinseq=15 +T 0 600 5 10 0 1 180 0 1 +pintype=pwr +} +P 3600 1400 3200 1400 1 0 0 +{ +T 3300 1500 5 10 1 1 0 0 1 +pinnumber=20 +T 2500 1400 3 10 1 1 0 0 1 +pinlabel=LNA_N +T 3600 1400 5 10 0 1 0 0 1 +pinseq=20 +T 3600 1400 5 10 0 1 0 0 1 +pintype=io +} +P 3600 1000 3200 1000 1 0 0 +{ +T 2525 1000 3 10 1 1 0 0 1 +pinlabel=LNA_P +T 3600 1000 5 10 0 1 0 0 1 +pinseq=19 +T 3300 1100 5 10 1 1 0 0 1 +pinnumber=19 +T 3600 1000 5 10 0 1 0 0 1 +pintype=io +} +P 3600 600 3200 600 1 0 0 +{ +T 3300 700 5 10 1 1 0 0 1 +pinnumber=18 +T 2325 600 3 10 1 1 0 0 1 +pinlabel=TRX_SW +T 3600 600 5 10 0 1 0 0 1 +pinseq=18 +T 3600 600 5 10 0 1 0 0 1 +pintype=io +} +P 3600 200 3200 200 1 0 0 +{ +T 3300 300 5 10 1 1 0 0 1 +pinnumber=17 +T 2825 200 3 10 1 1 0 0 1 +pinlabel=PA +T 3600 200 5 10 0 1 0 0 1 +pinseq=17 +T 3600 200 5 10 0 1 0 0 1 +pintype=io +} +P 3600 3000 3200 3000 1 0 0 +{ +T 3300 3100 5 10 1 1 0 0 1 +pinnumber=24 +T 2625 3000 3 10 1 1 0 0 1 +pinlabel=LPF1 +T 3600 3000 5 10 0 1 0 0 1 +pinseq=24 +T 3600 3000 5 10 0 1 0 0 1 +pintype=io +} +P 3600 2600 3200 2600 1 0 0 +{ +T 3300 2700 5 10 1 1 0 0 1 +pinnumber=23 +T 2600 2600 3 10 1 1 0 0 1 +pinlabel=LPF0 +T 3600 2600 5 10 0 1 0 0 1 +pinseq=23 +T 3600 2600 5 10 0 1 0 0 1 +pintype=io +} +P 3600 2200 3200 2200 1 0 0 +{ +T 3300 2300 5 10 1 1 0 0 1 +pinnumber=22 +T 1750 2200 3 10 1 1 0 0 1 +pinlabel=AVDD_SYNTH1 +T 3600 2200 5 10 0 1 0 0 1 +pinseq=22 +T 3600 2200 5 10 0 1 0 0 1 +pintype=pwr +} +P 3600 1800 3200 1800 1 0 0 +{ +T 3300 1900 5 10 1 1 0 0 1 +pinnumber=21 +T 2100 1800 3 10 1 1 0 0 1 +pinlabel=DCPL_VCO +T 3600 1800 5 10 0 1 0 0 1 +pinseq=21 +T 3600 1800 5 10 0 1 0 0 1 +pintype=pwr +} +P 0 1000 400 1000 1 0 0 +{ +T 305 1045 5 10 1 1 0 6 1 +pinnumber=14 +T 455 995 3 10 1 1 0 0 1 +pinlabel=RBIAS +T -400 1100 5 10 0 1 0 0 1 +pinseq=14 +T 0 1000 5 10 0 1 0 0 1 +pintype=io +} +P 0 3400 400 3400 1 0 0 +{ +T 100 3500 5 10 1 1 0 0 1 +pinnumber=8 +T 500 3400 3 10 1 1 0 0 1 +pinlabel=SCLK +T 100 3500 5 10 1 1 0 0 1 +pinseq=8 +T 0 3400 5 10 0 1 0 0 1 +pintype=in +} +P 0 6200 400 6200 1 0 0 +{ +T 100 6300 5 10 1 1 0 0 1 +pinnumber=1 +T 500 6200 3 10 1 1 0 0 1 +pinlabel=VDD_GUARD +T -400 6300 5 10 0 1 0 0 1 +pinseq=1 +T 0 6200 5 10 0 1 0 0 1 +pintype=pwr +} +P 0 5800 400 5800 1 0 0 +{ +T 100 5900 5 10 1 1 0 0 1 +pinnumber=2 +T 500 5800 3 10 1 1 0 0 1 +pinlabel=RESET_N +T -400 5900 5 10 0 1 0 0 1 +pinseq=2 +T 0 5800 5 10 0 1 0 0 1 +pintype=in +} +P 0 5400 400 5400 1 0 0 +{ +T 100 5500 5 10 1 1 0 0 1 +pinnumber=3 +T 500 5400 3 10 1 1 0 0 1 +pinlabel=GPIO3 +T -400 5500 5 10 0 1 0 0 1 +pinseq=3 +T 0 5400 5 10 0 1 0 0 1 +pintype=io +} +P 0 5000 400 5000 1 0 0 +{ +T 100 5100 5 10 1 1 0 0 1 +pinnumber=4 +T 500 5000 3 10 1 1 0 0 1 +pinlabel=GPIO2 +T -400 5100 5 10 0 1 0 0 1 +pinseq=4 +T 0 5000 5 10 0 1 0 0 1 +pintype=io +} +P 0 4600 400 4600 1 0 0 +{ +T 100 4700 5 10 1 1 0 0 1 +pinnumber=5 +T 500 4600 3 10 1 1 0 0 1 +pinlabel=DVDD +T -400 4700 5 10 0 1 0 0 1 +pinseq=5 +T 0 4600 5 10 0 1 0 0 1 +pintype=pwr +} +P 0 4200 400 4200 1 0 0 +{ +T 100 4300 5 10 1 1 0 0 1 +pinnumber=6 +T 500 4200 3 10 1 1 0 0 1 +pinlabel=DCPL +T -400 4300 5 10 0 1 0 0 1 +pinseq=6 +T 0 4200 5 10 0 1 0 0 1 +pintype=pwr +} +P 0 3800 400 3800 1 0 0 +{ +T 100 3900 5 10 1 1 0 0 1 +pinnumber=7 +T 500 3800 3 10 1 1 0 0 1 +pinlabel=SI +T -400 3900 5 10 0 1 0 0 1 +pinseq=7 +T 0 3800 5 10 0 1 0 0 1 +pintype=in +} +P 0 2200 400 2200 1 0 0 +{ +T 100 2300 5 10 1 1 0 0 1 +pinnumber=11 +T 500 2200 3 10 1 1 0 0 1 +pinlabel=CS_N +T -500 2100 5 10 0 1 0 0 1 +pinseq=11 +T 0 2200 5 10 0 1 0 0 1 +pintype=in +} +P 0 1800 400 1800 1 0 0 +{ +T 100 1900 5 10 1 1 0 0 1 +pinnumber=12 +T 500 1800 3 10 1 1 0 0 1 +pinlabel=DVDD +T -400 1900 5 10 0 1 0 0 1 +pinseq=12 +T 0 1800 5 10 0 1 0 0 1 +pintype=pwr +} +P 0 1400 400 1400 1 0 0 +{ +T 305 1445 5 10 1 1 0 6 1 +pinnumber=13 +T 455 1395 3 10 1 1 0 0 1 +pinlabel=AVDD_IF +T -400 1500 5 10 0 1 0 0 1 +pinseq=13 +T 0 1400 5 10 0 1 0 0 1 +pintype=pwr +} +B 400 0 2800 6500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +T 5400 1600 8 10 0 0 0 0 1 +description=TI CC1120 High Performance RF Transceiver +T 400 6600 8 10 1 1 0 0 1 +refdes=U? +T 5400 2500 8 10 0 0 0 0 1 +numslots=0 +T 2500 6600 9 10 1 0 0 0 1 +CC1120 +T 5400 2800 8 10 0 0 0 0 1 +slot=1 +P 3600 4600 3200 4600 1 0 0 +{ +T 3300 4700 5 10 1 1 0 0 1 +pinnumber=28 +T 2000 4600 3 10 1 1 0 0 1 +pinlabel=AVDD_XOSC +T 3600 4600 5 10 0 1 0 0 1 +pinseq=28 +T 3600 4600 5 10 0 1 0 0 1 +pintype=pwr +} +P 3600 4200 3200 4200 1 0 0 +{ +T 1775 4200 3 10 1 1 0 0 1 +pinlabel=AVDD_SYNTH2 +T 3600 4200 5 10 0 1 0 0 1 +pinseq=27 +T 3300 4300 5 10 1 1 0 0 1 +pinnumber=27 +T 3600 4200 5 10 0 1 0 0 1 +pintype=pwr +} +P 3600 3800 3200 3800 1 0 0 +{ +T 3300 3900 5 10 1 1 0 0 1 +pinnumber=26 +T 1675 3800 3 10 1 1 0 0 1 +pinlabel=DCPL_PFD_CHP +T 3600 3800 5 10 0 1 0 0 1 +pinseq=26 +T 3600 3800 5 10 0 1 0 0 1 +pintype=pwr +} +P 3600 3400 3200 3400 1 0 0 +{ +T 3300 3500 5 10 1 1 0 0 1 +pinnumber=25 +T 1675 3400 3 10 1 1 0 0 1 +pinlabel=AVDD_PFD_CHP +T 3600 3400 5 10 0 1 0 0 1 +pinseq=25 +T 3600 3400 5 10 0 1 0 0 1 +pintype=pwr +} +P 3600 6200 3200 6200 1 0 0 +{ +T 3300 6300 5 10 1 1 0 0 1 +pinnumber=32 +T 2125 6200 3 10 1 1 0 0 1 +pinlabel=EXT_XOSC +T 3600 6200 5 10 0 1 0 0 1 +pinseq=32 +T 3600 6200 5 10 0 1 0 0 1 +pintype=in +} +P 3600 5800 3200 5800 1 0 0 +{ +T 3300 5900 5 10 1 1 0 0 1 +pinnumber=31 +T 2250 5800 3 10 1 1 0 0 1 +pinlabel=XOSC_Q2 +T 3600 5800 5 10 0 1 0 0 1 +pinseq=31 +T 3600 5800 5 10 0 1 0 0 1 +pintype=io +} +P 3600 5400 3200 5400 1 0 0 +{ +T 3300 5500 5 10 1 1 0 0 1 +pinnumber=30 +T 2250 5400 3 10 1 1 0 0 1 +pinlabel=XOSC_Q1 +T 3600 5400 5 10 0 1 0 0 1 +pinseq=30 +T 3600 5400 5 10 0 1 0 0 1 +pintype=io +} +P 3600 5000 3200 5000 1 0 0 +{ +T 3300 5100 5 10 1 1 0 0 1 +pinnumber=29 +T 2000 5000 3 10 1 1 0 0 1 +pinlabel=DCPL_XOSC +T 3600 5000 5 10 0 1 0 0 1 +pinseq=29 +T 3600 5000 5 10 0 1 0 0 1 +pintype=pwr +}