Domanda:
È possibile creare porte logiche modulari dai transistor per scopi didattici?
Dom
2020-07-07 18:52:22 UTC
view on stackexchange narkive permalink

Mi piacerebbe lavorare su alcuni circuiti logici di base con alcuni giovani e volevo costruirli da zero (transistor), non porte logiche se possibile.

Abbiamo fatto le basi: buffer, NOT, AND, OR, NAND, XOR usando solo mosfet e resistori NPN. Siamo persino riusciti ad arrivare ai D-latch. Ad esempio, le porte AND con cui stiamo giocando sono state costruite in questo modo:

schematic

simula questo circuito - Schema creato utilizzando CircuitLab

Il problema è che man mano che i circuiti sono cresciuti in complessità, con gli emettitori di transistor che si alimentano in altre basi di transistor, sono stato in grado di far funzionare le cose solo bilanciando molto attentamente i valori dei resistori per assicurarmi che i transistor siano attivati ​​quando dovrebbero essere.

Vorrei essere in grado di costruire porte logiche modulari, che sono identiche e possono essere semplicemente collegate l'una all'altra senza la necessità di calcolare attentamente i valori dei resistori.

Un'altra limitazione è che attualmente abbiamo 200 transistor BC547ATA NPN e un grande gruppo di resistori, quindi se fosse realizzabile senza acquistare altri componenti, sarebbe l'ideale.

Perché non utilizzare resistori di base su uno schema come quello?
Vedendo quanto sono economici i transistor e quanto la logica che utilizza un tipo di transistor singolare sia praticamente inesistente in questi giorni, suggerirei di acquistare solo alcuni transitori PNP (o meglio nmos / pmos) dispositivi in modo da poter creare una serie di circuiti più complementare?
Per i sistemi più grandi avrai bisogno di un'implementazione con guadagno per ripristinare i margini di rumore e probabilmente vorrai guidare attivamente alto e basso, non solo acceso o spento ... quindi avrai bisogno di tipi PNP.Considera le opere di educazione ingegneristica in strati di astrazione a cipolla inversa.Costruisci un gate discreto, quindi usi i gate IC, quindi IC a funzioni fisse con MCU, CPLD e FPGA.Le persone che mantengono tutto discreto non sono molto realistiche nell'imparare come funziona qualcosa di utile.
Suggerimento: collegare solo transistor NPN vicino al suolo e transistor PNP vicino alla barra di alimentazione, quindi non sarà necessario bilanciare i valori del resistore.Il tuo circuito di esempio ha transistor NPN vicino alla barra di alimentazione, il che è difettoso.
In realtà, il tuo "AND gate" mostrato sopra non funziona.Il LED si accenderà non appena si accende l'interruttore inferiore, indipendentemente dallo stato dell'interruttore superiore.Ah, non importa - ho appena notato che hai detto "mosfet" anche se hai anche detto NPN e utilizzato simboli BJT nel tuo schema.Prima di andare oltre, dovresti imparare quali sono le differenze tra MOSFET e BJT.Ma se stai usando MOSFET a canale N, avrai bisogno di resistori pull-down sui gate.
In realtà, il BC547 ** è ** un BJT, quindi il mio commento originale è valido: il gate AND non funziona.
@uglyoldbob Stavo lavorando a memoria quando ho disegnato lo schema ma devo aver avuto resistori sulle basi.
@DaveTweed Lo schema precedente non è corretto.Avrei avuto delle resistenze sulle basi, che quando bilanci correttamente i valori gli permette di funzionare come una porta AND.
Mi sembra che il fatto che tu non possa davvero usare i circuiti troppo semplificati per creare circuiti logici arbitrariamente complessi sia una lezione utile in sé.Perché non utilizzare la logica 74HC come tutti gli altri?Con un po 'di fortuna impareranno anche il latch-up.
@SpehroPefhany Il mio scopo è gettare le basi e passare a porte logiche pacchettizzate il prima possibile.Semplicemente non penso che sarebbe utile per un bambino di nove anni partire da una "scatola nera", poiché almeno un transistor può essere "inteso" come un interruttore elettronico.
Cinque risposte:
Dave Tweed
2020-07-07 19:14:09 UTC
view on stackexchange narkive permalink

