Sida 2 av 3

Postat: 19 augusti 2006, 21:37:54
av sodjan
Var kommer "2^15" från ??

50 us => 50000 ns
50000 delat med 5 => 10.000.
Alltså 10.000 "steg" på räknaren.

Sen har du helt rätt i att det motsvarar 15 (eller i praktiken
antagligen 16) bitar i räknaren.

Äh, det blir bara gissningar, vad menade du igentligen ?

Postat: 19 augusti 2006, 23:58:55
av Andax
Antal bitar som behövs är LOG2(10000) = 13.29 avrundat uppåt dvs 14 bitar... 2^14 är > 10000 medan 2^13 < 10000

Postat: 20 augusti 2006, 08:43:45
av Fransson
sodjan skrev:Var kommer "2^15" från ??
2 är basen i det binära talsystemet (0 och 1 är två tillstånd)
15 kommer från att jag läste Andax föregående inlägg slarvigt. Förutsatte att man bara tappade en bit om man seriekoplade två åttabitars delay. Där av 15 bitar. Slarvigt av mig. :(

Andax; kan du förklara vartör man tappar 7 bitar??? :?:

Postat: 20 augusti 2006, 12:14:15
av sodjan
> kan du förklara vartör man tappar 7 bitar ???

"bitar" ???

Var inte den diskusionen rellaterat till "delay-lines" ?
Två delay-lines i serie ger naturligtsvis dubbla fördröjningen, inte
256 gånger så lång fördröjning som en krets. En delay-line är ingen räknare...

Postat: 20 augusti 2006, 14:11:51
av Goran
Menade precis det, om man skulle seriekoppla flera stycken och därför få 2^8*n. Men med närmare eftertanke skulle en sådan lösning vara väldigt dyr och klumpig. Dom där delay line kretsarna är ju svindyra!

Är det någon som skulle vilja vidareutveckla tanken om att använda en PLL krets? Vet inte riktigt hur dom fungerar och hur exakt den skulle tillämpas i mitt fall...det skulle alltså gå att skicka t.ex 5ns pulser 50% duty och sedan ändra om denna frekvens (200MHz) till exempelvis 10ns (nästa steg), alltså 100MHz? Exaktheten i fördröjningen behöver inte vara bättre än +-2ns (400000ppm) typ.

Postat: 20 augusti 2006, 15:23:18
av sodjan
Alltså ( 2 ^ 8 ) * n, inte 2 ^ ( 8 * n ), bara så att det inte är något oklart där... :-)

EDIT : Killen med solbrillorna borttagen...

Postat: 20 augusti 2006, 15:29:57
av lgrfbs
sodjan ska det vara en smili i uträkningen?

Postat: 20 augusti 2006, 16:28:18
av Goran
Hittade en intressant krets. En frequency divider från TI:

http://www-s.ti.com/sc/ds/sn74ls294.pdf

Den kan dela frekvensen från 2^2-2^n, där den krets jag kollat på klarar n=15 alltså t.o.m. mycket mer än vad jag skulle behöva!

Skulle jag koppla en sådan och sedan slänga på en krets som kan dela på n i serie så skulle jag kunna få en rätt bra fördröjningskrets? En funktion skulle se ut så här:

2^n+m

Då handlar det ju bara om att anpassa variablerna till den fördröjning jag söker...

Läste om PLL kretsar också men hittade inget bra exempel på nätet hur en frekvens delare kunde byggas. De flesta handlade om RF demodulering... Har dock en känsla av att PLL är det jag borde kolla på, eller?

Postat: 20 augusti 2006, 16:54:14
av Andax
Goran skrev:Menade precis det, om man skulle seriekoppla flera stycken och därför få 2^8*n. Men med närmare eftertanke skulle en sådan lösning vara väldigt dyr och klumpig. Dom där delay line kretsarna är ju svindyra!
Tanken med seriekoppling är ju inte att använda två lika dana delay line kretsar, utan att ena är t.ex. DT1 per steg, dvs 256*DT1 totalt och den andra har DT2 per steg, dvs 256*DT2, där DT2 är mycket större än DT1, idealt 256*DT1 eftersom du då kan programmera en delay från DT1 till 65535*DT1 (dvs 16 bitars).

