Fungerar en D-flipflopp bra som en Latch-vippa?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
DanielM
Inlägg: 2415
Blev medlem: 5 september 2019, 14:19:58

Fungerar en D-flipflopp bra som en Latch-vippa?

Inlägg av DanielM »

Jag har en liten idé som jag funderar på. Jag har behov utav en hållkrets som ska hålla uppe en signal helt konstant, utan att vara beroende av vad andra signaler säger.

Jag tänkte först om jag använder två NOR-grindar och parallellt kopplar ihop dessa till en SR-vippa. Bra tänkte jag...men...en nackdel med att koppla ihop dessa är att det initiala tillståndet på Set och Reset avgör vad utgången Q kommer vara. Så denna koppling är väldigt störningskänslig vid uppstart.

Så denna idé kanske inte är så bra. Men då tänkte jag D-flipflopp. Alltså en D-vippa. Tanken med en D-vippa är att när signalen D = 1 och CLK går från 0 till 1 så kommer Q hållas hög så länge inte D = 0 när CLK går från 0 till 1 igen. Om jag skulle koppla ihop D och CLK så att dom båda blir aktiva samtidigt. Då skulle D-vippan alltid sätta Q = 1. Men här måste det vara en garanti att D är alltid snabbare än CLK. Skulle CLK vara snabbar än D, så kommer Q = 0. Eller tänker jag fel här?

Ni får gärna ge mig en rekommendation på en Latch-vippa med initiala utgång Q = 0. Reset skall kopplas till GND. Så Set kommer endast att användas en gång.

Annars fungerar jag på att bara återkoppla en OR-grind och ha högohmig pull-downs på ingångarna.
guckrum
Inlägg: 1896
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Fungerar en D-flipflopp bra som en Latch-vippa?

Inlägg av guckrum »

Så länge du inte behöver återställa är väl or-grindlösningen bra. Det är det enklaste exemplet på en asynkron tillståndsmaskin.

Om du vill använda ett klockat element måste du läsa databladet och ta reda på minimal t_setup, som är tiden som D måste ligga stabil _innan_ klockflanken går hög. Det finns också en t_hold, som är hur länge D minst behöver vara stabil efter flanken, men den är ofta noll.

En del klockade kretsar har set- och eller reset-ingångar, och de kan ju anslutas med ett RC-nät för att få initial set/reset.
E Kafeman
Inlägg: 3571
Blev medlem: 29 april 2012, 18:06:22

Re: Fungerar en D-flipflopp bra som en Latch-vippa?

Inlägg av E Kafeman »

Det normala om man startar upp en krets och man vill försäkra sej om en specifik minnes-status alltid är förvald är att köra en reset så fort spänningssättningen är på stabil nivå.
Görs enklast med en R/C-krets som får resetta statusen första mS av tiden för uppstart på en resetbar krets men det finns även specifika reset-kretsar.
En typisk krets med passande reset-funktion är 74LS73 som är en Dual JK flip-flop med reset-ingång.
Första ögonblicket när matningsspänningen håller på att byggas upp kommer det finnas odefinierade lägen på portstatusen fram till att man försett logiken med minsta spänning enligt datablad och portstatusen är satt med hänsyn till interna fördröjningen.
Är det viktigt att aldrig hamna i odefinierad status på utgångsportar ens vid uppstartsögonblicket kan ett bistabilt s/r-relä mekaniskt minnas status från föregående spänningssättningen.
Är det viktigt att rätt status, 1 eller 0, är definierad sett till specifik spänning behövs spänningsbackup. En enkel cmos s/r-vippa kan hållas vid föregående aktivt valda status i månader mha en minimal super-cap som spänningsbackup.
Exempel på sådan super-cap: https://se.rs-online.com/web/p/supercapacitors/7898025