Se tutto ciò che hai sono NPN e resistori, ti consigliamo di utilizzare una qualche forma di RTL. Qui, l'elemento logico di base è il gate NOR. Il gate a un transistor utilizza meno transistor (ovviamente), ma il gate a più transistor è più robusto in diversi modi.

E qui c'è un'opportunità di insegnamento, per mostrare come il gate NOR sia un elemento logico "universale": tutte le altre funzioni possono essere create da combinazioni di porte NOR (incluso il gate NOR a 1 ingresso degenere, o inverter).

Anche i sistemi di grandi dimensioni sono stati costruiti in questo modo. La logica di Cray-1 originale è stata interamente implementata utilizzando gate NOR ECL a 4 e 5 ingressi!


Una strategia di implementazione potrebbe essere quella di creare gate individuali a 3, 4 o 5 ingressi su moduli single-inline come questi:

uni-sip modules

( fonte)

Questi sono facili da collegare a una presa breadboard, consentendo agli studenti di concentrarsi sulla logica che stanno costruendo. Se ne hai bisogno di un gran numero, fai realizzare un PCB personalizzato.

E se sei davvero ambizioso, puoi inserirli in una scheda wirewrap universale per progetti più grandi e un'implementazione più permanente.

universal wirewrap prototype card

Può anche valere la pena guardare il [gruppo TTLers di Hackaday.io] (https://hackaday.io/project/8449-hackaday-ttlers), che contiene una varietà di articoli di persone interessate a implementazioni logiche discrete, tra cui [approfondimentidiscussioni sulle implementazioni di RTL utilizzate da DEC] (https://hackaday.io/project/8449-hackaday-ttlers/log/130460-bizarre-dtl-logic-levels-the-discrete-component-pdp-8)e altri primi produttori di computer.
Dave - qualche miglioramento suggerito per un gate il più semplice possibile da utilizzare sui tuoi moduli, rispetto ai suggerimenti DTL nella mia risposta?
@RussellMcMahon: No, non proprio.Mi capita di avere una bobina piena di MOSFET a canale N a livello logico rimasti da un vecchio progetto, e stavo giocando con l'idea di usarli per costruire una semplice CPU, usando il concetto SIP descritto sopra - tre 3-porte di ingresso NOR su un SIP a 14 pin, con un LED opzionale su ciascuna uscita per la visualizzazione.Due di questi moduli (6 porte) sarebbero sufficienti per costruire un FF con trigger sul fronte.Ho una scheda wirewrap più grande che ha oltre 4000 punti di connessione, che potrebbero contenere oltre 280 moduli di questo tipo.840 gate (2520 transistor) sono più che sufficienti per una semplice CPU.
... Non so se accadrà mai, però - molti progetti con priorità più alta già in cantiere.Penso che per ora basti sapere che potrei.
occipita
2020-07-07 19:53:52 UTC
view on stackexchange narkive permalink

Costruire logica discreta con MOSFET è molto più semplice dei transistor bipolari, perché l'elevata impedenza di gate previene il problema che descrivi.I circuiti NMOS sono più facili di CMOS (che è più comunemente usato perché ha una potenza inferiore).

I MOSFET non sarebbero più sensibili all'ESD?
I MOSFET discreti @SimonRichter: sarebbero "più" sensibili alle ESD rispetto ai transistor a giunzione bipolare discreti, ma in un ambiente con umidità ragionevole che non ha un tappeto insolitamente soggetto a elettricità statica, dovrebbero generalmente sopravvivere al normale trattamento.Le fabbriche utilizzano misure di protezione ESD perché anche la ricaduta statica dello 0,001% sarebbe inaccettabile, ma in una situazione di laboratorio i transistor sarebbero più probabilmente distrutti da collegamenti impropri che da ESD.
Gunther Schadow
2020-07-07 19:55:33 UTC
view on stackexchange narkive permalink

Penso che tu voglia seguire la logica TTL. Non l'ho fatto da solo, ma il problema con questo semplice cablaggio di transistor che stai mostrando tende a fallire quando ne metti più insieme.

Quindi ecco il modo TTL di fare le cose. Questa è una porta NAND

TTL NAND gate

quello che trovo una buona istruzione qui - e potresti voler aggiungere anche una logica di resistenza a diodi più piccola - è che stai inserendo gli emettitori. Ciò fa sì che gli studenti apprezzino la differenza tra il modo in cui i bit logici "fluiscono" rispetto a come scorrono le correnti, sai, apprezzando il fatto che uno stato logico 0 significa che l'elemento di uscita deve assorbire corrente (questa è la stessa lezione con il diodo AND cancello).

E non hai bisogno di transistor a doppio emettitore, ho letto che puoi semplicemente collegare due transistor in parallelo, base e collettore insieme ed emettitori separati.

PS: se puoi utilizzare il mio approccio (per favore riferisci) e scopri che ora hai bisogno di più transistor, ne donerò altri 200 al tuo progetto.

Anche lo stadio di uscita totem-pole sarà interessante da sperimentare. L'intera nove yard: open collector, normale sempre accesa e tre stati. Fantastico progetto.

È davvero generoso, grazie.Al momento sono solo i miei cugini figli, quindi dovremmo avere abbastanza cose.
Un circuito TTL avrebbe un transistor sul lato alto dell'uscita, invece di un semplice resistore.
@supercat, intendi lo stadio di uscita "totem pole", giusto?Ma non è quello che ha definito TTL.Sono disponibili anche molti circuiti TTL a collettore aperto.Ho usato questa immagine dall'articolo TTL di Wikipedia poiché era il più semplice e la chiave era mostrare la differenza nello stadio di input, diverso da quello che il solito libro di testo (e la domanda qui) mostra fatto con i transistor BPJ.
@supercat, intendi lo stadio di uscita "totem pole", giusto?Ma non è quello che ha definito TTL.Sono disponibili anche molti circuiti TTL a collettore aperto.Ho usato questa immagine dall'articolo TTL di Wikipedia poiché era il più semplice e la chiave era mostrare la differenza nello stadio di input, diverso da quello che il solito libro di testo (e la domanda qui) mostra fatto con i transistor BPJ.
@GuntherSchadow: Da quanto ho capito, ciò che distingueva TTL da RTL era che il primo stadio di uscita aveva un transistor per tirarlo su e un transistor per tirarlo giù, mentre RTL usava resistori per pull-up e resistori per pull-down.È vero che le famiglie TTL includevano parti con uscite a collettore aperto, ma tali parti non avevano * nulla * come pull-up.
@supercat, Wikipedia dice su DTL che è "il diretto antenato della logica transistor-transistor. ... la funzione di gate logico è eseguita da una rete di diodi e la funzione di amplificazione è eseguita da un transistor" e sui transistor TTL "i transistor eseguono sia la logicafunzione (il primo "transistor") e la funzione di amplificazione (il secondo "transistor") "- quindi si tratta dello stadio di ingresso.Inoltre, se guardi l'elenco dei chip 7400, la linea classica di chip TTL, vedrai che gli stadi di uscita possono essere diversi, in particolare open collector, e chip open collector non cessano di essere TTL.
@GuntherSchadow: È diverso da come mi è stato insegnato, ma il termine "TTL" descrive non solo una topologia ma anche un insieme di specifiche di corrente e tensione.Se un chip a collettore aperto afferma di essere compatibile con TTL, lo interpreterei come se dicesse che quando l'uscita è bassa, il suo comportamento sarà coerente con quello di un'uscita TTL bassa.Tutti gli schemi circuitali che ho visto per i gate effettivi della serie 7400 con uscite "TTL compatibili" hanno utilizzato uno stadio di uscita high-side totem-pole o nessuno stadio di uscita high-side.Forse un pull-up passivo potrebbe soddisfare le specifiche, ...
... ma le prestazioni sarebbero inferiori a una parte che utilizza un'uscita totem-pole.
Russell McMahon
2020-07-08 07:26:40 UTC
view on stackexchange narkive permalink

I moduli seguenti possono essere un punto di partenza migliore.
Potrebbe essere necessario adattare il valore del resistore.

Ho mostrato BC337-40 perché sono economici e superbi.Anche il BC547 è accettabile.Potrebbero essere necessari valori di resistenza di base più piccoli per transistor beta inferiori, ma un rapporto elevato tra il collettore e i resistori di base riduce al minimo il carico.

Nota come funziona l'AND.Gli ingressi tramite diodi bloccano R1 tirando la base in alto.
Quindi un input aperto equivale a un input alto.

L'ingresso dell'inverter non è definito senza un ingresso.Se può essere lasciato fluttuante, aggiungi ad es. 100k a terra all'ingresso.

Il buffer ha una caduta di tensione Vbe ma dovrebbe pilotare un LED a terra con un resistore in serie in modo accettabile.Riduci il valore del resistore di base per più unità LED.

schematic

simula questo circuito - Schema creato utilizzando CircuitLab

Grazie per l'input.I circuiti superiori non sono NAND e NOR, non AND e OR?Penso che tu abbia ragione, che questi sono più semplici e più comprensibili per un undicenne, rispetto al costruire da NOR.Tuttavia, poiché ho un secchio di transistor e resistori NPN, andrò avanti con l'idea RLT e probabilmente acquisterò i diodi per il DTL per mostrare idee alternative.
@Dom Tutti i miei esempi utilizzavano solo NPN.||Spiacenti, sì - NAND e NOR come mostrato - Sposta R2 e R3 nel cct dell'emettitore e funzionerebbero così come sono come ND e OR - ma aggiungere un inverter sarebbe meglio.I diodi non costano nulla.Digikey ha 1N4148 per $ 2,37 per 100 [qui] (https://www.digikey.com/product-detail/en/on-semiconductor/1N4148TR/1N4148FSCT-ND/9356376) (525000 in magazzino :-))
John Doty
2020-07-08 21:28:52 UTC
view on stackexchange narkive permalink

Il circuito di gate BJT più semplice è il DCTL (Direct Coupled Transistor Logic) a 2 ingressi NOR.

schematic

simula questo circuito - Schema creato utilizzando CircuitLab Questa è una componente universale: qualsiasi sistema digitale può ridursi a questi.Per farlo esplodere, hai bisogno di transistor con Vbe molto simile.Se i tuoi transistor provengono tutti dallo stesso lotto di produzione, probabilmente stai bene.Altrimenti, puoi aggiungere una resistenza da ~ 100k in serie con ciascuna base per evitare che qualsiasi ingresso monopolizzi la corrente dall'uscita a cui è collegata.

Il NAND e NOR nella mia risposta darebbero alla tua versione una lotta per la famiglia logica "più semplice".Sia il tuo che il mio sono "piuttosto semplici".||Ciascuno dei tuoi ingressi richiede un transistor aggiuntivo.Ognuno dei miei richiede un diodo aggiuntivo.Il pulldown Rpd che mostro è ugualmente necessario, o no, nel tuo caso.Anche il tuo ha bisogno dell'R6 nella mia NAND se vuoi un output corretto con un fanout di 1 e se vuoi un corretto funzionamento con fanout 2+.La mia NAND (altrettanto fondamentale) non ha bisogno di un pulldown o di una serie Rin a causa di come funziona (ma ha bisogno di R1)
@Russell McMahon L'OP afferma uno stock di transistor e resistori, nessun diodo, quindi sono andato con quello.Se i transistor sono ben bilanciati, non sono necessari resistori di base, quindi i miei due ingressi NOR sono solo tre componenti, 8 giunti di saldatura.I tuoi sono cinque componenti, 11 giunti di saldatura.Tuttavia, il tuo DTL si adatta meglio a ventole più grandi. Sono scettico sul tuo NAND: a meno che (diode drop) + VCE (sat)
Volevo solo aggiornarti.Alla fine ho seguito il tuo suggerimento e sta funzionando brillantemente.D-flip-flop appena costruito che funziona esattamente come previsto.Grazie.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...