From 5f6f7896640250589e116c27b76162fc41c5b8f7 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sat, 5 Jul 2014 22:55:56 -0600 Subject: [PATCH] initial schematic capture for USB class-D amplifier --- License.pdf | Bin 0 -> 82789 bytes Makefile | 78 ++++++ attribs | 6 + classd.sch | 715 ++++++++++++++++++++++++++++++++++++++++++++++++++++ gafrc | 3 + project | 12 + usb.sch | 364 ++++++++++++++++++++++++++ 7 files changed, 1178 insertions(+) create mode 100644 License.pdf create mode 100644 Makefile create mode 100644 attribs create mode 100644 classd.sch create mode 100644 gafrc create mode 100644 project create mode 100644 usb.sch diff --git a/License.pdf b/License.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01fceb29dae570254152316be4e3580cfc2f6875 GIT binary patch literal 82789 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 aAVSl{73%EzJ1zwf%s^O-jL%eMu>LRYPL+fJ literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ffe4523 --- /dev/null +++ b/Makefile @@ -0,0 +1,78 @@ +PROJECT=usbclassd +AM=../altusmetrum +SCHEME=$(AM)/scheme +SHEETS=usb.sch classd.sch + +# intentionally want to rebuild drc and bom on every invocation +all: drc partslist partslist.csv pcb + +drc: $(SHEETS) Makefile + -gnetlist -g drc2 $(SHEETS) -o $(PROJECT).drc + +partslist: $(SHEETS) Makefile + gnetlist -g bom -o $(PROJECT).unsorted $(SHEETS) + head -n1 $(PROJECT).unsorted > partslist + tail -n+2 $(PROJECT).unsorted | sort >> partslist + rm -f $(PROJECT).unsorted + +partslist.csv: $(SHEETS) Makefile + gnetlist -L $(SCHEME) -g partslistgag -o $(PROJECT).csvtmp $(SHEETS) + (head -n1 $(PROJECT).csvtmp; tail -n+2 $(PROJECT).csvtmp | sort -t \, -k 8) > $@ && rm -f $(PROJECT).csvtmp + + +partslist.dk: $(SHEETS) Makefile $(SCHEME)/gnet-partslist-bom.scm + gnetlist -L $(SCHEME) -g partslist-bom -Ovendor=digikey -o $@ $(SHEETS) + +partslist.mouser: $(SHEETS) Makefile $(SCHEME)/gnet-partslist-bom.scm + gnetlist -L $(SCHEME) -g partslist-bom -Ovendor=mouser -o $@ $(SHEETS) + +pcb: $(SHEETS) project Makefile + gsch2pcb project + +$(PROJECT).xy: $(PROJECT).pcb + pcb -x bom $(PROJECT).pcb + +$(PROJECT).bottom.gbr: $(PROJECT).pcb + pcb -x gerber $(PROJECT).pcb + +zip: $(PROJECT).bottom.gbr $(PROJECT).bottommask.gbr $(PROJECT).fab.gbr $(PROJECT).top.gbr $(PROJECT).topmask.gbr $(PROJECT).toppaste.gbr $(PROJECT).topsilk.gbr $(PROJECT).plated-drill.cnc $(PROJECT).xy Makefile # $(PROJECT).xls + zip $(PROJECT).zip $(PROJECT).*.gbr $(PROJECT).*.cnc $(PROJECT).xy # $(PROJECT).xls + +oshpark: $(PROJECT).bottom.gbr $(PROJECT).bottommask.gbr $(PROJECT).top.gbr $(PROJECT).topmask.gbr $(PROJECT).topsilk.gbr $(PROJECT).plated-drill.cnc + mv $(PROJECT).bottom.gbr bottom\ layer.ger + mv $(PROJECT).bottommask.gbr bottom\ solder\ mask.ger + mv $(PROJECT).bottomsilk.gbr bottom\ silk\ screen.ger + mv $(PROJECT).outline.gbr board\ outline.ger + mv $(PROJECT).top.gbr top\ layer.ger + mv $(PROJECT).topmask.gbr top\ solder\ mask.ger + mv $(PROJECT).topsilk.gbr top\ silk\ screen.ger + mv $(PROJECT).plated-drill.cnc drills.xln + zip $(PROJECT)-oshpark.zip *.ger *.xln + +stencil: $(PROJECT).bottom.gbr $(PROJECT).toppaste.gbr $(PROJECT).outline.gbr + zip $(PROJECT)-stencil.zip $(PROJECT).toppaste.gbr $(PROJECT).outline.gbr + +clean: + rm -f *.bom *.drc *.log *~ $(PROJECT).ps *.gbr *.cnc *bak* *- *.zip + rm -f *.net *.xy *.cmd *.png partslist partslist.csv *.ger *.xln + rm -f *.partslist *.new.pcb *.unsorted $(PROJECT).xls muffin-5267.pdf + +muffins: partslist.csv $(AM)/glabels/muffin-short-5267.glabels + glabels-3-batch $(AM)/glabels/muffin-short-5267.glabels \ + -i partslist.csv -o muffin-5267.ps >/dev/null && \ + ps2pdf muffin-5267.ps && rm muffin-5267.ps + +$(PROJECT).ps: $(SHEETS) + gschem -p -o $(PROJECT).ps -s /usr/share/gEDA/scheme/print.scm $(SHEETS) + +$(PROJECT).pdf: $(PROJECT).ps + ps2pdf $(PROJECT).ps + +$(PROJECT)-pcb.ps: $(PROJECT).pcb + pcb -x ps --psfile $(PROJECT)-pcb.ps --media Letter $(PROJECT).pcb + +$(PROJECT)-pcb.pdf: $(PROJECT)-pcb.ps + ps2pdf $(PROJECT)-pcb.ps + +pdf: $(PROJECT).pdf $(PROJECT)-pcb.pdf + diff --git a/attribs b/attribs new file mode 100644 index 0000000..92a91e7 --- /dev/null +++ b/attribs @@ -0,0 +1,6 @@ +value +vendor +vendor_part_number +footprint +loadstatus +device diff --git a/classd.sch b/classd.sch new file mode 100644 index 0000000..286f81c --- /dev/null +++ b/classd.sch @@ -0,0 +1,715 @@ +v 20130925 2 +T 73400 52800 9 30 1 0 0 0 1 +Class D Audio Amp +T 77900 51400 9 10 1 0 0 0 1 +0.1 +T 75500 51400 9 10 1 0 0 0 1 +1 +T 76100 51400 9 10 1 0 0 0 1 +1 +T 73200 51400 9 10 1 0 0 0 1 +usbclassd.sch +T 73200 51100 9 10 1 0 0 0 1 +http://altusmetrum.com/ +C 57500 51000 0 0 0 title-C-bdale.sym +C 66800 56500 1 0 0 TPA31xxD2.sym +{ +T 67195 63500 5 10 1 1 0 0 1 +refdes=U2 +T 66800 56500 5 10 1 1 0 0 1 +device=IC +T 66800 56500 5 10 1 1 0 0 1 +value=TPA3116D2 +T 66800 56500 5 10 1 1 0 0 1 +vendor=digikey +T 66800 56500 5 10 1 1 0 0 1 +vendor_part_number=296-30433-5-ND +} +C 63300 64300 1 90 0 capacitor.sym +{ +T 62600 64500 5 10 0 0 90 0 1 +device=CAPACITOR +T 63600 65100 5 10 1 1 180 0 1 +refdes=C57 +T 62400 64500 5 10 0 0 90 0 1 +symversion=0.1 +T 63300 64400 5 10 1 1 0 0 1 +value=100nF +T 63300 64300 5 10 1 1 0 0 1 +vendor=digikey +} +C 72300 62400 1 0 0 inductor.sym +{ +T 72500 62900 5 10 0 0 0 0 1 +device=INDUCTOR +T 72400 62700 5 10 1 1 0 0 1 +refdes=L7 +T 72500 63100 5 10 0 0 0 0 1 +symversion=0.1 +T 72700 62700 5 10 1 1 0 0 1 +value=10uH +T 72300 62400 5 10 1 1 0 0 1 +vendor=digikey +T 72300 62400 5 10 1 1 0 0 1 +vendor_part_number=513-1037-1-ND +} +C 65100 57400 1 0 0 resistor.sym +{ +T 65400 57800 5 10 0 0 0 0 1 +device=RESISTOR +T 65100 57700 5 10 1 1 0 0 1 +refdes=R14 +T 65600 57700 5 10 1 1 0 0 1 +value=100k +T 65100 57400 5 10 1 1 0 0 1 +vendor=digikey +} +C 63000 64000 1 0 0 gnd.sym +C 66100 62800 1 0 0 gnd.sym +C 66100 57200 1 0 0 gnd.sym +N 66000 57500 66800 57500 4 +N 66800 57900 66200 57900 4 +N 66200 57500 66200 58300 4 +N 66800 58300 66200 58300 4 +N 66800 58700 64900 58700 4 +N 64900 57500 64900 58700 4 +N 65100 57500 61700 57500 4 +{ +T 61700 57600 5 10 1 1 0 0 1 +netname=mute_lr +} +C 62900 59700 1 90 0 capacitor.sym +{ +T 62200 59900 5 10 0 0 90 0 1 +device=CAPACITOR +T 63200 60500 5 10 1 1 180 0 1 +refdes=C15 +T 62000 59900 5 10 0 0 90 0 1 +symversion=0.1 +T 62900 59800 5 10 1 1 0 0 1 +value=1uF +T 62900 59700 5 10 1 1 0 0 1 +vendor=digikey +} +C 63600 60200 1 90 0 resistor.sym +{ +T 63200 60500 5 10 0 0 90 0 1 +device=RESISTOR +T 63700 60700 5 10 1 1 0 0 1 +refdes=R11 +T 64100 60600 5 10 1 1 180 0 1 +value=100k +T 63600 60200 5 10 1 1 0 0 1 +vendor=digikey +} +C 63600 59300 1 90 0 resistor.sym +{ +T 63200 59600 5 10 0 0 90 0 1 +device=RESISTOR +T 63700 59800 5 10 1 1 0 0 1 +refdes=R12 +T 64000 59700 5 10 1 1 180 0 1 +value=20k +T 63600 59300 5 10 1 1 0 0 1 +vendor=digikey +} +C 64000 58800 1 180 0 capacitor.sym +{ +T 63800 58100 5 10 0 0 180 0 1 +device=CAPACITOR +T 63100 58800 5 10 1 1 0 0 1 +refdes=C13 +T 63800 57900 5 10 0 0 180 0 1 +symversion=0.1 +T 63700 58800 5 10 1 1 0 0 1 +value=1uF +T 64000 58800 5 10 1 1 0 0 1 +vendor=digikey +} +C 64000 58200 1 180 0 capacitor.sym +{ +T 63800 57500 5 10 0 0 180 0 1 +device=CAPACITOR +T 63100 58200 5 10 1 1 0 0 1 +refdes=C14 +T 63800 57300 5 10 0 0 180 0 1 +symversion=0.1 +T 63700 58200 5 10 1 1 0 0 1 +value=1uF +T 64000 58200 5 10 1 1 0 0 1 +vendor=digikey +} +N 66800 59100 64700 59100 4 +N 64700 59100 64700 58000 4 +N 64700 58000 64000 58000 4 +N 66800 59500 64500 59500 4 +N 64500 59500 64500 58600 4 +N 64500 58600 64000 58600 4 +N 63100 58600 61700 58600 4 +{ +T 61700 58700 5 10 1 1 0 0 1 +netname=audio_left +} +N 66800 63100 66200 63100 4 +N 66800 62700 61700 62700 4 +{ +T 61700 62800 5 10 1 1 0 0 1 +netname=\_suspend +} +N 66800 62300 66500 62300 4 +N 66500 62300 66500 62700 4 +C 64000 62300 1 180 0 capacitor.sym +{ +T 63800 61600 5 10 0 0 180 0 1 +device=CAPACITOR +T 63800 61400 5 10 0 0 180 0 1 +symversion=0.1 +T 63100 62300 5 10 1 1 0 0 1 +refdes=C13 +T 63700 62300 5 10 1 1 0 0 1 +value=1uF +T 64000 62300 5 10 1 1 0 0 1 +vendor=digikey +} +C 64000 61700 1 180 0 capacitor.sym +{ +T 63800 61000 5 10 0 0 180 0 1 +device=CAPACITOR +T 63800 60800 5 10 0 0 180 0 1 +symversion=0.1 +T 63100 61700 5 10 1 1 0 0 1 +refdes=C14 +T 63700 61700 5 10 1 1 0 0 1 +value=1uF +T 64000 61700 5 10 1 1 0 0 1 +vendor=digikey +} +N 63100 62100 61700 62100 4 +{ +T 61700 62200 5 10 1 1 0 0 1 +netname=audio_right +} +N 66800 61900 65700 61900 4 +N 65700 61900 65700 62100 4 +N 65700 62100 64000 62100 4 +N 66800 61500 64000 61500 4 +C 64200 63800 1 90 0 resistor.sym +{ +T 63800 64100 5 10 0 0 90 0 1 +device=RESISTOR +T 64300 64300 5 10 1 1 0 0 1 +refdes=R13 +T 64700 64200 5 10 1 1 180 0 1 +value=3.3 +T 64200 63800 5 10 1 1 0 0 1 +vendor=digikey +} +N 64100 63800 64100 62700 4 +N 63100 65200 72800 65200 4 +N 64100 65200 64100 64700 4 +N 62700 61100 66800 61100 4 +N 62700 61100 62700 60600 4 +N 62700 59300 64300 59300 4 +N 62700 59300 62700 59700 4 +C 62600 59000 1 0 0 gnd.sym +N 66800 60700 66500 60700 4 +N 66500 60700 66500 61100 4 +N 63500 60200 64300 60200 4 +N 64300 60200 64300 60300 4 +N 64300 60300 66800 60300 4 +N 66800 59900 64300 59900 4 +N 64300 59900 64300 59300 4 +C 65100 64300 1 90 0 resistor.sym +{ +T 64700 64600 5 10 0 0 90 0 1 +device=RESISTOR +T 65200 64800 5 10 1 1 0 0 1 +refdes=R13 +T 65500 64700 5 10 1 1 180 0 1 +value=3.3 +T 65100 64300 5 10 1 1 0 0 1 +vendor=digikey +} +C 65200 63400 1 90 0 capacitor.sym +{ +T 64500 63600 5 10 0 0 90 0 1 +device=CAPACITOR +T 65500 64200 5 10 1 1 180 0 1 +refdes=C57 +T 64300 63600 5 10 0 0 90 0 1 +symversion=0.1 +T 65200 63500 5 10 1 1 0 0 1 +value=100nF +T 65200 63400 5 10 1 1 0 0 1 +vendor=digikey +} +C 64900 63100 1 0 0 gnd.sym +N 70100 63100 70500 63100 4 +N 70500 62700 70500 65200 4 +N 70100 62700 70500 62700 4 +C 68300 65200 1 0 0 vcc.sym +C 71100 64300 1 90 0 capacitor.sym +{ +T 70400 64500 5 10 0 0 90 0 1 +device=CAPACITOR +T 71400 65100 5 10 1 1 180 0 1 +refdes=C20 +T 70200 64500 5 10 0 0 90 0 1 +symversion=0.1 +T 71100 64400 5 10 1 1 0 0 1 +value=1nF +T 71100 64300 5 10 1 1 0 0 1 +vendor=digikey +} +C 72000 64300 1 90 0 capacitor.sym +{ +T 71300 64500 5 10 0 0 90 0 1 +device=CAPACITOR +T 72300 65100 5 10 1 1 180 0 1 +refdes=C21 +T 71100 64500 5 10 0 0 90 0 1 +symversion=0.1 +T 72000 64400 5 10 1 1 0 0 1 +value=100nF +T 72000 64300 5 10 1 1 0 0 1 +vendor=digikey +} +C 73000 64300 1 90 0 capacitor.sym +{ +T 72300 64500 5 10 0 0 90 0 1 +device=CAPACITOR +T 73300 65100 5 10 1 1 180 0 1 +refdes=C22 +T 72100 64500 5 10 0 0 90 0 1 +symversion=0.1 +T 73000 64400 5 10 1 1 0 0 1 +value=220uF +T 73000 64300 5 10 1 1 0 0 1 +vendor=digikey +} +N 70900 64300 72800 64300 4 +C 71700 64000 1 0 0 gnd.sym +C 70700 56200 1 90 0 capacitor.sym +{ +T 70000 56400 5 10 0 0 90 0 1 +device=CAPACITOR +T 69800 56400 5 10 0 0 90 0 1 +symversion=0.1 +T 71000 57000 5 10 1 1 180 0 1 +refdes=C23 +T 70700 56300 5 10 1 1 0 0 1 +value=1nF +T 70700 56200 5 10 1 1 0 0 1 +vendor=digikey +} +C 71600 56200 1 90 0 capacitor.sym +{ +T 70900 56400 5 10 0 0 90 0 1 +device=CAPACITOR +T 70700 56400 5 10 0 0 90 0 1 +symversion=0.1 +T 71900 57000 5 10 1 1 180 0 1 +refdes=C24 +T 71600 56300 5 10 1 1 0 0 1 +value=100nF +T 71600 56200 5 10 1 1 0 0 1 +vendor=digikey +} +C 72600 56200 1 90 0 capacitor.sym +{ +T 71900 56400 5 10 0 0 90 0 1 +device=CAPACITOR +T 71700 56400 5 10 0 0 90 0 1 +symversion=0.1 +T 72900 57000 5 10 1 1 180 0 1 +refdes=C25 +T 72600 56400 5 10 1 1 0 0 1 +value=220uF +T 72600 56200 5 10 1 1 0 0 1 +vendor=digikey +} +N 70500 56200 72400 56200 4 +C 71300 55900 1 0 0 gnd.sym +N 70100 57100 72400 57100 4 +N 70100 57500 70500 57500 4 +N 70500 57100 70500 57900 4 +N 70100 57900 70500 57900 4 +C 66700 56400 1 0 0 gnd.sym +C 72200 57100 1 0 0 vcc.sym +C 71800 62500 1 180 0 capacitor.sym +{ +T 71600 61800 5 10 0 0 180 0 1 +device=CAPACITOR +T 71600 61600 5 10 0 0 180 0 1 +symversion=0.1 +T 70900 62500 5 10 1 1 0 0 1 +refdes=C16 +T 71500 62500 5 10 1 1 0 0 1 +value=220nF +T 71800 62500 5 10 1 1 0 0 1 +vendor=digikey +} +N 70900 62300 70100 62300 4 +N 71800 62300 71800 61900 4 +N 71800 61900 70100 61900 4 +C 71800 60900 1 180 0 capacitor.sym +{ +T 71600 60200 5 10 0 0 180 0 1 +device=CAPACITOR +T 71600 60000 5 10 0 0 180 0 1 +symversion=0.1 +T 70900 60400 5 10 1 1 0 0 1 +refdes=C17 +T 71500 60400 5 10 1 1 0 0 1 +value=220nF +T 71800 60900 5 10 1 1 0 0 1 +vendor=digikey +} +C 71800 60100 1 180 0 capacitor.sym +{ +T 71600 59400 5 10 0 0 180 0 1 +device=CAPACITOR +T 71600 59200 5 10 0 0 180 0 1 +symversion=0.1 +T 70900 60100 5 10 1 1 0 0 1 +refdes=C18 +T 71500 60100 5 10 1 1 0 0 1 +value=220nF +T 71800 60100 5 10 1 1 0 0 1 +vendor=digikey +} +C 71800 58500 1 180 0 capacitor.sym +{ +T 71600 57800 5 10 0 0 180 0 1 +device=CAPACITOR +T 71600 57600 5 10 0 0 180 0 1 +symversion=0.1 +T 70900 58000 5 10 1 1 0 0 1 +refdes=C19 +T 71500 58000 5 10 1 1 0 0 1 +value=220nF +T 71800 58500 5 10 1 1 0 0 1 +vendor=digikey +} +N 70900 58300 70100 58300 4 +N 70100 58700 71800 58700 4 +N 71800 58700 71800 58300 4 +N 70900 59900 70100 59900 4 +N 70900 60700 70100 60700 4 +N 71800 59900 71800 59500 4 +N 71800 59500 70100 59500 4 +N 71800 60700 71800 61100 4 +N 71800 61100 70100 61100 4 +C 70200 61200 1 0 0 gnd.sym +C 70200 60000 1 0 0 gnd.sym +C 70200 58800 1 0 0 gnd.sym +N 70300 59100 70100 59100 4 +N 70300 60300 70100 60300 4 +N 70300 61500 70100 61500 4 +C 73400 61600 1 90 0 capacitor.sym +{ +T 72700 61800 5 10 0 0 90 0 1 +device=CAPACITOR +T 73700 62400 5 10 1 1 180 0 1 +refdes=C26 +T 72500 61800 5 10 0 0 90 0 1 +symversion=0.1 +T 73400 61700 5 10 1 1 0 0 1 +value=680nF +T 73400 61600 5 10 1 1 0 0 1 +vendor=digikey +} +C 73400 60700 1 90 0 capacitor.sym +{ +T 72700 60900 5 10 0 0 90 0 1 +device=CAPACITOR +T 73700 61500 5 10 1 1 180 0 1 +refdes=C27 +T 72500 60900 5 10 0 0 90 0 1 +symversion=0.1 +T 73400 60800 5 10 1 1 0 0 1 +value=680nF +T 73400 60700 5 10 1 1 0 0 1 +vendor=digikey +} +C 72300 60600 1 0 0 inductor.sym +{ +T 72500 61100 5 10 0 0 0 0 1 +device=INDUCTOR +T 72400 60400 5 10 1 1 0 0 1 +refdes=L8 +T 72500 61300 5 10 0 0 0 0 1 +symversion=0.1 +T 72700 60400 5 10 1 1 0 0 1 +value=10uH +T 72300 60600 5 10 1 1 0 0 1 +vendor=digikey +T 72300 60600 5 10 1 1 0 0 1 +vendor_part_number=513-1037-1-ND +} +C 72700 61300 1 0 0 gnd.sym +N 73200 61600 72800 61600 4 +N 71800 62300 72300 62300 4 +N 72300 62300 72300 62500 4 +N 72300 60700 71800 60700 4 +C 72300 59800 1 0 0 inductor.sym +{ +T 72500 60300 5 10 0 0 0 0 1 +device=INDUCTOR +T 72500 60500 5 10 0 0 0 0 1 +symversion=0.1 +T 72400 60100 5 10 1 1 0 0 1 +refdes=L10 +T 72800 60100 5 10 1 1 0 0 1 +value=10uH +T 72300 59800 5 10 1 1 0 0 1 +vendor=digikey +T 72300 59800 5 10 1 1 0 0 1 +vendor_part_number=513-1037-1-ND +} +C 73400 59000 1 90 0 capacitor.sym +{ +T 72700 59200 5 10 0 0 90 0 1 +device=CAPACITOR +T 72500 59200 5 10 0 0 90 0 1 +symversion=0.1 +T 73700 59800 5 10 1 1 180 0 1 +refdes=C28 +T 73400 59100 5 10 1 1 0 0 1 +value=680nF +T 73400 59000 5 10 1 1 0 0 1 +vendor=digikey +} +C 73400 58100 1 90 0 capacitor.sym +{ +T 72700 58300 5 10 0 0 90 0 1 +device=CAPACITOR +T 72500 58300 5 10 0 0 90 0 1 +symversion=0.1 +T 73700 58900 5 10 1 1 180 0 1 +refdes=C29 +T 73400 58200 5 10 1 1 0 0 1 +value=680nF +T 73400 58100 5 10 1 1 0 0 1 +vendor=digikey +} +C 72300 58000 1 0 0 inductor.sym +{ +T 72500 58500 5 10 0 0 0 0 1 +device=INDUCTOR +T 72500 58700 5 10 0 0 0 0 1 +symversion=0.1 +T 72400 57800 5 10 1 1 0 0 1 +refdes=L9 +T 72700 57800 5 10 1 1 0 0 1 +value=10uH +T 72300 58000 5 10 1 1 0 0 1 +vendor=digikey +T 72300 58000 5 10 1 1 0 0 1 +vendor_part_number=513-1037-1-ND +} +C 72700 58700 1 0 0 gnd.sym +N 73200 59000 72800 59000 4 +N 72300 59900 71800 59900 4 +N 71800 58300 72300 58300 4 +N 72300 58300 72300 58100 4 +C 74600 63000 1 90 0 capacitor.sym +{ +T 73900 63200 5 10 0 0 90 0 1 +device=CAPACITOR +T 74900 63800 5 10 1 1 180 0 1 +refdes=C30 +T 73700 63200 5 10 0 0 90 0 1 +symversion=0.1 +T 74600 63100 5 10 1 1 0 0 1 +value=1nF +T 74600 63000 5 10 1 1 0 0 1 +vendor=digikey +} +C 74600 61200 1 90 0 capacitor.sym +{ +T 73900 61400 5 10 0 0 90 0 1 +device=CAPACITOR +T 74900 62000 5 10 1 1 180 0 1 +refdes=C31 +T 73700 61400 5 10 0 0 90 0 1 +symversion=0.1 +T 74600 61300 5 10 1 1 0 0 1 +value=1nF +T 74600 61200 5 10 1 1 0 0 1 +vendor=digikey +} +C 75600 62500 1 90 0 capacitor.sym +{ +T 74900 62700 5 10 0 0 90 0 1 +device=CAPACITOR +T 74700 62700 5 10 0 0 90 0 1 +symversion=0.1 +T 75900 63300 5 10 1 1 180 0 1 +refdes=C34 +T 75600 62600 5 10 1 1 0 0 1 +value=10nF +T 75600 62500 5 10 1 1 0 0 1 +vendor=digikey +} +C 75600 61600 1 90 0 capacitor.sym +{ +T 74900 61800 5 10 0 0 90 0 1 +device=CAPACITOR +T 74700 61800 5 10 0 0 90 0 1 +symversion=0.1 +T 75900 62400 5 10 1 1 180 0 1 +refdes=C37 +T 75600 61700 5 10 1 1 0 0 1 +value=10nF +T 75600 61600 5 10 1 1 0 0 1 +vendor=digikey +} +C 75500 63400 1 90 0 resistor.sym +{ +T 75100 63700 5 10 0 0 90 0 1 +device=RESISTOR +T 75600 63900 5 10 1 1 0 0 1 +refdes=R15 +T 75900 63800 5 10 1 1 180 0 1 +value=3.3 +T 75500 63400 5 10 1 1 0 0 1 +vendor=digikey +} +C 75500 60700 1 90 0 resistor.sym +{ +T 75100 61000 5 10 0 0 90 0 1 +device=RESISTOR +T 75600 61200 5 10 1 1 0 0 1 +refdes=R16 +T 75900 61100 5 10 1 1 180 0 1 +value=3.3 +T 75500 60700 5 10 1 1 0 0 1 +vendor=digikey +} +N 74400 63000 74400 62100 4 +C 74800 62200 1 0 0 gnd.sym +N 74400 62500 75400 62500 4 +N 73200 60700 76100 60700 4 +N 74400 61200 74400 60700 4 +N 73900 64300 76300 64300 4 +N 73900 64300 73900 62500 4 +N 73200 62500 73900 62500 4 +N 74400 63900 74400 64300 4 +C 74600 58600 1 90 0 capacitor.sym +{ +T 73900 58800 5 10 0 0 90 0 1 +device=CAPACITOR +T 73700 58800 5 10 0 0 90 0 1 +symversion=0.1 +T 74900 59400 5 10 1 1 180 0 1 +refdes=C32 +T 74600 58700 5 10 1 1 0 0 1 +value=1nF +T 74600 58600 5 10 1 1 0 0 1 +vendor=digikey +} +C 74600 56800 1 90 0 capacitor.sym +{ +T 73900 57000 5 10 0 0 90 0 1 +device=CAPACITOR +T 73700 57000 5 10 0 0 90 0 1 +symversion=0.1 +T 74900 57600 5 10 1 1 180 0 1 +refdes=C33 +T 74600 56900 5 10 1 1 0 0 1 +value=1nF +T 74600 56800 5 10 1 1 0 0 1 +vendor=digikey +} +C 75600 58100 1 90 0 capacitor.sym +{ +T 74900 58300 5 10 0 0 90 0 1 +device=CAPACITOR +T 74700 58300 5 10 0 0 90 0 1 +symversion=0.1 +T 75900 58900 5 10 1 1 180 0 1 +refdes=C38 +T 75600 58200 5 10 1 1 0 0 1 +value=10nF +T 75600 58100 5 10 1 1 0 0 1 +vendor=digikey +} +C 75600 57200 1 90 0 capacitor.sym +{ +T 74900 57400 5 10 0 0 90 0 1 +device=CAPACITOR +T 74700 57400 5 10 0 0 90 0 1 +symversion=0.1 +T 75900 58000 5 10 1 1 180 0 1 +refdes=C40 +T 75600 57300 5 10 1 1 0 0 1 +value=10nF +T 75600 57200 5 10 1 1 0 0 1 +vendor=digikey +} +C 75500 59000 1 90 0 resistor.sym +{ +T 75100 59300 5 10 0 0 90 0 1 +device=RESISTOR +T 75600 59500 5 10 1 1 0 0 1 +refdes=R17 +T 75900 59400 5 10 1 1 180 0 1 +value=3.3 +T 75500 59000 5 10 1 1 0 0 1 +vendor=digikey +} +C 75500 56300 1 90 0 resistor.sym +{ +T 75100 56600 5 10 0 0 90 0 1 +device=RESISTOR +T 75600 56800 5 10 1 1 0 0 1 +refdes=R18 +T 75900 56700 5 10 1 1 180 0 1 +value=3.3 +T 75500 56300 5 10 1 1 0 0 1 +vendor=digikey +} +N 74400 58600 74400 57700 4 +C 74800 57800 1 0 0 gnd.sym +N 74400 58100 75400 58100 4 +N 74400 56800 74400 56300 4 +N 74400 59500 74400 59900 4 +N 73200 59900 76100 59900 4 +N 73900 56300 76300 56300 4 +N 73900 56300 73900 58100 4 +N 73200 58100 73900 58100 4 +T 72600 63200 9 10 1 0 0 0 1 +LC Filters +T 74000 64600 9 10 1 0 0 0 1 +EMI C-RC Snubbers +C 76300 59600 1 0 0 conn-4.sym +{ +T 76700 61200 5 10 1 1 0 0 1 +refdes=J3 +T 76300 59600 5 10 0 1 0 0 1 +vendor=digikey +T 76300 59600 5 10 0 1 0 0 1 +vendor_part_number=ED2611-ND +T 76400 59300 5 10 1 1 0 0 1 +value=speakers +T 76300 59600 5 10 1 1 0 0 1 +device=CONNECTOR +} +N 76300 64300 76300 60900 4 +N 76300 60500 76100 60500 4 +N 76100 60500 76100 60700 4 +N 76300 60100 76100 60100 4 +N 76100 60100 76100 59900 4 +N 76300 59700 76300 56300 4 +T 77200 59600 9 10 1 0 0 0 7 +P + Right +N + +P + Left +N +C 61900 65600 1 0 0 gnd.sym +C 63000 61200 1 0 0 gnd.sym +C 63000 57700 1 0 0 gnd.sym diff --git a/gafrc b/gafrc new file mode 100644 index 0000000..9e10ee9 --- /dev/null +++ b/gafrc @@ -0,0 +1,3 @@ +; empty the library path and populate it with only our own symbols +(reset-component-library) +(load "../altusmetrum/gafrc") diff --git a/project b/project new file mode 100644 index 0000000..375a820 --- /dev/null +++ b/project @@ -0,0 +1,12 @@ +# List all the schematics to be netlisted and laid out on the pc board +schematics usb.sch classd.sch + +# for an output-name of foo, gsch2pcb generates files foo.net, foo.pcb, +# and foo.new.pcb. if there is no output name specified, the file names +# are derived from the first listed schematic... +output-name usbclassd + +elements-dir ../altusmetrum/packages + +# stick to newlib elements, don't use the older/odder m4 stuff +skip-m4 diff --git a/usb.sch b/usb.sch new file mode 100644 index 0000000..f6b4859 --- /dev/null +++ b/usb.sch @@ -0,0 +1,364 @@ +v 20130925 2 +T 73200 52800 9 30 1 0 0 0 1 +USB Audio Interface +T 77900 51400 9 10 1 0 0 0 1 +0.1 +T 75500 51400 9 10 1 0 0 0 1 +1 +T 76100 51400 9 10 1 0 0 0 1 +1 +T 73200 51400 9 10 1 0 0 0 1 +usbclassd.sch +T 73200 51100 9 10 1 0 0 0 1 +http://altusmetrum.com/ +C 57500 51000 0 0 0 title-C-bdale.sym +C 66600 56900 1 0 0 PCM2705.sym +{ +T 66995 62700 5 10 1 1 0 0 1 +refdes=U1 +T 66600 56900 5 10 0 1 0 0 1 +vendor=digikey +T 66600 56900 5 10 0 1 0 0 1 +vendor_part_number=296-29562-1-ND +T 68100 62700 5 10 1 1 0 0 1 +value=PCM2705CDBR +T 66600 56900 5 10 0 1 0 0 1 +footprint=28-SSOP +} +C 61900 57900 1 0 1 USBmicroB.sym +{ +T 61205 60300 5 10 1 1 0 6 1 +refdes=J2 +} +C 65400 59400 1 0 0 resistor.sym +{ +T 65700 59800 5 10 0 0 0 0 1 +device=RESISTOR +T 65500 59600 5 10 1 1 0 0 1 +refdes=R3 +T 66000 59600 5 10 1 1 0 0 1 +value=22 +} +C 65400 59000 1 0 0 resistor.sym +{ +T 65700 59400 5 10 0 0 0 0 1 +device=RESISTOR +T 65500 59200 5 10 1 1 0 0 1 +refdes=R4 +T 66000 59200 5 10 1 1 0 0 1 +value=22 +} +N 65400 59100 61900 59100 4 +N 65400 59500 61900 59500 4 +N 66600 58700 63400 58700 4 +N 63500 58700 63500 59900 4 +N 63500 59900 61900 59900 4 +{ +T 62000 60000 5 10 1 1 0 0 1 +netname=v_usb +} +N 66300 59500 66600 59500 4 +N 66600 59100 66300 59100 4 +C 63900 59800 1 0 0 resistor.sym +{ +T 64200 60200 5 10 0 0 0 0 1 +device=RESISTOR +T 64000 60100 5 10 1 1 0 0 1 +refdes=R2 +T 64400 60100 5 10 1 1 0 0 1 +value=1.5k +} +N 63900 59900 63900 59100 4 +C 63400 58900 1 180 0 capacitor.sym +{ +T 63200 58200 5 10 0 0 180 0 1 +device=CAPACITOR +T 62500 58500 5 10 1 1 0 0 1 +refdes=C3 +T 63200 58000 5 10 0 0 180 0 1 +symversion=0.1 +T 63100 58500 5 10 1 1 0 0 1 +value=1uF +} +C 65000 60600 1 90 0 resistor.sym +{ +T 64600 60900 5 10 0 0 90 0 1 +device=RESISTOR +T 64500 61200 5 10 1 1 0 0 1 +refdes=R9 +T 64400 60800 5 10 1 1 0 0 1 +value=1.5k +} +N 64900 60600 64900 59900 4 +N 64800 59900 66600 59900 4 +N 64900 61500 66600 61500 4 +N 66600 61100 65300 61100 4 +N 65300 61100 65300 60600 4 +N 65300 60600 64900 60600 4 +C 66400 60500 1 180 0 capacitor.sym +{ +T 66200 59800 5 10 0 0 180 0 1 +device=CAPACITOR +T 65600 60400 5 10 1 1 0 0 1 +refdes=C7 +T 66200 59600 5 10 0 0 180 0 1 +symversion=0.1 +T 66100 60400 5 10 1 1 0 0 1 +value=1uF +} +C 66500 60000 1 0 0 gnd.sym +N 65500 60300 65500 59900 4 +N 66400 60300 66600 60300 4 +N 66600 60700 65500 60700 4 +{ +T 65500 60800 5 10 1 1 0 0 1 +netname=s/pdif +} +C 67800 65100 1 0 0 resistor.sym +{ +T 68100 65500 5 10 0 0 0 0 1 +device=RESISTOR +T 67900 65400 5 10 1 1 0 0 1 +refdes=R1 +T 68300 65400 5 10 1 1 0 0 1 +value=1M +} +C 67900 64100 1 0 0 ABM8.sym +{ +T 68100 64600 5 10 0 0 0 0 1 +device=CRYSTAL +T 67800 64700 5 10 1 1 0 0 1 +refdes=X1 +T 68100 64800 5 10 0 0 0 0 1 +symversion=0.1 +T 68300 64700 5 10 1 1 0 0 1 +value=12Mhz +} +C 67700 63600 1 90 0 capacitor.sym +{ +T 67000 63800 5 10 0 0 90 0 1 +device=CAPACITOR +T 67200 64200 5 10 1 1 0 0 1 +refdes=C1 +T 66800 63800 5 10 0 0 90 0 1 +symversion=0.1 +} +C 69200 63600 1 90 0 capacitor.sym +{ +T 68500 63800 5 10 0 0 90 0 1 +device=CAPACITOR +T 69100 64200 5 10 1 1 0 0 1 +refdes=C2 +T 68300 63800 5 10 0 0 90 0 1 +symversion=0.1 +} +C 67400 63300 1 0 0 gnd.sym +C 68900 63300 1 0 0 gnd.sym +N 67500 63600 67900 63600 4 +N 67900 63600 67900 64100 4 +N 69000 63600 68600 63600 4 +N 68600 63600 68600 64100 4 +N 68600 64500 69900 64500 4 +N 69000 64500 69000 65200 4 +N 69000 65200 68700 65200 4 +N 66600 64500 67900 64500 4 +N 67500 64500 67500 65200 4 +N 67500 65200 67800 65200 4 +N 66600 62300 66600 64500 4 +N 69900 62300 69900 64500 4 +N 69900 61900 71700 61900 4 +{ +T 71000 62000 5 10 1 1 0 0 1 +netname=\_suspend +} +N 70300 59500 70300 63100 4 +N 70300 61100 69900 61100 4 +N 70300 59500 69900 59500 4 +N 69900 61500 70300 61500 4 +N 70300 63100 66200 63100 4 +N 66200 63100 66200 61100 4 +C 70900 56200 1 90 0 capacitor.sym +{ +T 70200 56400 5 10 0 0 90 0 1 +device=CAPACITOR +T 70300 56800 5 10 1 1 0 0 1 +refdes=C11 +T 70000 56400 5 10 0 0 90 0 1 +symversion=0.1 +T 70600 56500 5 10 1 1 180 0 1 +value=0.022uF +} +C 70800 55300 1 90 0 resistor.sym +{ +T 70400 55600 5 10 0 0 90 0 1 +device=RESISTOR +T 70900 55900 5 10 1 1 0 0 1 +refdes=R5 +T 70900 55600 5 10 1 1 0 0 1 +value=16 +} +N 69900 57100 71100 57100 4 +C 70600 55000 1 0 0 gnd.sym +C 66400 56200 1 90 0 capacitor.sym +{ +T 65700 56400 5 10 0 0 90 0 1 +device=CAPACITOR +T 65500 56400 5 10 0 0 90 0 1 +symversion=0.1 +T 66300 56800 5 10 1 1 0 0 1 +refdes=C12 +T 66300 56400 5 10 1 1 0 0 1 +value=0.022uF +} +C 66300 55300 1 90 0 resistor.sym +{ +T 65900 55600 5 10 0 0 90 0 1 +device=RESISTOR +T 65700 55900 5 10 1 1 0 0 1 +refdes=R6 +T 65700 55600 5 10 1 1 0 0 1 +value=16 +} +C 66100 55000 1 0 0 gnd.sym +N 65500 57100 66600 57100 4 +C 64600 56900 1 0 0 capacitor.sym +{ +T 64800 57600 5 10 0 0 0 0 1 +device=CAPACITOR +T 65200 57200 5 10 1 1 0 0 1 +refdes=C10 +T 64800 57800 5 10 0 0 0 0 1 +symversion=0.1 +T 64800 56700 5 10 1 1 0 0 1 +value=100uF +} +C 63700 56900 1 0 0 capacitor.sym +{ +T 63900 57600 5 10 0 0 0 0 1 +device=CAPACITOR +T 63700 57200 5 10 1 1 0 0 1 +refdes=C14 +T 63900 57800 5 10 0 0 0 0 1 +symversion=0.1 +T 63700 56800 5 10 1 1 0 0 1 +value=1uF +} +C 64700 55800 1 90 0 resistor.sym +{ +T 64300 56100 5 10 0 0 90 0 1 +device=RESISTOR +T 64100 56300 5 10 1 1 0 0 1 +refdes=R8 +T 64000 56000 5 10 1 1 0 0 1 +value=330 +} +C 64500 55500 1 0 0 gnd.sym +N 63700 57100 62600 57100 4 +{ +T 62600 57200 5 10 1 1 0 0 1 +netname=audio_left +} +C 72000 56900 1 0 1 capacitor.sym +{ +T 71800 57600 5 10 0 0 0 6 1 +device=CAPACITOR +T 71800 57800 5 10 0 0 0 6 1 +symversion=0.1 +T 71400 57200 5 10 1 1 0 6 1 +refdes=C9 +T 71300 56700 5 10 1 1 0 0 1 +value=100uF +} +C 72900 56900 1 0 1 capacitor.sym +{ +T 72700 57600 5 10 0 0 0 6 1 +device=CAPACITOR +T 72700 57800 5 10 0 0 0 6 1 +symversion=0.1 +T 72600 57400 5 10 1 1 180 6 1 +refdes=C13 +T 72600 56800 5 10 1 1 0 0 1 +value=1uF +} +C 71900 55800 1 270 1 resistor.sym +{ +T 72300 56100 5 10 0 0 90 2 1 +device=RESISTOR +T 72200 56500 5 10 1 1 0 2 1 +refdes=R7 +T 72200 56100 5 10 1 1 0 0 1 +value=330 +} +C 72100 55500 1 0 1 gnd.sym +N 72900 57100 74000 57100 4 +{ +T 73100 57200 5 10 1 1 0 0 1 +netname=audio_right +} +N 72000 56700 72000 57100 4 +N 64600 56700 64600 57100 4 +C 71200 57300 1 0 1 capacitor.sym +{ +T 71000 58000 5 10 0 0 0 6 1 +device=CAPACITOR +T 71000 58200 5 10 0 0 0 6 1 +symversion=0.1 +T 70600 57600 5 10 1 1 0 6 1 +refdes=C5 +T 70900 57600 5 10 1 1 0 0 1 +value=1uF +} +C 71200 58100 1 0 1 capacitor.sym +{ +T 71000 58800 5 10 0 0 0 6 1 +device=CAPACITOR +T 71000 59000 5 10 0 0 0 6 1 +symversion=0.1 +T 70600 58400 5 10 1 1 0 6 1 +refdes=C8 +T 70900 58400 5 10 1 1 0 0 1 +value=10uF +} +C 71200 58900 1 0 1 capacitor.sym +{ +T 71000 59600 5 10 0 0 0 6 1 +device=CAPACITOR +T 71000 59800 5 10 0 0 0 6 1 +symversion=0.1 +T 70600 59200 5 10 1 1 0 6 1 +refdes=C4 +T 70900 59200 5 10 1 1 0 0 1 +value=1uF +} +N 70300 57500 69900 57500 4 +N 70300 58300 69900 58300 4 +N 70300 59100 69900 59100 4 +N 69900 57900 71400 57900 4 +N 71400 57500 71400 59100 4 +N 69900 58700 71400 58700 4 +C 71500 58000 1 0 0 gnd.sym +N 71600 58300 71400 58300 4 +N 71200 59100 71400 59100 4 +N 71200 58300 71400 58300 4 +N 71200 57500 71400 57500 4 +C 66400 57300 1 0 1 capacitor.sym +{ +T 66200 58000 5 10 0 0 0 6 1 +device=CAPACITOR +T 66200 58200 5 10 0 0 0 6 1 +symversion=0.1 +T 65800 57600 5 10 1 1 0 6 1 +refdes=C6 +T 66100 57600 5 10 1 1 0 0 1 +value=1uF +} +N 66600 57500 66400 57500 4 +N 66600 57900 65500 57900 4 +N 65500 57500 65500 58300 4 +N 66600 58300 65500 58300 4 +C 65200 57600 1 0 0 gnd.sym +N 65300 57900 65500 57900 4 +C 61800 58000 1 0 0 gnd.sym +N 61900 58300 62400 58300 4 +N 62400 58300 62400 58700 4 +N 62500 58700 62400 58700 4 -- 2.30.2