From 255a3337fdcc9c9a31b915cfd0e2582c43389c42 Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Fri, 8 Nov 2024 20:48:51 -0500
Subject: [PATCH] wip

---
 python/pcb.py | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/python/pcb.py b/python/pcb.py
index 6901b33..b98ddac 100755
--- a/python/pcb.py
+++ b/python/pcb.py
@@ -5460,6 +5460,75 @@ class XTAL_CSM_7(part):
 # diodes, transistors, regulators, sensors
 ############################################################
 
+class DRV8251A(part):
+   #
+   # TI DRV8251A H-bridge
+   #
+   def __init__(self,value=''):
+      self.value = value
+      self.pad = [point(0,0,0)]
+      self.labels = []
+      w = 1.55/25.4
+      h = .6/25.4
+      p = 1.27/25.4
+      d = 5.4/25.4/2
+      pad = cube(-w/2,w/2,-h/2,h/2,0,0)
+      #
+      # pin 1
+      #
+      self.shape = translate(pad,-d,1.5*p,0)
+      self.pad.append(point(-d,1.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'.IPR',line=0.004))
+      #
+      # pin 2
+      #
+      self.shape = add(self.shape,translate(pad,-d,.5*p,0))
+      self.pad.append(point(-d,.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IN2',line=0.004))
+      #
+      # pin 3
+      #
+      self.shape = add(self.shape,translate(pad,-d,-.5*p,0))
+      self.pad.append(point(-d,-.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'IN1',line=0.004))
+      #
+      # pin 4
+      #
+      self.shape = add(self.shape,translate(pad,-d,-1.5*p,0))
+      self.pad.append(point(-d,-1.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VREF',line=0.004))
+      #
+      # pin 5
+      #
+      self.shape = add(self.shape,translate(pad,d,-1.5*p,0))
+      self.pad.append(point(d,-1.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'VM',line=0.004))
+      #
+      # pin 6
+      #
+      self.shape = add(self.shape,translate(pad,d,-.5*p,0))
+      self.pad.append(point(d,-.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'OUT1',line=0.004))
+      #
+      # pin 7
+      #
+      self.shape = add(self.shape,translate(pad,d,.5*p,0))
+      self.pad.append(point(d,.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND',line=0.004))
+      #
+      # pin 8
+      #
+      self.shape = add(self.shape,translate(pad,d,1.5*p,0))
+      self.pad.append(point(d,1.5*p,0))
+      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'OUT2',line=0.004))
+      #
+      # thermal pad
+      #
+      w = 2.71/25.4
+      h = 3.4/25.4
+      self.shape = add(self.shape,cube(-w/2,w/2,-h/2,h/2,0,0))
+
+
 class ALS31313(part):
    #
    # Allegro ALS31313 vector magnetometer
-- 
GitLab