Grova fördröjningen görs ju visserligen hellre med en räknare (CPLD är ju väldigt kraftfullt) och där man sedan finjusterar med delay line krets. Hittar du en DS1021S-500 kan du göra grovindelningen med din mikrokontrollern istället (Se Icecaps inlägg med 400 ns).


PLL kretsen består av en spänningstyrd oscillator (VCO) och två frekvensdelare (i princip en enkel räknare) som kan dela ner en frekvens N resp M steg.
Sedan består det av en fasmätare och ett analogt filter och en referens-oscillator (t.ex. 10 MHZ).
Genom att dela referenssignals frekvens med M och VCO med N och jämföra fasen på dessa kan man få VCO att ställa in sig på en frekvens oms är N/M * referensfrekvensen. N/M porgrammerbara => frekvensstyrning.

Postat: 20 augusti 2006, 17:04:53
av Goran
Hittade en krets som delar max 4103 (12 bitars). Den klarar väldigt höga frekvenser. Men jag hittar inte kretsen varken på elfa eller farnell.

http://assets.zarlink.com/DS/zarlink_SP8400_SEP_05.pdf

När du menar dela med M resp N så tänker du på vanlig räknar-lokig som är kopplat via feedbacken? Kan du peka på något exempel på nätet så att jag ser hur allt är kopplat och så?

Postat: 20 augusti 2006, 17:16:30
av Andax
Googla på PLL circuit så hittar du massor... t.ex: http://www.uoguelph.ca/~antoon/gadgets/pll/pll.html

Postat: 20 augusti 2006, 17:17:24
av Andax
Googla på PLL circuit så hittar du massor... t.ex: http://www.uoguelph.ca/~antoon/gadgets/pll/pll.html

Postat: 21 augusti 2006, 13:54:16
av Goran
Börjar bli frustrerad. Tror kanske att en extern ADC ändå är den bästa lösningen och billigast. Hittade en 200MSPS på ELFA:

ADC 08200

http://www.elfa.se/pdf/73/730/07306709.pdf

Den skall jag väl kunna klocka med en 200MHz oscillator och efter ungefär 4-5ns kommer värdet ut på parallelutgången redo att matas in i ett minne. Problemet är nu att hitta ett tillräckligt snabbt minne. Någon som har förslag på komponenter? Som klarar av dessa hastigheter men samtidigt är relativ billiga. Brukar köpa "special" komponeter från ELFA men finns säkert billigare/större utbud hos någon annan nordisk distributör?

Postat: 22 augusti 2006, 12:39:26
av Fransson
Ge inte upp än.

Jag börjar med att konstatera ett jag gjorde bort mig totalt tidigare.
Men jag viste att jag gav mig ut på djupt vatten mär jag kastade mig in i denna tråd.



Nu har jag läst, lärt, tolkat, tänkt och formulerat en plan.

Jag har främst inspirerats av det som jag lyckats tolka ur dess två inlägg.
Andax skrev:Skulle jag göra något sådant skulle jag använda en digital delay krets och en enkel CPLD.
http://www.custompowersystem.com/DelayL ... oduct7.htm
Med en programmerbar fördröjning kan man lätt fixa en upplösning på 1 ns. Grovfördröjningen gör man sedan med CPLD.
En digital programmerbar krets kan man själv åtadkomma med en MUX och grindar med konstanta fördröjning (dock lite bökigt)
Goran skrev:Hittade en annan delay line krets, 8 bittars...men hittar inte denna på elfa heller.

http://www.maxim-ic.com/appnotes.cfm/appnote_number/107

Vad man skulle kunna göra är att seriekoppla flera stycken, om det inte finns någon 16 bittars d.v.s. detta skulle väl kunna fungera?

Innan jag presenterar min idé måste vi traggla lite mattematik.
En 8 bitars Delay-line kan skapa en maximal fördröjning över 200 ggr minsta fördröjning.
5nS * 200 = 1µS
1/1µS = 1MHz