Bistabila relän som minns status sedan föregående spänningssättning finns i många varianter. Klassiskt i många sammanhang är att använda hel/halvljus-relät från Volvo 140. Dess 12V spole och kan inte drivas direkt av de vanligaste logik-kretsarna och utgångsstatus skiftar vid varje pulsning. Det är ett stegrelä med två steg.
Ett enkelt bistabilt 5V relä är t.ex. https://www.conrad.com/en/p/te-connecti ... 04346.html
Mer avancerade relän kan ha separata dragspolar för resp status man vill sätta och /eller mekaniska flaggor som visar status även när de är spänningslösa.
Användarvisningsbild
4kTRB
Inlägg: 20471
Blev medlem: 16 augusti 2009, 19:04:48

Re: Fungerar en D-flipflopp bra som en Latch-vippa?

Inlägg av 4kTRB »

DanielM
Inlägg: 2415
Blev medlem: 5 september 2019, 14:19:58

Re: Fungerar en D-flipflopp bra som en Latch-vippa?

Inlägg av DanielM »

guckrum skrev: 27 mars 2025, 00:25:46 Så länge du inte behöver återställa är väl or-grindlösningen bra. Det är det enklaste exemplet på en asynkron tillståndsmaskin.

Om du vill använda ett klockat element måste du läsa databladet och ta reda på minimal t_setup, som är tiden som D måste ligga stabil _innan_ klockflanken går hög. Det finns också en t_hold, som är hur länge D minst behöver vara stabil efter flanken, men den är ofta noll.

En del klockade kretsar har set- och eller reset-ingångar, och de kan ju anslutas med ett RC-nät för att få initial set/reset.
Nej. Jag behöver inte återställa or-grinden. Tanken är att det ska bara vara en set-funktion för säkerhet.

Jag misstänkte detta att timningen kanske lite blir optimal när man kopplar ihop CLK + D. Men en OR-grind löser sig allt :) Enkelt.
E Kafeman skrev: 27 mars 2025, 01:58:20 Det normala om man startar upp en krets och man vill försäkra sej om en specifik minnes-status alltid är förvald är att köra en reset så fort spänningssättningen är på stabil nivå.
Görs enklast med en R/C-krets som får resetta statusen första mS av tiden för uppstart på en resetbar krets men det finns även specifika reset-kretsar.
En typisk krets med passande reset-funktion är 74LS73 som är en Dual JK flip-flop med reset-ingång.
Första ögonblicket när matningsspänningen håller på att byggas upp kommer det finnas odefinierade lägen på portstatusen fram till att man försett logiken med minsta spänning enligt datablad och portstatusen är satt med hänsyn till interna fördröjningen.
Är det viktigt att aldrig hamna i odefinierad status på utgångsportar ens vid uppstartsögonblicket kan ett bistabilt s/r-relä mekaniskt minnas status från föregående spänningssättningen.
Är det viktigt att rätt status, 1 eller 0, är definierad sett till specifik spänning behövs spänningsbackup. En enkel cmos s/r-vippa kan hållas vid föregående aktivt valda status i månader mha en minimal super-cap som spänningsbackup.
Exempel på sådan super-cap: https://se.rs-online.com/web/p/supercapacitors/7898025

Bistabila relän som minns status sedan föregående spänningssättning finns i många varianter. Klassiskt i många sammanhang är att använda hel/halvljus-relät från Volvo 140. Dess 12V spole och kan inte drivas direkt av de vanligaste logik-kretsarna och utgångsstatus skiftar vid varje pulsning. Det är ett stegrelä med två steg.
Ett enkelt bistabilt 5V relä är t.ex. https://www.conrad.com/en/p/te-connecti ... 04346.html
Mer avancerade relän kan ha separata dragspolar för resp status man vill sätta och /eller mekaniska flaggor som visar status även när de är spänningslösa.
Kan man inte ha en pull-down på en sida så att en sida är garanterat låg från början. Då kan bara en sida välja att vara hög?
Jag förstår att man ska använda en riktig krets istället för att uppfinna hjulet på nytt. Men en 74LS73 finns väll inte som SOIC?
4kTRB skrev: 27 mars 2025, 09:05:42 Här är en op-baserad historia https://www.edn.com/use-an-op-amp-as-a- ... lip-flop/
Analogt är fint! Jag har en hög med op-ampar som jag funderar att göra något kul med. Får bli nästa tråd! :mrgreen:
E Kafeman
Inlägg: 3571
Blev medlem: 29 april 2012, 18:06:22

