Table of Contents

Digital logic

Introductie

Wat is digitale logica?

Waarom logische poorten?

Abstractie en vereenvoudiging:

Door deze complexe circuits te representeren als logische poorten, kunnen ontwerpers en ingenieurs:

Formalisatie:

Conclusie: Digitale logica en logische poorten dienen als een vereenvoudigd en gestandaardiseerd raamwerk waarmee ontwerpers complexe digitale systemen kunnen opbouwen en begrijpen.

Digitale logica vormt de basis voor digitale elektronische apparaten zoals microprocessoren, microcontrollers, en andere geïntegreerde schakelingen die de kern vormen van embedded systemen.

Digitale logica is relevant voor studenten die embedded software studeren om de volgende redenen:

Samenvattend is digitale logica een fundamenteel concept dat belangrijk is voor studenten die embedded software studeren.

logische families en compatibiiteit

Er zijn verschillende logische families in geïntegreerde schakelingen (IC's) die op verschillende manieren zijn geoptimaliseerd. Hier zijn enkele belangrijke eigenschappen van de LS (Low-power Schottky), HCT (High-speed CMOS with TTL compatibility) en HC (High-speed CMOS) logische families:

Hier is een tabel met de belangrijkste eigenschappen en compatibiliteit van deze logische families:

Familie Technologie Voedingsspanning TTL-compatibiliteit Opmerkingen
LS TTL (Schottky) 5 V Ja Hogere snelheid en lager verbruik dan standaard TTL
HCT CMOS 5 V Ja Specifiek ontworpen voor TTL-compatibiliteit
HC CMOS 2 V - 6 V Nee Hogere snelheid en lager verbruik dan HCT

Let op dat er nog veel meer logische families zijn, elk met hun eigen eigenschappen en toepassingen. De keuze van de juiste logische familie hangt af van de specifieke eisen van uw project, zoals snelheid, stroomverbruik, compatibiliteit en kosten.

Logische families

Arduino, ESP32 en STM32 microcontrollers zijn gebaseerd op verschillende technologieën en maken gebruik van verschillende logische families. Hier is een kort overzicht van de logische families die u kunt tegenkomen bij het werken met deze microcontrollers:

Bij het werken met deze microcontrollers en het aansluiten van externe logische IC's of randapparatuur, is het belangrijk om rekening te houden met de compatibiliteit van de logische niveaus en voedingsspanningen. Zorg ervoor dat u de specificaties van zowel de microcontroller als de externe componenten controleert om ervoor te zorgen dat ze correct met elkaar kunnen communiceren. In veel gevallen zijn level shifters of spanningsregelaars nodig om de compatibiliteit tussen verschillende logische families en voedingsspanningen te waarborgen.

Meer info kun je hier vinden : https://learn.sparkfun.com/tutorials/logic-levels

Meer info over de toleranties (omdat echte elektronica niet perfect is) : https://www.allaboutcircuits.com/textbook/digital/chpt-3/logic-signal-voltage-levels/ hier zie je ook het begrip “noise-level” dat van toepassing is als je componenten gaat koppelen, de signalen moeten over fysieke draden en die kunnen werken als spoelen, weerstanden en antenne's, dat betekent dat er vervorming optreedt. Op de pagina worden veel zaken uitgelegd, ook “Schmitt Trigger” ingangen en ook het koppelen van verschillende logische families.

level shifters

Level shifting is het proces van het vertalen van logische niveaus tussen verschillende spanningsdomeinen, wat vaak nodig is bij het aansluiten van componenten of IC's die op verschillende voedingsspanningen werken. Er zijn verschillende gangbare methoden voor level shifting, en hier zijn enkele van de meest gebruikelijke:

Bij het kiezen van een level shifting-methode is het belangrijk om rekening te houden met de vereisten van uw specifieke toepassing, zoals de communicatierichting (unidirectioneel of bidirectioneel), frequentie, voedingsspanningen en het aantal kanalen dat moet worden vertaald. Ook is het essentieel om de datasheets van de betrokken componenten te raadplegen om ervoor te zorgen dat de gekozen methode compatibel is met hun elektrische eigenschappen.

Gebruikelijke oplossingen :

SN74AHCT125N 4-channel Level Converter - 3.3V to 5V - 14-pin DIP (zie tinytronics) om bijvoorbeeld een ESP32 output naar Arduino (5V) input te koppelen.

Geschikt voor lage snelheid en ook voor I2C koppeling van bijv Arduino met 3V3 sensor.

Deze kun je http://cdn.sparkfun.com/datasheets/BreakoutBoards/Logic_Level_Bidirectional.pdf hier vinden en

https://www.tinytronics.nl/shop/en/communication-and-signals/level-converters/spi-i2c-uart-bi-directional-logic-level-converter-4-channel

bouwen van digitale systemen : logica en registers

Combinatorische logica en registers zijn belangrijke bouwstenen in digitale systemen en hebben een directe relatie met eindige toestandsmachines (Finite State Machines, FSM's). Hier is een uitleg van elk concept en hun onderlinge relatie:

In een typische FSM-implementatie worden de huidige toestand en ingangssignalen gebruikt als invoer voor combinatorische logica, die vervolgens de volgende toestand en uitgangssignalen genereert. Deze volgende toestand wordt opgeslagen in registers (zoals D- of JK-flipflops) bij elke klokflank. De opgeslagen toestand wordt vervolgens gebruikt als de huidige toestand voor de volgende cyclus, waardoor de FSM door de verschillende toestanden kan overgaan op basis van de ingangssignalen en de interne logica.

Eindige toestandsmachines zijn een belangrijk concept in digitale systeemontwerpen, omdat ze helpen bij het modelleren en ontwerpen van complexe systemen met voorspelbaar en beheersbaar gedrag. Ze worden gebruikt in een breed scala aan toepassingen, zoals sequentiële logica, besturingssystemen, communicatieprotocollen, computerarchitectuur en nog veel meer.

Samenvattend, combinatorische logica, registers zoals D- en JK-flipflops, en eindige toestandsmachines zijn nauw met elkaar verbonden concepten in digitale systeemontwerpen. Combinatorische logica helpt bij het definiëren van logische functies en toestandsovergangen, terwijl registers de huidige toestand van een FSM opslaan en behouden. Eindige toestandsmachines bieden een manier om complexe digitale systemen te modelleren en te ontwerpen met behulp van deze bouwstenen.

Moore en Mealy FSM concepten

Moore- en Mealy-machines zijn twee veelvoorkomende soorten eindige toestandsmachines (Finite State Machines, FSM's) die worden gebruikt in het ontwerp van digitale systemen. Het belangrijkste verschil tussen beide typen ligt in de manier waarop ze hun uitgangen genereren:

Het kiezen tussen een Moore- en Mealy-machine hangt af van de specifieke eisen van het digitale systeem dat u ontwerpt. Moore-machines zijn over het algemeen gemakkelijker te ontwerpen en te begrijpen, maar Mealy-machines kunnen snellere reactietijden bieden en mogelijk minder toestanden vereisen om hetzelfde gedrag te bereiken.

zie ook https://unstop.com/blog/difference-between-mealy-and-moore-machine voor uitleg.

In sommige gevallen kunnen Moore- en Mealy-machines equivalent zijn in termen van functionaliteit, maar de implementatiedetails en prestatiekenmerken kunnen variëren. Het is belangrijk om de trade-offs tussen beide typen te begrijpen en de juiste keuze te maken op basis van de behoeften van uw specifieke toepassing.

We hebben in de MakerLAB en CreateLAB diverse standaard chips liggen :

Nummer Functie Technologie
7400 Quad 2-input NAND-poort TTL
7402 Quad 2-input NOR-poort TTL
7404 Hex inverter TTL
7408 Quad 2-input AND-poort TTL
7410 Triple 3-input NAND-poort TTL
7411 Triple 3-input AND-poort TTL
7432 Quad 2-input OR-poort TTL
7486 Quad 2-input XOR-poort TTL
4011 Quad 2-input NAND-poort CMOS
4017 Decade Counter CMOS
4021 8-bit Shift Register CMOS
4030 Quad 2-input XOR-poort CMOS
4066 Quad Analog Switch CMOS
4071 Quad 2-input OR-poort CMOS
4081 Quad 2-input AND-poort CMOS
4093 Quad 2-input NAND-poort CMOS
met Schmitt-trigger ingangen

Deze tabel toont een selectie van enkele veelgebruikte logische chips uit de 7400-serie (TTL) en 4000-serie (CMOS) met hun functies en technologieën.

We hebben ook Registers, JK flip flops en D-FlipFlops.

Nummer Functie
74HC595 8-bit Schuifregister met outputlatches
74HC597 8-bit Schuifregister met inputlatches
74HC166 8-bit Parallel-In/Serial-Out schuifregister
74HC165 8-bit Serial-In/Parallel-Out schuifregister
74HC194 4-bit bidirectioneel universeel register
74HC299 8-bit universeel schuifregister
74HC4094 8-stage Shift-and-Store Bus Register
CD4014B 8-stage Static Shift Register (CMOS)
CD4015B Dual 4-bit Static Shift Register (CMOS)
CD4021B 8-bit Static Shift Register (CMOS)

Page owners