Szkop trigger
VF
vf at elte.hu
Sat Jun 14 15:36:51 CEST 2003
Hi!
Kitalaltam hogy kene ezt a trigger dolgot csinalni. Hardverbol kene,
es akkor a trigger legalabb profi lesz, a kepet majd valamilyen fps-sel
kirakja a proci a triggertol fuggetlenul, remenyeim szerint eleg gyorsan
hogy ne legyen zavaro. Persze nem lesz olyan feelingje mint egy analog
szkopnak, de a profi gepek sem olyanok, erezheto egy kis kesleltetes.
Tehat kell csinalni egy sok bites szamlalot, ami folyamatosan szamlal
0-tol felfele 100MHz-el, mondjuk legalabb 1sec a lefutasa, hogy az
alacsonyabb frekiket is tudja, es azokba is bele lehessen nagyitani.
Kell egy A es B compare regiszter. Az A regisztert a proci tolti fel,
amig a szamlalo at nem lepi, a triggereles tiltva. Ezen a teruleten belul
lehet majd mintat venni, de ezt egyelore hagyjuk. Ha teljesul a trigger
feltetel (valamelyik csatornan x ideig z erteket merjuk, elotte a mert
ertek kisebb/nagyobb volt), a szamlalo erteke bemasolodik a B-be, majd
a szamlalo nullarol ujraindul. Ha nem jon trigger, es a szamlalo a B
erteket is atlepi, akkor szinten kinullazodik, es B erteke eggyel no.
Amikor a proci mintat akar venni, bebillent egy bitet. Ekkor az aramkor
azonnal elkezdi tarolni a mintakat az elso pl 1k-ba, de ugy, hogy 1k-nal
korbefordul. Amikor a szamlalo nullazodik, megjegyzi az utoljara beirt adat
cimet egy regiszterben (legyen a neve TriggerTime, azaz TT) , majd meg
512 bajtot letarol. Majd megvarja amig a szamlalo eleri a SampleStart
regiszter erteket, es akkor a maradek (1k feletti) teruletet is feltolti
mintakkal.
A proci kiolvassa a trigger teruletet, es meghatarozza hogy a trigger
pontos idopontja alapjan mennyivel van eltolodva a mintavetel. Ha a sweep
egy valodi triggerrel kezdodott, akkor a trigger teruleten pont kozepen
lesz a trigger feltetel, ha azt atugrotta a jel, akkor idoben es ertekben
is el lesz tolodva. Az idot 10ns felbontassal trivialisan, a mert ertek
analizalasaval interpolacioval pontosabban is meg lehet hatarozni, igy
lehetoseg van a mintaveteli freki kozeli jelek pontos rekonstrualasara is.
Ha nagyon ugyes a progi, nem csak 2 mintat vizsgal, hanem akar az egesz
trigger teruletet, pl a legkisebb negyzetosszeg vagy koincidencia-analizis
alapjan megprobalja elcsusztatva egymasra illeszteni a mintakat, es igy
meghatarozni a 10ns ablak 1 nagysagrenddel pontosabb idobeli poziciojat.
Valodi triggernek belathato idon belul erkezni kell, kulonben baj lesz.
Ha a jelemelkedesi sebesseg tul nagy (az analog tudomanyom ismereteben ez
nem egy realis veszely egyelore :), akkor megtortenhet hogy a B nagyon
elszalad, es a trigger bufferbe mar nem is fog beleesni a trigger idopont
kornyezete. Ezt a veszelyt lehet csokkenteni, ha nem minden sweepnel, hanem
csak minden n.-nel no B erteke, konfiguralhatoan. Vagy a proci is idonkent
belenezhet es pontosithatja B erteket, de ez nagysagrendekkel lassabb
folyamat mint a hardveres figyeles, csak alacsonyabb samplerate eseten
lehet ra szamitani.
Tovabbi aprosagok: sikeres mintavetel utan a bit torlodik, a proci
feldolgozza a mintat. Ez sok idot vehet igenybe, ezert sequence modban
elszalaszthatjuk a kovetkezo mintat. Ezert meg kell oldani, hogy
automatikusan mas cimre tarolja a kovetkezo mintak trigger es sample
adatait. De ezek mar csak reszletkerdesek.
Ezt az egesz rendszert bele kell nyomni egy 100MHz CPLD-be, memorianak
jo lesz 4db 15ns 32k cache-SRAM. Igy van csatornankent 64k terulet, ez
eleg sok. Szerencses esetben ugyanebbe az ic-be belefer a kijelzo vezerlese
is, egy 640x480 DSTN notebook lcd-re gondoltam. A touch panel helyett
egy hanyomanyos pc egeret is ra lehet majd dugni.
Ha nem fer bele, akkor meg egy CPLD, vagy SED..., egyeb.
Azert lenne poen a sajat CPLD megoldas, mert meg lehetne oldani a
videomemoria varakozasi ciklusok nelkuli elereset.
--
Valenta Ferenc <vf at elte.hu> Visit me at http://ludens.elte.h u/~vf/
"A kulturalt ember nem szemetel. A tobbieknek meg tilos!"
More information about the Elektro
mailing list