Digitale elektronica: samenvattingspakket

Formuleoverzichten, de belangrijkste methodestappen voor elk onderwerp en 6 oefenopgaven, met volledige oplossingen achterin.

Nieuwe opgavenTerug naar het vak

Kies in het printvenster “Opslaan als pdf” om een kopie op je apparaat te bewaren.

1Formules en methoden

Talstelsels

Plaatswaarden
binair 2k, octaal 8k, hex 16k
Naar decimaal
Σ dk·bk
Vanuit decimaal
deel door het grondtal en lees de resten van onder naar boven
Hex ↔ binair
één hexcijfer = 4 bits
Two's complement
inverteer de bits en tel 1 op

Digitale logica: poorten, K-kaarten & flip-flops

Basispoorten
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Booleaanse regels
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
De Morgan
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Volgorde van de Karnaugh-kaart
00, 01, 11, 10 (Gray code)
Groep van 2ᵏ cellen
verliest k variabelen
4-naar-1-multiplexer
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Flip-flops
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Tellers
n-bits: 2ⁿ toestanden; mod-N: kleinste n met 2ⁿ ≥ N; fuit = fklok/N
Ripple-teller
fmax = 1/(n·tpd)
Ring- en Johnson-tellers
n en 2n toestanden

Methode

  1. Werk bij een schakeling van de ingangen naar de uitgang, één poort tegelijk, en schrijf de waarde op elke draad, of schrijf de uitdrukking op en vul de waarheidstabel in.
  2. Zet voor vereenvoudiging de enen (en de don’t-cares als X) in een Karnaugh-kaart met rijen en kolommen in Gray-code: 00, 01, 11, 10.
  3. Dek de enen met zo weinig en zo grote groepen van 1, 2, 4, 8 of 16 cellen als mogelijk, met terugloop om de randen; elke groep is één productterm van de variabelen die constant blijven. Groepeer de nullen voor de POS-vorm.
  4. Lees bij flip-flops en tellers de ingangen af op elke actieve klokflank, schrijf de toestand na elke flank op, en onthoud dat een n-bits teller na 2ⁿ toestanden terugloopt.

Data-acquisitie en bemonstering

Nyquistcriterium
fs > 2·fmax, fN = fs/2
Aliasfrequentie
fa = |f − k·fs|, k = round(f/fs)
Stapgrootte
1 LSB = VFSR/2ᴺ
Kwantisatiefout (afronding)
±½ LSB
Afkappende ADC-code
D = ⌊Vin/LSB⌋
Bits voor een resolutie r
2ᴺ ≥ span/r
Ideale SQNR, volle-schaal sinus
SQNR = 6,02·N + 1,76 dB
Datasnelheid
kanalen × fs × N bit/s
Gemultiplexte ADC
fs = 1/(n·(tc + tset))
UART
Tb = 1/baud; 8N1 = 10 bits per byte; bytes/s = baud/bits per frame
Baudrate-deler
baud = fclk/(16·D)

Methode

  1. Schrijf op wat gegeven is: bemonsteringsfrequentie, signaalfrequenties, aantal bits, ingangsbereik, baudrate.
  2. Vergelijk bij bemonsteringsvragen elke frequentie met fs/2; een hogere frequentie verschijnt bij fa = |f − k·fs| met het dichtstbijzijnde veelvoud van fs.
  3. Bepaal bij resolutievragen 1 LSB = VFSR/2ᴺ, of de kleinste N met 2ᴺ ≥ bereik/resolutie.
  4. Tel bij datasnelheden en UART-verbindingen alles wat wordt verzonden: kanalen, samples per seconde, bits of hele bytes per sample, en de start-, pariteits- en stopbits van elk frame.

2Oefenopgaven

1.TalstelselsGemiddeld
8-bits two's complement0−12806403201608040201

Stel de bits zo in dat ze −54 opslaan in 8-bits tweecomplement. Wat is de waarde U van het patroon, gelezen als getal zonder teken?

N = −548 bit
U =
2.TalstelselsMoeilijk
765 codes, b = ? bits?2ᵇ⁻¹…?4?2?1

Een systeem moet elk van 765 items een eigen binaire code van gelijke lengte geven. Wat is het kleinste aantal bits b dat nodig is?

765
b = bit
3.Digitale logica: poorten, K-kaarten & flip-flopsGemiddeld
MUXCI0​1I1​0I2​CI3​ABS1​S0​F

Een 4-naar-1-multiplexer heeft selectie-ingangen S₁ = A en S₀ = B, en data-ingangen gekoppeld aan I₀ = C, I₁ = 1, I₂ = 0, I₃ = C. Voor hoeveel van de 8 combinaties van A, B en C is de uitgang F = 1? Bepaal N.

I₀ = CI₁ = 1I₂ = 0I₃ = C
N =
4.Digitale logica: poorten, K-kaarten & flip-flopsMoeilijk
DQ3​Q3​DQ2​Q2​DQ1​Q1​DQ0​Q0​CLKRING

Een 4-bits ringteller Q₃Q₂Q₁Q₀ begint bij 1010. Bij elke klokflank schuiven de bits één plaats naar rechts (Q₃ → Q₂ → Q₁ → Q₀) en krijgt Q₃ de waarde van Q₀. Geef de toestand Q = Q₃Q₂Q₁Q₀ als decimaal getal na 9 klokflanken.

Q₃Q₂Q₁Q₀ = 10109
Q =
5.Data-acquisitie en bemonsteringGemiddeld
tTs​ = 1/fs​f = 28 kHzfs​ = 20 kHz

Een sinus van 28 kHz wordt zonder anti-aliasingfilter bemonsterd met 20 kHz. Bij welke frequentie fa verschijnt hij in de samples? Geef het antwoord in kHz.

