Rent logiskt ska det inte fungera att fördröja en klocksignal, fyrkantvåg,
och sedan kombinera fördröjningarna i en XOR/XNOR och få ut korta pulser
enbart vid ena flanken, det borde bli pulser vid båda flankerna och dubbla
frekvensen.
Men med hjälp av grindarnas fördröjning och även flankernas stigtider (stigtider
är inte applicerade på LTSpice-grindarna) så blir det pulser enbart vid ena flanken.
Så även i verkligheten med samma grindar och CMOS-logikkretsar som anges i LT-schemat.
Detta har jag verifierat med fysisk uppkoppling och även mätt grindfördröjningarna
som jag använder i LTSpice-grindmodellerna.
Digital Logik
Re: Digital Logik
>Rent logiskt ska det inte fungera att fördröja en klocksignal, fyrkantvåg,
och sedan kombinera fördröjningarna i en XOR/XNOR och få ut korta pulser
Jo så har det alltid varit och är del av vad man fortfarande måste ta hänsyn till när det ställs höga krav på funktion.
Ibland är det en önskvärd effekt om man vill skapa edge-detektor på etta eller nolla eller för båda.
Det kan vara medvetet att man t.ex. skapar en ringoscillator då man nyttjar fördröjningen i grindar och ledare som en tidskonstant för oscillations-frekvensen.
Det händer att man omedvetet kan få ringning på ledare vilket t.ex. kan ge upphov till ett flertal omslag innan en detektering stabiliseras.
Numera är mycket av detta på en annan skala när logiken finns i samma chip relativt förr när olika typer av grindar fanns i olika DIL-kapslar med kanske 10 cm dåligt matchad kretskortslina emellan, dåliga jordplan och inte alltid så bra DC-avkoppling.
När det kom lite snabbare logik typ 74F och kanske i synnerhet vid bussöverföring kunde sådant bli riktigt knepigt.
Man fick ta hänsyn till transmissionslinans fördröjning och se upp för dålig impedansmatchning då annars fördröjningen kanske inte ens är samma vid två olika tillfällen. Man fick oönskat stort signal-jitter. Där ett omslagstid från en nivå till en annan varierade från gång till gång.
Att mixa olika TTL-familjer, LS,AC,F,S.. buffrade och obuffrade kretsar och man kunde får en kul soppa med olika tidseffekter.
Bland de mer knepigare problemen jag ställdes inför vad gäller timing av TTL var när man ville interfacea snabba analoga signaler, dvs göra ADC-omvandlare genom att använda enkla logikkretsar liksom motsatsen, DAC med flashteknik.
Som exempel, en enkel resistor baserad logik flash-DAC när man skiftade mellan t.ex. värdet x0F till x10 skulle tre portar gå från 1 till noll och en port gå från 0 till 1. Det allra minst att det var olika fördröjning i hela logikkedjan och det kunde bli fula transientövergångar på analoga signalen.
Det kunde räcka med att man hade sämre jordplan för en av kretsarna eller längre slinga av avkopplingen på matningsspänningen och timingen ändrades oacceptabelt mycket.
Numera är mycket av detta löst helt inuti kapslar, man köper färdiga lösningar, men fortfarande är det problem med interna portfördröjningar när man vill ha riktigt snabba ADC och DAC-kretsar. Det blir alltid en fördröjning och ett visst jitter och distorsion.
Totala logikfördröjningen mellan olika logikportar kan idealt kalkyleras så här: Det lär man ut i många läroböcker, men man nämner inte att det kan vara ett långt steg mellan den ideala beräkningen tagen från databladen till vad man får för det färdigdesignade kretskortet där till och med olika leverantörer av kretskort kan påverka då FR4-egenskaper kan variera en hel del mellan olika tillverkare och batcher.
Logiken för att detektera logik-förändringar som du är inne på kan lösas på många sätt.
Några exempel:
Här detekterar enbart inkommande 1:a. Alternativt kan man detektera förändringar i bägge logiknivåerna. Här en variant: För att ge dessa kortvariga logiknivåer önskad längd kan man addera fler seriella portar eller för att ge dom en kvarstående detektering kan man använda S/R-vippor nand-någonting mm.
Fördröjning pga av transmissionsledareffekter kan få olika resultat beroende på logiken.
Enelt, fördröjning i tranmissionslina kan simuleras med en RC-krets. Ska man få med missanpassning och ringningseffekter tillkommer induktans men för olika logikgrindar kan effekten skilja. Fördröjningen är inte alltid ett kritiskt problem men i synnerhet när flera saker sker på osynkrona buss-överföringar kan det uppstå olika effekter. I synnerhet när det gäller buss-ledningar på PCB vill man att de ska vara lika lång för att signalfördröjningen ska vara lika på hela bussen.
Ett enkelt sätt att kompendsera för olika avstånd mellan pinnarna på kapslar är att införa meander-kurvor för att alla ledningarna ska bli lika långa. Pga allt snabbare logik tvingas man ofta ha meanderledningar även inuti logik-chip.
Även analoga chip kompenserar eller nyttjar fördröjning på olika sätt. I forna PAL-TV lät man linjesvepet fördröjas en hel period med så enkelt som en enda lång meanderledning i ett chip och det är även vanligt för ljud-skapande synt-kretsar.
och sedan kombinera fördröjningarna i en XOR/XNOR och få ut korta pulser
Jo så har det alltid varit och är del av vad man fortfarande måste ta hänsyn till när det ställs höga krav på funktion.
Ibland är det en önskvärd effekt om man vill skapa edge-detektor på etta eller nolla eller för båda.
Det kan vara medvetet att man t.ex. skapar en ringoscillator då man nyttjar fördröjningen i grindar och ledare som en tidskonstant för oscillations-frekvensen.
Det händer att man omedvetet kan få ringning på ledare vilket t.ex. kan ge upphov till ett flertal omslag innan en detektering stabiliseras.
Numera är mycket av detta på en annan skala när logiken finns i samma chip relativt förr när olika typer av grindar fanns i olika DIL-kapslar med kanske 10 cm dåligt matchad kretskortslina emellan, dåliga jordplan och inte alltid så bra DC-avkoppling.
När det kom lite snabbare logik typ 74F och kanske i synnerhet vid bussöverföring kunde sådant bli riktigt knepigt.
Man fick ta hänsyn till transmissionslinans fördröjning och se upp för dålig impedansmatchning då annars fördröjningen kanske inte ens är samma vid två olika tillfällen. Man fick oönskat stort signal-jitter. Där ett omslagstid från en nivå till en annan varierade från gång till gång.
Att mixa olika TTL-familjer, LS,AC,F,S.. buffrade och obuffrade kretsar och man kunde får en kul soppa med olika tidseffekter.
Bland de mer knepigare problemen jag ställdes inför vad gäller timing av TTL var när man ville interfacea snabba analoga signaler, dvs göra ADC-omvandlare genom att använda enkla logikkretsar liksom motsatsen, DAC med flashteknik.
Som exempel, en enkel resistor baserad logik flash-DAC när man skiftade mellan t.ex. värdet x0F till x10 skulle tre portar gå från 1 till noll och en port gå från 0 till 1. Det allra minst att det var olika fördröjning i hela logikkedjan och det kunde bli fula transientövergångar på analoga signalen.
Det kunde räcka med att man hade sämre jordplan för en av kretsarna eller längre slinga av avkopplingen på matningsspänningen och timingen ändrades oacceptabelt mycket.
Numera är mycket av detta löst helt inuti kapslar, man köper färdiga lösningar, men fortfarande är det problem med interna portfördröjningar när man vill ha riktigt snabba ADC och DAC-kretsar. Det blir alltid en fördröjning och ett visst jitter och distorsion.
Totala logikfördröjningen mellan olika logikportar kan idealt kalkyleras så här: Det lär man ut i många läroböcker, men man nämner inte att det kan vara ett långt steg mellan den ideala beräkningen tagen från databladen till vad man får för det färdigdesignade kretskortet där till och med olika leverantörer av kretskort kan påverka då FR4-egenskaper kan variera en hel del mellan olika tillverkare och batcher.
Logiken för att detektera logik-förändringar som du är inne på kan lösas på många sätt.
Några exempel:
Här detekterar enbart inkommande 1:a. Alternativt kan man detektera förändringar i bägge logiknivåerna. Här en variant: För att ge dessa kortvariga logiknivåer önskad längd kan man addera fler seriella portar eller för att ge dom en kvarstående detektering kan man använda S/R-vippor nand-någonting mm.
Fördröjning pga av transmissionsledareffekter kan få olika resultat beroende på logiken.
Enelt, fördröjning i tranmissionslina kan simuleras med en RC-krets. Ska man få med missanpassning och ringningseffekter tillkommer induktans men för olika logikgrindar kan effekten skilja. Fördröjningen är inte alltid ett kritiskt problem men i synnerhet när flera saker sker på osynkrona buss-överföringar kan det uppstå olika effekter. I synnerhet när det gäller buss-ledningar på PCB vill man att de ska vara lika lång för att signalfördröjningen ska vara lika på hela bussen.
Ett enkelt sätt att kompendsera för olika avstånd mellan pinnarna på kapslar är att införa meander-kurvor för att alla ledningarna ska bli lika långa. Pga allt snabbare logik tvingas man ofta ha meanderledningar även inuti logik-chip.
Även analoga chip kompenserar eller nyttjar fördröjning på olika sätt. I forna PAL-TV lät man linjesvepet fördröjas en hel period med så enkelt som en enda lång meanderledning i ett chip och det är även vanligt för ljud-skapande synt-kretsar.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Digital Logik
Den där med AND eller NAND och 3 inverterare kan komma att passa bra till mitt nästa projekt.
Ska ha triggpulser på runt 100ns.
Ska ha triggpulser på runt 100ns.
Re: Digital Logik
En lite mer robust pulsgenerator tror jag går att åstadkomma med kretsen nedan.
Här är mer garantier för att flankerna överlappar varandra och att de inte gör det andra halv-cykeln.
Om man kombinerar de överlappande i en snabb NOCH-grind så fås i princip en pulslängd motsvarande fördröjningen som
skapas i kretselementet A1.
Här är mer garantier för att flankerna överlappar varandra och att de inte gör det andra halv-cykeln.
Om man kombinerar de överlappande i en snabb NOCH-grind så fås i princip en pulslängd motsvarande fördröjningen som
skapas i kretselementet A1.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Digital Logik
Den här varianten är ännu trevligare.
Här kan man labba med R3/C2 eller förslagsvis R6.
Här kan man labba med R3/C2 eller förslagsvis R6.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.