From 40abf97d52ff6915a2d8c3f558c44c39c8075e26 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Tue, 21 Sep 2021 02:20:51 -0600 Subject: [PATCH] add the other TI 32-pad flavor for CC1310 that allows more DIOs --- packages/Makefile | 3 +- packages/RHB0032E.py | 152 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+), 1 deletion(-) create mode 100755 packages/RHB0032E.py diff --git a/packages/Makefile b/packages/Makefile index 9efa2cc..48b877a 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -147,7 +147,8 @@ FOOTPRINTS= \ LPH.fp \ FA-20H.fp \ RGZ0048A.fp \ - RSM0032B.fp + RSM0032B.fp \ + RHB0032E.fp .5c.fp: nickle $*.5c -o $@ diff --git a/packages/RHB0032E.py b/packages/RHB0032E.py new file mode 100755 index 0000000..1dfc22f --- /dev/null +++ b/packages/RHB0032E.py @@ -0,0 +1,152 @@ +#!/usr/bin/python2 +# Copyright 2021 by Bdale Garbee . GPLv3 +# +# Emit PCB footprint for RHB0032E package used by TI CC1310 with RHMR suffix +# + +# dimensions in mm from the ti/cc1310/cc1310.pdf datasheet + +PinWidth = 0.25 +PinResist = 0.26 # width of gap in solder resist over pad +PinHeight = 0.6 +PinSpacing = 0.50 +Overall = 4.90 +GndSquare = 3.45 +GndSquareMask = 3.45 +PasteSquare = 1.49 # paste spots over ground tab +PasteGrid = 1.69 +ViaDrill = 0.254 # mfg spec is 0.2, >= 10 mil AC standard spec +ViaPadSize = 0.5 +CoreViaSpacing = 1.475 + +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 3' +print '# use-license: unlimited' + +print 'Element[0x0 "RHB0032E" "" "" 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, \ + mm2mils100(GndSquareMask), \ + '"pin33" "33" "square,nopaste"]' + +# vias in the ground pad under the chip +print ' Pin[',\ + mm2mils100(-CoreViaSpacing), \ + mm2mils100(0), \ + mm2mils100(ViaPadSize), \ + mm2mils100(ViaPadSize), \ + 0, \ + mm2mils100(ViaDrill), \ + '"pin33" "33" 0x0002]' + +print ' Pin[',\ + mm2mils100(0), \ + mm2mils100(0), \ + mm2mils100(ViaPadSize), \ + mm2mils100(ViaPadSize), \ + 0, \ + mm2mils100(ViaDrill), \ + '"pin33" "33" 0x0002]' + +print ' Pin[',\ + mm2mils100(CoreViaSpacing), \ + mm2mils100(0), \ + mm2mils100(ViaPadSize), \ + mm2mils100(ViaPadSize), \ + 0, \ + mm2mils100(ViaDrill), \ + '"pin33" "33" 0x0002]' + +print ' Pin[',\ + mm2mils100(0), \ + mm2mils100(-CoreViaSpacing), \ + mm2mils100(ViaPadSize), \ + mm2mils100(ViaPadSize), \ + 0, \ + mm2mils100(ViaDrill), \ + '"pin33" "33" 0x0002]' + +print ' Pin[',\ + mm2mils100(0), \ + mm2mils100(CoreViaSpacing), \ + mm2mils100(ViaPadSize), \ + mm2mils100(ViaPadSize), \ + 0, \ + mm2mils100(ViaDrill), \ + '"pin33" "33" 0x0002]' + +# solder paste squares in a grid on central ground pad +for pasterow in range (-1, 1): + for pastecol in range (-1, 1): + print ' Pad[',\ + mm2mils100(pastecol * PasteGrid + PasteGrid/2), \ + mm2mils100(pasterow * PasteGrid + PasteGrid/2), \ + mm2mils100(pastecol * PasteGrid + PasteGrid/2), \ + mm2mils100(pasterow * PasteGrid + PasteGrid/2), \ + mm2mils100((PasteSquare)), \ + 0, \ + mm2mils100((PasteSquare)), \ + '"pin33" "33" "square"]' + +# pins +for pin in range (1,9): + print ' Pad[',\ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]' + + print ' Pad[',\ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(+Overall/2 + PinHeight/2 - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % pin, '"%i"' % pin, '"square"]' + + print ' Pad[',\ + mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(Overall/2 + PinHeight/2 - PinWidth/2), \ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]' + + print ' Pad[',\ + mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \ + mm2mils100((pin - 4.5) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]' + +print ' ElementArc[',\ + mm2mils100(-2.5), \ + mm2mils100(2.5), \ + '500 500 0 360 1000 ]' +print ")" -- 2.47.2