Få två pulser i rätt följd.

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
finnepower
Inlägg: 13
Blev medlem: 27 november 2007, 00:18:49
Ort: Göteborg

Få två pulser i rätt följd.

Inlägg av finnepower »

Jag håller på med ett projekt i en elkurs där vi ska bygga en hjärtpulsmätare. Jag tänker inte förklara hela projektet här men ett problem med ett delsystem.

Jag har en räknare, 74HCT4040, som räknar klockpluser. Med andra ord så räknar den tid. Jag har annan insignal och när denna signal är hög så vill jag först kopiera värdet i räknaren till ett minne (74HCT273) och sedan resetta räknaren. Följande signaler vill jag använda. För att lättare åskådliggöra pulserna så "ritar" jag dem:

Kod: Markera allt

_||_||_||_||_||_||_||_||_||_ klockpuls 100 Hz

______||||||________________ insignal med smal bredd

Insignalen används direkt för att kopiera tiden till minnet, men precis efteråt vill jag ha en enda klockpuls som resettar räknaren. 
Detta för att det inte är så smart att resetta först och sen kopiera tiden noll.
Signalen jag vill få är alltså bara:

_____________||_____________
Jag vet att jag troligen ska ha en vippa som resettar räknaren och samtidigt resettar vippan så att inte räknaren fortsätter resettas. Eller finns det nåt annat enkelt sätt att få en enstaka puls på insignalens bakkant?

Mycket tacksam för svar!
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jag har inte direkt en lösning, men mer en lite lös fundering... :-)

Det var aldrig aktuellt att stoppa in en AVR/PIC istället för all diskret logik ?
Eller det var kanske en krav i projektet att det skulle byggas med 74-kretsar...
finnepower
Inlägg: 13
Blev medlem: 27 november 2007, 00:18:49
Ort: Göteborg

Inlägg av finnepower »

Vi tänkte aldrig över det alternativet. Men nu är det för sent för vi förlorar för mycket tid på att överge det som vi redan gjort och att lära oss använda PIC-kretsar.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Om det är insignalens första flank som ska spara tiden och därnäst nolla räknaren kan ett sätt vara att ha en återtrigbar timer (t.ex. 4538) som då komer att göra om de korta snabba ingångspulser till en stabil puls, använd sedan framkanten till att ladda över värdet ock bakkanten till att nolla.
finnepower
Inlägg: 13
Blev medlem: 27 november 2007, 00:18:49
Ort: Göteborg

Inlägg av finnepower »

Jag är inte helt säker på att jag förstod din förklaring. Men jag skaffade kretsen (den var ju inte dyr) och labbade med den idag. Så bara för att få nån bekräftelse på om jag gjort som du tänkt så skriver jag vad jag gjorde:

Jag kopplade insignalen direkt till 2A1 som triggar på positiv flank. Sedan för att få en till positiv flank på insignalens negativa flank så lät jag insignalen gå genom en inverterare (7404). Den inverterade signalen kopplade jag till 1A1. Jag valde lämpliga resistanser och kapacitanser och fick en puls på både in-pulsens fram- och bakkant som jag ville!

En till fundering. Insignalen kommer genom en separat schmitt-trigger. Samtidigt körde jag en färdig fyrkantsvåg som insignal. Och input-benen på 4538 är också schmitt-triggade! Kan det bli för brant lutning på flankerna så att kretsen inte hinner "känna av flanken"? Jag vet i alla fall att den första scmitt-trigger kretsen (74132) blir onödig nu.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Svaret på funderingen: Nej! Alltså är det lugnt.

Schmittrigger används när man vill ha "tveksamma" flanker (långsamma flanker) att bli "rena" (snabba).
Gästaren
Inlägg: 29
Blev medlem: 15 maj 2007, 18:49:12
Ort: Norröver

Inlägg av Gästaren »

Går det inte med en puls?
Vet inte om jag förstått rätt, men har du provat att nollställa räknaren och ladda minnet med samma puls?
Jag tittade i dadabladen och såg att från (reset puls) till nollställning för räknaren(hct4040) tar de typ 20 ns(tPHL). Men minnet(hct273) behöver bara typ 3-4 ns på sig att lagra fast indatan i minnet vid en puls(holdtime), senare än så kan indatan ändra sig hur mycket den vill utan betydelse för minnet.
Så har jag tolkat databladen i varje fall.

74HCT4040
http://www.ortodoxism.ro/datasheets/phi ... HC4040.pdf

74HCT273
http://www.ortodoxism.ro/datasheets/phi ... _CNV_2.pdf


Bild

Vipporna i shiftregister klockas ju på samma puls samtidigt som ut och ingångar är ihopkopplade, och där funkar de!
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

I teorin kommer det att fungera men i praktiken kan det vara lite slumpartat. Men idéen som sådan är bra men man kan fördröja pulsen en aning t.ex. med ett RC-led, då skapar man stabil funktion även om kretsarna skulle bli bytt till samma funktion men annan familj.
finnepower
Inlägg: 13
Blev medlem: 27 november 2007, 00:18:49
Ort: Göteborg

Inlägg av finnepower »

Tack för all hjälp hittills! Jag har dock en sista fråga. Själva kopieringen från räknaren till minnet gör jag just nu genom att ta alla 8 utsignaler från räknaren och koppla till åtta insignaler på åtta och-grindar (2st 74LS08). Sedan kopplar jag själva kopieringssignalen så att den går till de fria in-benen på och-grindarna. Utsignalerna från grindarna kopplar jag till D-ingångarna på minnet. Rent logiskt borde det fungera men det har varit många saker som "borde ha fungerat" tidigare med detta projekt :) Därför undrar jag om det nåt direkt fel med att göra såhär eller om det finns nåt särskilt man måste tänka på.

Tack!
Gästaren
Inlägg: 29
Blev medlem: 15 maj 2007, 18:49:12
Ort: Norröver

Inlägg av Gästaren »

Mitt förslag
Jag tänkte att du skulle koppla ingångarna på minnet(hct273) direkt till utgångarna på räknaren(hct4040), och sedan sätta kopieringssignalen till minnets inklockning(cp, stift 11). För då klockas ju räknarens värde över till minnet vid kopieringssignalens 1 flank(från 0 till 1).

Och-grindar eller inte
Visst funkar det med att ha en och-krets emellan, men du blir ju ändå tvungen att koppla kopieringssignalen till minnets in-klockning (stift 11) också. Dessutom har en och-grind också en liten fördröjning så klockas dom samtidigt med minnet(st 11) så hinner dom kanske inte ändra utgången förrän minnet klockat sin indata(dvs resultat=00000000)!

Så frågan är om och-grindarna fyller någon funktion alls eller om de kan tas bort? Men det får du fundera på som har hela konstruktionen att ta hänsyn till.


Bild
finnepower
Inlägg: 13
Blev medlem: 27 november 2007, 00:18:49
Ort: Göteborg

Inlägg av finnepower »

Jag kom fram till precis samma slutsats i labbet idag :) Dock efter nån bortkastad timme av onödigt kopplande. Och-grindarna kunde plockas bort helt vilket jag borde förstått från början. Man lär sig av sina misstag. :)
Skriv svar