Kérkel segíts, hogy ne maradjon hibás információ az oldalon!
Ha szerinted valami nem fedi a valóságot, kérlek írd meg, hogy javítani
tudjam. Ha kérdésed van, fordulj hozzám bizalommal!
És íme a leírt patch.
Changelog:
- A Net hotkey (n) használatakor nem kezd azonnal vonal húzásba, csak kattintás után.
- Az objektumokat a rotate a középpontjuk körül forgatja.
- Mozgatás közben jobb klikkel lehet forgatni.
- Kitettem egy forgatás gombot a toolbárra, de mindig benyomott. Ez ne zavarjon meg, működik :).
A patchelés:Töltsd le a gschem 1.4.3-as verziójának a _forrássát_ és csomagold ki valahova.Töltsd le a patcheket. A patchek két részből állnak: az egyik az include könyvtárt, a másik az src könyvtárt patcheli.Helyezd őket abba a könyvtárba, ahova kitömörítetted a gschem forrást. (NE a kitömörített könyvtárba!)Parancssorból indítsd el: # patch -p0 -i gschem_src.patch # patch -p0 -i gschem_include.patch Egy kis patch parancs: a -p kapcsoló után levő szám azt adja meg, hogy a patch parancs hány könyvtár mélységben keresse a patchelendő fájlt, míg a -i a --input, tehát a bemeneti fájlt adja meg. Elsőre használhatod a --dry-run opciót is, az megmutatja, ha valami nem OK.Innentől sima telepítés forrásból. Nyisd meg a kitömörített könyvtárt: # cd gschm-1.4.3 Futtasd a configure parancsot: # ./configureÉs fordíttasd le a forrást: # makeTeszteld a progit (ekkor a futtatható fájl az src könyvtáron belül van) és ha tetszik akkor telepítsd: # make installMégegyszer a szükséges fájlok: Remélem, hogy ezek a kis apróságok nektek is megkönnyítik a gschem használatát. Rajta voltam, hogy leütött billnetyűre keressen a hozzáadás ablakban. A kereső már meg is jelenik billentyű leütéskor, de nem ugrik sajnos.
A nemrég megkezdett traffipax jammer (zavaró) fejlesztési projektem keretében a jobb megértés és gyorsabb kisérletezés érdekében egy picit elmerültem a linux alatt SPICE rejtelmeiben. Ez nem az első ilyen próbálkozásom volt, de a Gschem kezdeti kényelmetlennek tűnő funkciói és az egész Geda suite pl. egy Orcadhoz mért kényelmetlensége mindig könnyedén eltántorított.
A nagy munka megkezdése előtt picit elvonta a figyelmem a Gschem egy-egy fura funkciója és a forráskódban való kis turkálás után apró átalakításokat eszközöltem. Tényleg nem sok minden,de fura módon sokkal használhatóbbá tette számomra a kezelést. Ilyen pl, hogy a net (összekötő) összekötő parancs hot-key (n) lenyomásakor ne kezdjen el azonnal vonalat húzni, mert úgy használhatatlan. Beletettem a mozgatás közbeni jobb klikkes forgatást, igaz, ez csak kényelmi funkció, inkább Eagleből jött megszokás. Hasonló apró módosítás, hogy az objektumokat forgatáskor a középpontjuk körül forgassa. (Ez egyébként sokkal hosszútávúbb lett, mint egy pár perces módosítás, mert a snap-to-grid szétszórta az alkatrészeket :D.) Sok többi funkciót meg megtaláltam, hogy már kész van :).
Sokat gondolkodom még a cross-hair kurzor megvalósításán és ami csúcs lenne, hogy az Easy spicehoz hasonlóan beírkálni a spice szimuláció munkaponti eredményeit az áramköri rajzra.
És már meg is kezdődhetett a munka! :)
A spice használatát először a Spice-gui és az Easy Spice segítségével akartam megkezdeni, de hamar belefutottam abba, hogy másra lenne szükség, mint ami elkészült ezekben a Gui-s verziókban. Ettől függetlenül mindenkinek ajánlom a megismerésüket, mert alap esetben nagyon hasznosak lehetnek.
Nem célom most egy összefüggő spice tutorial írása, ilyen igen sok van a neten. Inkább csak szemezgetés szinten.
Hogyan kezdjük:
Először is rajzoljuk meg az áramkört Gschemben. Használjuk a General és a Spice alkatrészeket. Nagyon fontos és nem elfelejtendő az áramkör nullájának jelölése a netname=0 paraméter dekralásával. Ha kész vagyunk, mentsük el az áramkört. Az áramkörből a gnetlist segítségével készítünk az ngspice által használható szimulációs fájlt.
# gnetlist -g spice-sdb -o [kimenete.net] [bemeno.sch]
A -g kapcsoló azt mondja meg a gnetlistnek, hogy milyen spice kimenetet generáljon, a -o a kimeneti fájl neve legyen és az sch az elkészített áramkör.
Én ngspice-t használok a szimulációra:
# ngspice [kimeneti.net]
És már előttünk is van a spice konzol. Használatát a cikk alján található linkeken keresztül ismerhetjük meg.
A subckt-k használata:
A spice modellezés lényege az lenne legtöbbször, hogy nem az alap spice modelleket használjuk, hanem azokat a valóságnak megfelelően paraméterezzük fel. Továbbá lehetőség van előzőleg elkészített (akár gschemmel) modellek felépítésére és azoknak behívható modullá (SubCkt) alakítására.
Ilyen aláramköröket úgy implementálhatunk az áramkörünkbe, hogy behívjuk a neki megfelelő spice alaktrészt és a paraméterei közé hozzáadunk egy
file = [subckt elérése]
value = [subckt neve]
A spice csak akkor fogja a subckt modellt használni, ha az alkatrész neve "X"-el kezdődik. Pl van egy tranzisztorunk, Q1, amit subckt modellként szeretnénk használni, akkor a netlistben nem Q1ként kell hogy megjelenjen, hanem pl XQ1-ként.
Ezt azért írom ki, mert a gschemből gnetlist-el generált netlistek nem kapják meg az X előbetűt! Így a spice mindig azt írja, hogy model not found és a default paramétereket használja. Ahhoz, hogy ezt elkerüljük két dolgot tehetünk. Az egyik az, hogy mindig futtatás előtt kézzel javítjuk a netlist fájlt. A másik, hogy a gschemben kézzel a név elé írjuk az X-et és a gnetlistet egy további "-n" kapcsolóval hívjuk.
# gnetlist -n -g spice-sdb -o [netlist.net] [schem.sch]
Ekkor a gnetlist nem javítja a típusnak megfelelően a modell neveket.
Step size too small hiba:
Ha sokáig érthetetlen módon "step size too small" hibaüzenetet kapunk érdemes egy picit megfigyelni a munkaponti értékeket. Ha nagyon nem stimmelnek (pl negatív feszültségek egy csak + tápot tartalmazó áramkörben) ellenőrizzük, hogy a dedikált 0 (nulla) referencia pont meg van-e adva. Éppígy én úgy jártam az ngspice-val, hogy volt egy kábelem n4-nek elnevezve és a 0-val összekötve. A gnetlist természetesen észrevette a dupla nevű kábelt és meg is szüntette nagybuzgón. A 0-t..... Tapasztalat: mindig használd a gnetlist DRC checket!
Ha mégsem ilyen jellegű a hibánk, előfordulhat, hogy csak nagyobb számítási felbontásra van szükségünk. Ilyenkor lérdemes a környezet paramétereit babrálni egy picit. Ezt (ngspice esetén) a set paranccsal vagy a .ckt fájlba .OPTIONS sorral tehetjük meg.
>> set KULCS=ÉRTÉK
vagy
.OPTIONS KULCS=ÉRTÉK
Megoldási kísérletek, zárójelben jelzem az ngspice alap értékeit.
Emeljük a relatí hiba tolerancia értékét: RELTOL=0.01 (def: 0.001 azaz 0.1%)
Emeljük az absz. hiba toleranciát: ABSTOL=1f (def: 1pico)
Emeljük a fesz. hiba toleranciát: VNTOL=10m (def 1m)
Az ITL paraméterek a konvergencia keresés maximális lépés számát határozzák meg. A tranzienssé a 4-es: ITL4=200 (def=50)
Ha minden kötél szakadt, a hibát a szimulált áramkörben kell keresned. Próbálj IC (initial condition)-ket megadni, vagy realisztikusabbá tenni a modellt. Tegyél be kábel és generátor belső ellenállásokat, szimbolikus szórt kapacitásokat. Próbáld meg darabolni az áramkört. Emelett, ha nem is sikerül a spicének végigszámolni, de találsz olyan paramétereket, hogy néhány mintát mégis kiszámol, mielőtt elhal, akkor mindenképpen plottoltasd vele az érdeksebb de akár a triviálisabb csomópontokat is.
Linkek:
Spice tutorial:
http://littletux.homelinux.org/knowhow/ngspice.pdf
Ngspice kézikönyv:
http://www-ti.informatik.uni-tuebingen.de/~bernauer/lehre/ti-1-0506/spice/ngspice.pdf
spice3 kéziköny:
http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/sec3.html
Egy másik Spice tutorial:
http://web.mit.edu/geda/arch/i386_rhel4/versions/current/share/doc/geda-doc/spice-sdb/intro.html
Minden geda cucchoz:
http://web.mit.edu/geda/arch/i386_rhel4/versions/current/share/doc/geda-doc
Ez is komoly spice leírás:
http://www.seas.upenn.edu/~jan/spice/spice.overview.html
Még spice:
http://www.brorson.com/gEDA/SPICE/t1.html
Érdekes spice modell ötlet:
http://www.ecircuitcenter.com/Circuits/vc_resistor1/vc_resistor1.htm
Spice modell lista
http://homepages.which.net/~paul.hills/Circuits/Spice/ModelIndex.html
Egy érdekes elektronikai könyv spice modellezéssel:Electronic concepts: an introductionszerző: Jerrold H. Krenzhttp://books.google.com/books?id=Le9zdVoMEOEC&pg=PA146&lpg=PA146&dq=common+emitter+bias+spice&source=bl&ots=WLBrR9C-I3&sig=AXtLdFpM-N7ExJ41NB27Lgpbwoc&hl=hu&ei=dVG1SvXdDYaZ_QbSpN3GDQ&sa=X&oi=book_result&ct=result&resnum=10#v=onepage&q=common%20emitter%20bias%20spice&f=false