f = 28 kHzfs = 20 kHz
fa = kHz
6.Data-acquisitie en bemonsteringMoeilijk
SD0​D1​D2​D3​D4​D5​D6​D7​1/fbaud​4 MHz / (16·D)

Een microcontroller met een klok van 4 MHz stelt zijn UART-baudrate in als fclk/(16·D), met D een geheel getal dat op de dichtstbijzijnde waarde is afgerond. De doelwaarde is 38400 baud. Bepaal de procentuele fout van de werkelijke baudrate (positief als hij te snel is).

fclk = 4 MHzdoel = 38400 Bd
e = %

3Oplossingen

1.Talstelsels

Antwoord: U = 202

Bits instellen: elke bit is een macht van twee waard (128, 64, …, 1). Eén hexadecimaal cijfer is precies vier bits, en in 8-bits tweecomplement is de meest linkse bit −128 waard. Bitsgewijze bewerkingen werken op elke bitpositie apart.

Omkeren en één optellen

54 = 0011 0110
omgekeerd: 1100 1001
+1 → 1100 1010

Lezen zonder teken

1100 1010₂ = 256 − 54 = 202

Antwoord

U = 202
2.Talstelsels

Antwoord: b = 10 bit

Positionele talstelsels: elk cijfer is zijn waarde maal een macht van het grondtal waard. Binair zijn de posities 1, 2, 4, 8, 16, … waard, hexadecimaal 1, 16, 256, …, met A–F voor 10–15. In 8-bits two's complement is het meest linkse bit −128 waard in plaats van +128; zo worden negatieve getallen opgeslagen.

Machten van twee

29 = 512 < 765
210 = 1024 ≥ 765

Antwoord

b = 10
3.Digitale logica: poorten, K-kaarten & flip-flops

Antwoord: N = 4

Multiplexer: een 2ⁿ-naar-1-multiplexer geeft één van zijn data-ingangen door aan de uitgang; de selectielijnen, gelezen als binair getal, kiezen welke. Voor een 4-naar-1-MUX met selecties S₁S₀ = AB is F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃. Door de data-ingangen aan 0, 1, C of C′ te koppelen, maakt de MUX elke functie van A, B en C, wat een veelgebruikte manier is om logica met één chip te bouwen.

Uitgangsuitdrukking

F = A′B′C + A′B + ABC

Rijen met F = 1

ABC = 001, 010, 011, 111
N = 4

Antwoord

N = 4
4.Digitale logica: poorten, K-kaarten & flip-flops

Antwoord: Q = 5

Flip-flops en tellers: een flip-flop verandert alleen op de actieve klokflank. D kopieert zijn ingang (Q⁺ = D); T wisselt als T = 1; JK houdt vast bij 00, reset bij 01, zet bij 10 en wisselt bij 11. Een n-bits binaire teller heeft 2ⁿ toestanden en telt modulo 2ⁿ; een mod-N-teller telt 0, 1, …, N − 1 en dan weer 0, en heeft de kleinste n met 2ⁿ ≥ N flip-flops nodig. Elke trap van een ripple-teller halveert de frequentie, dus de laatste uitgang van een mod-N-teller loopt op fklok/N. Een Johnson-teller van n flip-flops heeft 2n toestanden, een ringteller n.

Toestand na elke flank

1010 → 0101 → 1010 → 0101 → 1010 → 0101 → 1010 → 0101 → 1010 → 0101

Decimale waarde

0101₂ = 5

Antwoord

Q = 5
5.Data-acquisitie en bemonstering

Antwoord: fa = 8 kHz

Bemonstering: een ADC meet het signaal fs keer per seconde. Volgens het Nyquist–Shannon-theorema wordt een frequentie f alleen correct vastgelegd zolang f < fs/2, de Nyquistfrequentie (vouwfrequentie), dus de bemonsteringsfrequentie moet groter zijn dan twee keer de hoogste signaalfrequentie. Een hogere frequentie gaat niet verloren: ze verschijnt als alias bij fa = |f − k·fs|, met het hele getal k dat het resultaat tussen 0 en fs/2 brengt. De samples kunnen de twee niet uit elkaar houden, dus een analoog anti-aliasingfilter moet alles boven fs/2 verwijderen vóór de ADC.

Nyquistfrequentie

fs/2 = 10 kHz < f = 28 kHz

Dichtstbijzijnde veelvoud van de bemonsteringsfrequentie

k = round(28/20) = 1

Aliasfrequentie

fa = |28 − 1·20| = 8 kHz

Antwoord

fa = 8 kHz

De gestippelde kromme in de figuur is de alias: ze loopt door precies dezelfde samples.

6.Data-acquisitie en bemonstering

Antwoord: e = −6,994 %

UART: een asynchrone seriële verbinding verstuurt elke byte als een frame: één startbit (laag), de databits, een optionele pariteitsbit en een of twee stopbits (hoog). De baudrate is het aantal bits per seconde, dus één bit duurt Tb = 1/baud en een frame van n bits duurt n/baud. Het gangbare 8N1-formaat heeft 10 bits per byte. De baudgenerator deelt de klok: baud = fclk/(16·D) met een geheel getal D, dus de werkelijke baudrate wijkt iets af van de gewenste; een fout onder ongeveer 2 % is meestal acceptabel.

Deler

D = 4·10⁶/(16·38400) = 6,51 → 7

Werkelijke baudrate

4·10⁶/(16·7) = 35714 Bd

Fout

(35714 − 38400)/38400·100 = −6,994 %

Antwoord

e = −6,994 %

Een fout boven ongeveer 2 % maakt de verbinding onbetrouwbaar: kies een andere klok of baudrate.

ExamProblems · examproblems.com/courses/digital-electronics