Pga. grind fördröjnings problematik (som får sin förklaring senare). Men mest för att alla jag känner som kan något om precisionskristaller säjer att de mest precisa kristallerna tillverkas för 10MHz. Så väljer jag en färdig temperaturkompenserad precisionskristalloscillator på 10MHz.
Det medger en upplösning på "grovinställningen" på 0, 1µS eller 100nS
Med en 10 bitars räknare kan jag uppnå en fördröjning av drygt 1000 * 0, 1µS = 100µS. Vilket med marginal uppfyller dina önskemål.

Här är min skiss/blockschema för hur det skulle kunna lösas.
Bild
Klicka på bilden för större bild.
Vi börjar förklaringen från vänster i nedre raden och fortsätter åt höger och sticker in övre rader när det är relevant.
  1. 10MHz precisionskristalloscillator, färdig temperaturkompenserad modul med lågt "jitter" och "fasbrus".
  2. Trigger kretsen för att starta fördröjningen och ser till att "sänd puls" skickas samtidigt.
  3. Dela med n (1/n delare/räknare) 10 eller fler bitars delare/räknare. Måste starta från en noggrant definierad start punkt varje gång. Smartast är nog att ladda med önskad fördröjning och räkna ner och generera en hög nivå på utgången när räknaren når noll. Se dock till att utgången genererar hög nivå direkt vid "start" om räknaren laddas med noll. (En minsta fördröjning på 100nS motverkar projektets syfte.)
    Observera att räknaren introducerar en betydande sammanlagd grindfördröjning (flera grindar i serie) men den standardiserar vi i nästa steg.
  4. Synk, två enheter en ovan för "Dela med n" (Sänd puls) och den andra till höger om "Dela med n" (Delay). Är egentligen bara två stycken D vippor med hopkopplade klockingångar. Garanterar att båda utgångarna är synkade mot en flank på 10MHz klockan. Garanterar att fördröjningen är en hel multipel av 100nS.
  5. Delay-line. Fininställningen 255*5nS
Edit: 2006-08-23 av Magnus Fransson

Efter att ha följt Gorans länk till Maxim och DS1020/DS1021 hittade jag följande tabell.

Kod: Markera allt

Delay in nS
Part Number  Min  /Step  Maximum
DS1020-015   10   0,15    48,25
DS102x-025   10   0,25    73,75
DS102x-050   10   0,5    137,50
DS1020-100   10   1      265,00
DS1020-200   10   2      520,00
Om man jämför maximum tiderna med stegen i min grovinställning (100nS) är det lätt att se att endast de tre sista kan komma i fråga.
Om jag hade råd och kunde hitta någonstans att köpa dem skulle jag satsa på DS102x-050.
En upplösning på ca75mm (vid reflektion, 150mm total sträcka) vore väldigt ballt. :twisted:
Minsta tiden på 10nS är inte lika roligt. Minsta sträcka på 1,5/3,0m är oballt. :cry:

/Edit


Jag hoppas att jag har varigt till hjälp och att du får ännu mera hjälp av flera personer på forumet.
Om någon har kommentarer eller synpunkter så är ni välkomna att skriva inlägg.
Om jag har fel rätta mig gärna, jag hoppas alltid att jag kan lära mig mer.

Postat: 23 augusti 2006, 16:50:05
av Goran
Tack för alla idéer och speciellt den senaste som fick mig att tänka om! Har tänkt ut en lösning som kombinerar en delayad sampling och extern ADC. Med kretsen går det att få ner upplösningen till 0,25ns på bekostnad av tiden det tar att sampla hela funktionen samt kostnad. Jag har därför valt upplösningen 5ns, vilket passar mig väl. Samplingsintervallet har jag satt till 60us som bestäms av FIFO minnets storlek.

Har precis fått ner mina tankar på papper och hittat lämpliga komponeter. Nästa steg är att skapa en prototyp PCB. Skall även digitalisera det jag har på papper och kanske presentera resultatet här om det är någon som är intresserad?