PM_K-1 hardware: verify THAT1240 against datasheet; fix pinout + part numbers
Verified the receiver from THAT doc 600035 rev05 instead of guessing: - THAT1240 = 0 dB (unity) -- correct as specced; 1243=-3dB, 1246=-6dB would be wrong. - SO-8 pinout 1=Ref 2=In- 3=In+ 4=Vee 5=Sense 6=Vout 7=Vcc 8=NC. My initial SKiDL pins were mostly wrong; corrected. Netlist now matches the datasheet. - KiCad Device:D is pin1=K/pin2=A; my clamp diodes were reversed -- fixed so they actually clamp (D high->cathode to +15, D low->anode to -15). - BOM part numbers had a bogus "W16" suffix; corrected to S08-U (SO-8). Noted INA134/SSM2141 as pin-compatible 2nd sources for long-term availability. ERC 0 errors, netlist 0 errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
3f7f4b94d9
commit
075c1786af
4 changed files with 53 additions and 51 deletions
|
|
@ -12,10 +12,10 @@ U7,Power/USB,USB ESD protection array,STMicroelectronics,USBLC6-2SC6,1,0.30,D+/D
|
|||
FL1,Power/USB,USB common-mode choke,Wurth,744232090,1,0.35,data-pair EMI
|
||||
U8,Click,I2S audio DAC,Texas Instruments,PCM5102APWR,1,2.20,Burr-Brown; reliability-first
|
||||
X1,Click,Low-jitter audio oscillator,Abracon,ASEM1-24.576MHZ-LR-T,1,1.40,dedicated MCLK; not PIO-jittered
|
||||
U9,Audio-in,Balanced line receiver,THAT Corp,THAT1240W16-U,1,3.20,laser-trimmed; high CMRR
|
||||
U9,Audio-in,Balanced line receiver,THAT Corp,THAT1240S08-U,1,3.20,0dB unity; pinout verified doc600035 rev05; 2nd-src INA134/SSM2141
|
||||
U10,Audio-in,JFET Hi-Z instrument buffer,Texas Instruments,OPA1641AID,1,1.60,>=1Mohm DI buffer + gain
|
||||
U11,Audio-mix,Dual audio op-amp (sum/filter),Texas Instruments,OPA1612AIDR,1,2.40,signal-path low noise
|
||||
U12,Audio-out,Balanced line driver,THAT Corp,THAT1646W16-U,1,3.30,near-zero source; 47ohm build-out per leg
|
||||
U12,Audio-out,Balanced line driver,THAT Corp,THAT1646S08-U,1,3.30,near-zero source; 47ohm build-out per leg; pinout TBV at output stage
|
||||
RV1,Audio-out,Output level cal trimmer 25-turn,Bourns,3296W-1-103LF,1,0.70,factory-set DAC FS -> +4dBu
|
||||
U13,Indicator,Dual comparator (sig/clip),Texas Instruments,LM393DR,1,0.15,peak-detect -> RP2350 GPIO + LED lines
|
||||
K1,Audio-in,Signal relay line/inst (DPDT gold),Panasonic,TQ2SA-5V,1,1.30,sealed gold bifurcated contacts
|
||||
|
|
|
|||
|
|
|
@ -6,12 +6,13 @@ Code-defined schematic. Run INSIDE the EDA container:
|
|||
Outputs ERC results + a KiCad netlist at hardware/kicad/stage1_input.net,
|
||||
which imports into Pcbnew for layout.
|
||||
|
||||
VERIFY-BEFORE-LAYOUT (datasheet items -- flagged, not guessed):
|
||||
* exact THAT line-receiver suffix for the gain we want (1240/1243/1246 differ)
|
||||
* the receiver's SO-8 pin NUMBERS (function->pin map below is placeholder)
|
||||
* clamp-diode part choice + pin orientation
|
||||
The TOPOLOGY/connectivity below is correct; only these pin-level details need
|
||||
confirming against the datasheet.
|
||||
VERIFIED against datasheets:
|
||||
* THAT1240 = 0 dB (unity-gain) line receiver; SO-8 pinout per THAT doc 600035
|
||||
rev 05: 1=Ref 2=In- 3=In+ 4=Vee 5=Sense 6=Vout 7=Vcc 8=NC. Supply 6-36V
|
||||
(our +/-15V is in range). Pin-compatible 2nd sources: INA134 / SSM2141.
|
||||
* clamp-diode orientation per KiCad Device:D (pin1=K cathode, pin2=A anode).
|
||||
Open at BOM time only: exact clamp-diode part (fast low-leakage small-signal;
|
||||
1N4148WS is a placeholder).
|
||||
"""
|
||||
import os
|
||||
from skidl import *
|
||||
|
|
@ -30,17 +31,17 @@ p15, n15, gnd = Net("+15V"), Net("-15V"), Net("GND")
|
|||
for n in (p15, n15, gnd):
|
||||
n.drive = POWER
|
||||
|
||||
# ---------- balanced line receiver (THAT124x) : PINOUT TODO-VERIFY ----------
|
||||
RX = Part(name="THAT124x_RX", tool=SKIDL, dest=TEMPLATE, ref_prefix="U",
|
||||
# ---------- THAT1240 balanced line receiver (0 dB) : pinout VERIFIED ----------
|
||||
RX = Part(name="THAT1240", tool=SKIDL, dest=TEMPLATE, ref_prefix="U",
|
||||
footprint="Package_SO:SOIC-8_3.9x4.9mm_P1.27mm",
|
||||
pins=[
|
||||
Pin(num=1, name="IN-", func=Pin.types.INPUT),
|
||||
Pin(num=2, name="REF", func=Pin.types.INPUT),
|
||||
Pin(num=3, name="OUT", func=Pin.types.OUTPUT),
|
||||
Pin(num=1, name="REF", func=Pin.types.INPUT),
|
||||
Pin(num=2, name="IN-", func=Pin.types.INPUT),
|
||||
Pin(num=3, name="IN+", func=Pin.types.INPUT),
|
||||
Pin(num=4, name="V-", func=Pin.types.PWRIN),
|
||||
Pin(num=5, name="V+", func=Pin.types.PWRIN),
|
||||
Pin(num=6, name="SENSE", func=Pin.types.INPUT),
|
||||
Pin(num=7, name="IN+", func=Pin.types.INPUT),
|
||||
Pin(num=5, name="SENSE", func=Pin.types.PASSIVE),
|
||||
Pin(num=6, name="OUT", func=Pin.types.OUTPUT),
|
||||
Pin(num=7, name="V+", func=Pin.types.PWRIN),
|
||||
Pin(num=8, name="NC", func=Pin.types.NOCONNECT),
|
||||
])
|
||||
rx = RX(ref="U1")
|
||||
|
|
@ -57,8 +58,9 @@ def protected_input(src, node_name):
|
|||
node = Net(node_name)
|
||||
src += cblk[1]; cblk[2] += rs[1]; rs[2] += node
|
||||
rb[1] += node; rb[2] += gnd
|
||||
dp[2] += p15; node += dp[1] # clamp high to +15
|
||||
dn[1] += n15; dn[2] += node # clamp low to -15 (avoid rebinding globals)
|
||||
# clamp diodes: KiCad Device:D is pin1=K (cathode), pin2=A (anode).
|
||||
dp[1] += p15; dp[2] += node # high clamp: conducts when node > +15
|
||||
dn[1] += node; dn[2] += n15 # low clamp: conducts when node < -15
|
||||
return node
|
||||
|
||||
rx["IN+"] += protected_input(ain_hot, "RXIN_P")
|
||||
|
|
|
|||
|
|
@ -5,32 +5,32 @@ WARNING: fp-lib-table file was not found. Component footprints are not available
|
|||
WARNING: fp-lib-table file was not found. Component footprints are not available.
|
||||
WARNING: fp-lib-table file was not found. Component footprints are not available.
|
||||
WARNING: fp-lib-table file was not found. Component footprints are not available.
|
||||
WARNING: Missing tag on THAT124x_RX instantiated at /work/hardware/eda/circuits/stage1_input.py:46.
|
||||
WARNING: Random tag NiUcdSBKvZ generated for THAT124x_RX.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:54.
|
||||
WARNING: Random tag UDuxvr_uTL generated for C.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:55.
|
||||
WARNING: Random tag _Np5DvK_aE generated for R.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:55.
|
||||
WARNING: Random tag 7TLEUp_48E generated for R.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag e2BBosboqS generated for D.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag ngnho2nWKf generated for D.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:54.
|
||||
WARNING: Random tag WXfeI7Gfj2 generated for C.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:55.
|
||||
WARNING: Random tag jKB97sf61u generated for R.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:55.
|
||||
WARNING: Random tag mXEcsSvVUJ generated for R.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag aEBPrkC6b9 generated for D.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag vSi9f4M7Zg generated for D.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:74.
|
||||
WARNING: Random tag I5Ulz7qVtA generated for C.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:74.
|
||||
WARNING: Random tag clPAosAbcJ generated for C.
|
||||
WARNING: Missing tag on THAT1240 instantiated at /work/hardware/eda/circuits/stage1_input.py:47.
|
||||
WARNING: Random tag QgKieWmNoe generated for THAT1240.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:55.
|
||||
WARNING: Random tag iOc5_iqozn generated for C.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag pZqcRwtR8R generated for R.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag YRKF1YkzBd generated for R.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:57.
|
||||
WARNING: Random tag 9_z9ZD6kzY generated for D.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:57.
|
||||
WARNING: Random tag BmXsrS9O5J generated for D.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:55.
|
||||
WARNING: Random tag AA57mtziiu generated for C.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag OlgSnmTOjl generated for R.
|
||||
WARNING: Missing tag on R instantiated at /work/hardware/eda/circuits/stage1_input.py:56.
|
||||
WARNING: Random tag cs8OUXPRRM generated for R.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:57.
|
||||
WARNING: Random tag i9mJhNwc3K generated for D.
|
||||
WARNING: Missing tag on D instantiated at /work/hardware/eda/circuits/stage1_input.py:57.
|
||||
WARNING: Random tag UUQtRJt6zT generated for D.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:76.
|
||||
WARNING: Random tag MU_6d6hLHv generated for C.
|
||||
WARNING: Missing tag on C instantiated at /work/hardware/eda/circuits/stage1_input.py:76.
|
||||
WARNING: Random tag jSRPH3NSVb generated for C.
|
||||
WARNING: Missing tag on instantiated at /work/hardware/kicad/<frozen importlib._bootstrap>:488.
|
||||
INFO: 31 warnings found while generating netlist.
|
||||
INFO: 0 errors found while generating netlist.
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@ from skidl.pin import pin_types
|
|||
SKIDL_lib_version = '0.0.1'
|
||||
|
||||
stage1_input = SchLib(tool=SKIDL).add_parts(*[
|
||||
Part(**{ 'name':'THAT124x_RX', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'THAT124x_RX'}), 'ref_prefix':'U', 'fplist':None, 'footprint':'Package_SO:SOIC-8_3.9x4.9mm_P1.27mm', 'keywords':None, 'description':'', 'datasheet':None, 'pins':[
|
||||
Pin(num='1',name='IN-',func=pin_types.INPUT),
|
||||
Pin(num='2',name='REF',func=pin_types.INPUT),
|
||||
Pin(num='3',name='OUT',func=pin_types.OUTPUT),
|
||||
Part(**{ 'name':'THAT1240', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'THAT1240'}), 'ref_prefix':'U', 'fplist':None, 'footprint':'Package_SO:SOIC-8_3.9x4.9mm_P1.27mm', 'keywords':None, 'description':'', 'datasheet':None, 'pins':[
|
||||
Pin(num='1',name='REF',func=pin_types.INPUT),
|
||||
Pin(num='2',name='IN-',func=pin_types.INPUT),
|
||||
Pin(num='3',name='IN+',func=pin_types.INPUT),
|
||||
Pin(num='4',name='V-',func=pin_types.PWRIN),
|
||||
Pin(num='5',name='V+',func=pin_types.PWRIN),
|
||||
Pin(num='6',name='SENSE',func=pin_types.INPUT),
|
||||
Pin(num='7',name='IN+',func=pin_types.INPUT),
|
||||
Pin(num='5',name='SENSE',func=pin_types.PASSIVE),
|
||||
Pin(num='6',name='OUT',func=pin_types.OUTPUT),
|
||||
Pin(num='7',name='V+',func=pin_types.PWRIN),
|
||||
Pin(num='8',name='NC',func=pin_types.NOCONNECT)] }),
|
||||
Part(**{ 'name':'C', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'C'}), 'ref_prefix':'C', 'fplist':[''], 'footprint':'Capacitor_SMD:C_1206_3216Metric', 'keywords':'cap capacitor', 'description':'Unpolarized capacitor', 'datasheet':'~', 'pins':[
|
||||
Pin(num='1',name='~',func=pin_types.PASSIVE,unit=1),
|
||||
|
|
|
|||
Loading…
Reference in a new issue