Du er her: Forside » Guider » MM74HC165: læs otte kontakter med tre ledninger » Guider » MM74HC165: læs otte kontakter med tre ledninger
En mikrocontroller løber tør for ben længe før et projekt løber tør for kontakter. Et skifteregister med parallel indgang og seriel udgang bytter ben for tid: otte indgange låses samtidig og klokkes derefter ud ad en enkelt ledning.
Et skifteregister er en række flip-flop’er i en kæde. Hver klokflanke kopierer værdien fra den ene flip-flop over i den næste, som når folk sender spande videre i en kæde. MM74HC165 har otte sådanne trin, kaldet QA til QH, og skubber data fra QA mod QH.
Det, der gør den til et parallelindgangs-register, er den anden måde at få data ind på. I stedet for at vente otte klokflanker kan chippen lægge en værdi i alle otte trin på én gang, direkte fra otte indgangsben. Det er indlæsningen, og det er hele pointen med kredsen: du fastfryser otte signaler i samme øjeblik og læser dem ud i dit eget tempo.
SHIFT/LOAD (ben 1) vælger tilstand. Hold det højt, og chippen skifter på klokflanker. Træk det lavt, og de otte parallelle indgange indlæses direkte i registeret. Databladet siger udtrykkeligt, at denne indlæsning sker uafhængigt af klokkens tilstand – den er asynkron, så du behøver ikke at synkronisere den med noget.
CLOCK (ben 2) står for skiftet. Data overføres på den stigende flanke, altså ved overgangen fra lav til høj.
CLOCK INHIBIT (ben 15) er en port foran klokken. Indvendigt fører de to klokben til en NOR-port med to indgange, så hvis bare én af dem holdes høj, står registeret stille. Bruger du kun én klokkilde, så forbind CLOCK INHIBIT til stel og gløm det.
VCC er ben 16, stel er ben 8, og en 100 nF kondensator hører hjemme mellem dem tæt på chippen. Forbind otte kontakter til A–H (ben 11, 12, 13, 14, 3, 4, 5 og 6), hver med en modstand til et defineret niveau, så ingen indgang nogensinde flyder frit.
Med andre ord ankommer byten H først, A sidst – mest betydende bit først, hvis du kalder H for bit 7. Får din kode kontakterne spejlvendt, er det næsten altid forklaringen.
Forløbet ovenfor er præcis en SPI-læsning med klokpolaritet 0 og fase 0, så de fleste mikrocontrollere kan klare det i hardware: forbind CLOCK til SCK, QH til MISO, og styr SHIFT/LOAD fra et ledigt udgangsben. Én byte ind, otte kontakter læst. Der sendes aldrig noget til chippen, så MOSI er ikke forbundet.
Hold klokken inden for kredsens evner: databladet angiver en typisk forsinkelse fra klok til Q på 20 ns, og de garanterede grænser er specificeret ved forsyninger på 2 V, 4,5 V og 6 V. Ved 5 V er nogle få megahertz helt udramatisk; det er som regel ledningsføringen og ikke chippen, der sætter grænsen.
Ben 10 er SERIAL INPUT. Det fører ind i det første trin, QA – den ende af kæden, der ligger længst fra udgangen. Forbind QH-udgangen (ben 9) på den ene chip til SERIAL INPUT (ben 10) på den næste, del SHIFT/LOAD og CLOCK mellem dem, og du har et 16-bit register, der læses ad én ledning med seksten klokflanker. En tredje chip giver 24 indgange; prisen er udelukkende tid.
Ben 7 er den komplementære udgang /QH – de samme serielle data inverteret. Den er nyttig, hvis den modtagende logik forventer modsat polaritet, og den kan uden videre stå ubenyttet.
En 3,3 V mikrocontroller kan ikke pålideligt styre denne chip ved 5 V. Ved 4,5 V garanterer databladet først et højt niveau fra 3,15 V, og ved 5 V skal der cirka 3,5 V til. Den rene løsning er at køre ’165’eren på 3,3 V, hvilket ligger inden for dens 2–6 V-område, eller at niveauomsætte styresignalerne – se guiden om niveauskift med SN74AHCT08. Dens serielle udgang ind i en 3,3 V indgang kræver den modsatte retning, så bland ikke forsyninger på må og få.
Lad aldrig en parallel indgang flyde. Et ubrugt A–H-ben skal forbindes til VCC eller stel. En kontakt alene er ikke nok: den definerer kun niveauet i den ene af sine to stillinger, så hver kontakt skal have en pull-up- eller pull-down-modstand.
Ændr kun CLOCK INHIBIT, mens CLOCK er høj. Fordi begge klokben går til samme NOR-port, ligner en ændring på CLOCK INHIBIT, mens CLOCK er lav, en klokflanke for registeret og rykker dine data stille og roligt én plads.
Mekaniske kontakter preller. Registeret fastfryser med glæde en prel som et rigtigt skifte. Enten aflæser du langsomt og sammenligner på hinanden følgende målinger i software, eller også renser du flankerne i hardware med en Schmitt-trigger-indgang som 74AC14 hex Schmitt-trigger-inverter.
Kredsen er bevidst énvejs: indgange ind, seriel ud. Skal flere enheder derimod skiftes om at drive den samme bus, skal du bruge 3-state-udgange som i guiden om MC74HC173 4-bit 3-state-register. Skal en hel byte flytte sig begge veje mellem CPU og bus, er det en transceivers opgave – se 74HC245-guiden. Og skal de otte bit, du lige har skiftet ind, lyse et ciffer op, tager MC74HC4511-guiden om 7-segmentvisning over derfra.
I en busbaseret maskine som en 6502-computer er et skifteregister som regel det billige alternativ til at afkode endnu en adresse: intet chipvalg, intet timingvindue, bare tre almindelige udgangsben. Guiden om 74HC138-adresseafkodning beskriver den anden fremgangsmåde, og guiden til 6502-dele sætter begge i sammenhæng.
iMania har MM74HC165MX på lager. I Fairchilds bestillingskode står M for kapsling M16A, en 16-bens smal SOIC efter JEDEC MS-012 (0,150″ hus), og det tilføjede X markerer tape/reel-pakning. Rulleetiketten bærer desuden kundenummer 099.200.052; producenten af netop denne rulle er ikke særskilt verificeret, så sammenlign mærkningen på selve delen før produktionsbrug.
Det er en overflademonteret del med 1,27 mm bendækning. Den kan lødes i hånden med almindeligt værktøj, men til breadboard skal du bruge et SOIC-16-til-DIP-adapterprint. Den rene hulmonterede MM74HC165 i PDIP-16 er samme chip i kapsling N16E; det er en anden bestillingskode og indgår ikke i dette parti.
MM74HC165
Se varesiden for MM74HC165MX og lagerstatus.
Originalt datablad: Fairchild Semiconductor MM74HC165 Parallel-in/Serial-out 8-Bit Shift Register, DS005316, september 1983, revideret februar 1999. Bennumre, styrefunktioner, kapslingskoder og alle tal ovenfor stammer derfra.
Vi bruger cookies for at give dig den bedst mulige oplevelse på iMania.dk. De givers os også mulighed for at analysere hvordan brugere anvender siden, så vi kan forbedre den for dig. Persondatapolitik