Re: Fungerar en D-flipflopp bra som en Latch-vippa?

Inlägg av E Kafeman »

>Kan man inte ha en pull-down på en sida så att en sida är garanterat låg från början. Då kan bara en sida välja att vara hög?

Om du vill ha något som medger i mjukvara programmerbar utgångsstatus vid nästa uppstart så får man designa för detta. Vill man bara ha en säker genom hårdvara förvald status behövs inte mer än en förvald bygling till låg eller hög.
Att garantera att en vippa startat i en default status var det jag beskrev här ovan att man normalt åstadkommer med någon form av uppstarts-reset. Att lägga fasta motstånd som pullup bara för att få en fast uppstartstatus på vippans ingång som sedan ska transporteras genom en vippa för att åstadkomma en utgångs-status låter nog som lite misslyckad design.
Lite som att alltid ha handbromsen åtdragen på en bil bara för att garantera att den inte rullar iväg just vid uppstarts-momentet.
Det kan kanske finnas tillfällen när det är korrekt lösning men jag är tveksam.
Du får beskriva syfte och omständigheter och fulla logik-kraven lite mer fylligt.
Finns krav på specifik port-status vid uppstart eller efter uppstart, är status genom mjuk eller hårdvara och ska statusen påverkas av tidigare omständigheter typ vad statusen var när den blev spänningslös vid föregående drift-cykel.
Ett simpelt och rätt vanligt sätt är att regelbundet skriva ner port status till eprom med jämna mellanrum och sedan läsa in den statusen vid nästa uppstart.

>Men en 74LS73 finns väll inte som SOIC?
Valde den bara för att den är något som de flesta som sysslat med TTL-logik känner till. De första 74x00-74x150 är rätt välkända. Vippor finns i en oändlig mängd av varianter. Bara i 74-serien finns vippor åtminstone uppåt 74x1600 och det finns andra kretsfamiljer och olika kapslingar. Finns numera nya serier av logik som arbetar med matningsspänning på 0.9 Volt om man vill klara sej på enklare batteri-lösningar
JK Fliopflop finns i mängder av varianter allt från att man bygger av diskreta komponenter till egen-designad ASIC.
Vill man inte ha hålmonterat finns 74HC73PW och många andra om man håller sej till standardkomponenter.
Just 74HC73PW finns i kapsling TSSOP14 som tar ca 25% av kortytan jämfört med DIL-kapsel, Har benavståndet, 0.63 mm, jämfört med den större SOIC-varianten som har dubbla benavståndet.
Tycker man det är onödigt med dubbla vippor i en kapsel finns de som tillverkar halva kretsar så sparar man några lödpaddar.
Vad man väljer beror på vad man vill åstadkomma i lite mer detalj och kanske inte minst i vilken miljö och ekonomi.
Är det ett enstaka provskott så väljer man kanske det som är enklast att få tag på via postorder men om det ska bli designlösning som del i en mobiltelefon med förväntat stor tillverkningsvolym så måste kanske designen integreras med andra del-kretsar och man väljer då halvledarteknik som kan samordnas. Det är ingen komplicerad och okänd grund-logik och den finns säkert som färdigt objekt i många logiksyntesverktygs standardbibliotek.
Svårigheten är nog mera att kunna beskriva exakt vilken funktion man vill ha och i vilket sammanhang, innan man kan anpassa designlösningen enligt krävda kriterier.
Skriv svar